QueryError queryError = QueryError.create("Query is gone (server restarted?)"); result.complete(QueryResult.errorResult(queryError, query)); } else if (client.isFailed()) { com.facebook.presto.client.QueryError error = client.finalStatusInfo().getError(); com.facebook.presto.client.ErrorLocation errorLocation = error.getErrorLocation();
@Override public QueryStats currentStats() { if (client == null) { return new QueryStats(QueryStats.State.WAITING_FOR_AVAILABLE_THREAD); } if (client.isFailed()) { return new QueryStats(QueryStats.State.FAILED); } StatementStats stats = client.getStats(); int totalSplits = stats.getTotalSplits(); QueryStats.State state = QueryStats.State.valueOf(stats.getState().toUpperCase(Locale.ENGLISH)); int percentage = state == FINISHED ? 100 : (totalSplits == 0 ? 0 : stats.getCompletedSplits() * 100 / totalSplits); return new QueryStats(stats.isScheduled() ? percentage : null, state, stats.getNodes(), stats.getProcessedRows(), stats.getProcessedBytes(), stats.getUserTimeMillis(), stats.getCpuTimeMillis(), stats.getWallTimeMillis()); }
public QueryResults finalResults() { checkState((!isValid()) || isFailed(), "current position is still valid"); return currentResults.get(); }
@Override protected Iterable<List<Object>> computeNext() { while (client.isValid()) { Iterable<List<Object>> data = client.current().getData(); client.advance(); if (data != null) { return data; } } if (client.isFailed()) { throw internalServerError(failureMessage(client.finalResults())); } return endOfData(); } }
private static List<Column> getColumns(StatementClient client) { while (client.isValid()) { List<Column> columns = client.current().getColumns(); if (columns != null) { return columns; } client.advance(); } if (!client.isFailed()) { throw internalServerError("No columns"); } throw internalServerError(failureMessage(client.finalResults())); }
if ((!client.isFailed()) && (!client.isGone()) && (!client.isClosed())) { QueryResults results = client.isValid() ? client.current() : client.finalResults(); if (results.getUpdateType() != null) { errorChannel.println("Query is gone (server restarted?)"); else if (client.isFailed()) { renderFailure(errorChannel);