if (client.isRunning() || (client.isFinished() && client.finalStatusInfo().getError() == null)) { QueryStatusInfo results = client.isRunning() ? client.currentStatusInfo() : client.finalStatusInfo(); if (results.getUpdateType() != null) { renderUpdate(errorChannel, results); else if (results.getColumns() == null) { errorChannel.printf("Query %s has no columns\n", results.getId()); return false; renderResults(out, outputFormat, interactive, results.getColumns()); new PrintStreamWarningsPrinter(System.err).print(client.finalStatusInfo().getWarnings(), true, true); statusPrinter.printFinalInfo(); warningsPrinter.print(client.finalStatusInfo().getWarnings(), true, true); if (client.finalStatusInfo().getError() != null) { renderFailure(errorChannel); return false;
private StatementStats execute(ClientSession session, String query, Consumer<QueryData> queryDataConsumer, Consumer<QueryError> queryErrorConsumer) { // start query try (StatementClient client = newStatementClient(okHttpClient, session, query)) { // read query output while (client.isRunning()) { queryDataConsumer.accept(client.currentData()); if (!client.advance()) { break; } } // verify final state if (client.isClientAborted()) { throw new IllegalStateException("Query aborted by user"); } if (client.isClientError()) { throw new IllegalStateException("Query is gone (server restarted?)"); } verify(client.isFinished()); QueryError resultsError = client.finalStatusInfo().getError(); if (resultsError != null) { queryErrorConsumer.accept(resultsError); } return client.finalStatusInfo().getStats(); } }
@Override public void addResults(QueryStatusInfo statusInfo, QueryData data) { if (!loggedUri.getAndSet(true)) { log.info("Query %s: %s", statusInfo.getId(), statusInfo.getInfoUri()); } if (types.get() == null && statusInfo.getColumns() != null) { types.set(getTypes(statusInfo.getColumns())); } if (data.getData() != null) { checkState(types.get() != null, "data received without types"); rows.addAll(transform(data.getData(), dataToRow(types.get()))); } }
private void renderUpdate(PrintStream out, QueryStatusInfo results) { String status = results.getUpdateType(); if (results.getUpdateCount() != null) { long count = results.getUpdateCount(); status += format(": %s row%s", count, (count != 1) ? "s" : ""); } out.println(status); discardResults(); }
public void renderFailure(PrintStream out) { QueryStatusInfo results = client.finalStatusInfo(); QueryError error = results.getError(); checkState(error != null); out.printf("Query %s failed: %s%n", results.getId(), error.getMessage()); if (debug && (error.getFailureInfo() != null)) { error.getFailureInfo().toException().printStackTrace(out); } if (error.getErrorLocation() != null) { renderErrorLocation(client.getQuery(), error.getErrorLocation(), out); } out.println(); }
QueryError error = client.finalStatusInfo().getError(); if (results.getUpdateType() != null) { resultsSession.setUpdateType(results.getUpdateType()); if (results.getUpdateCount() != null) { resultsSession.setUpdateCount(results.getUpdateCount()); return new ResultWithQueryId<>(new QueryId(results.getId()), result);
private void printQueryInfo(QueryStatusInfo results, WarningsPrinter warningsPrinter) StatementStats stats = results.getStats(); Duration wallTime = nanosSince(start); results.getId(), stats.getState(), nodes, reprintLine(querySummary); String url = results.getInfoUri().toString(); if (debug && (url.length() < terminalWidth)) { reprintLine(url); results.getId(), stats.getState(), reprintLine(querySummary); warningsPrinter.print(results.getWarnings(), false, false);
StatementStats stats = results.getStats(); results.getId(), stats.getState(), nodes, out.println(results.getInfoUri().toString());
@Override public void addResults(QueryStatusInfo statusInfo, QueryData data) { if (types.get() == null && statusInfo.getColumns() != null) { types.set(getTypes(statusInfo.getColumns())); } if (data.getData() != null) { checkState(types.get() != null, "Data without types received!"); List<Column> columns = statusInfo.getColumns(); for (List<Object> fields : data.getData()) { ImmutableMap.Builder<String, Object> builder = ImmutableMap.builder(); for (int i = 0; i < fields.size(); i++) { Type type = types.get().get(i); Object value = convertValue(fields.get(i), type); if (value != null) { builder.put(columns.get(i).getName(), value); } } producer.send(new KeyedMessage<>(topicName, count.getAndIncrement(), builder.build())); } } }
private void transformAndAdd() { QueryStatusInfo queryStatusInfo = client.isValid() ? client.currentStatusInfo() : client.finalStatusInfo(); if (queryStatusInfo.getError() != null || queryStatusInfo.getColumns() == null || !client.isValid()) { return; columns = queryStatusInfo.getColumns().stream() .map(c -> { List<ClientTypeSignatureParameter> arguments = c.getTypeSignature().getArguments(); String type = queryStatusInfo.getColumns().get(i).getTypeSignature().getRawType(); Object value = objects.get(i); if (value != null) {
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(); QueryError queryError = new QueryError(
QueryError error = client.finalStatusInfo().getError(); if (results.getUpdateType() != null) { resultsSession.setUpdateType(results.getUpdateType()); if (results.getUpdateCount() != null) { resultsSession.setUpdateCount(results.getUpdateCount()); return new ResultWithQueryId<>(new QueryId(results.getId()), result);
private void printQueryInfo(QueryStatusInfo results, WarningsPrinter warningsPrinter) StatementStats stats = results.getStats(); Duration wallTime = nanosSince(start); results.getId(), stats.getState(), nodes, reprintLine(querySummary); String url = results.getInfoUri().toString(); if (debug && (url.length() < terminalWidth)) { reprintLine(url); results.getId(), stats.getState(), reprintLine(querySummary); warningsPrinter.print(results.getWarnings(), false, false);
StatementStats stats = results.getStats(); results.getId(), stats.getState(), nodes, out.println(results.getInfoUri().toString());
@Override public void addResults(QueryStatusInfo statusInfo, QueryData data) if (types.get() == null && statusInfo.getColumns() != null) { types.set(getTypes(statusInfo.getColumns())); List<Column> columns = statusInfo.getColumns(); for (List<Object> fields : data.getData()) { String redisKey = tableName + ":" + count.getAndIncrement();
public void renderFailure(PrintStream out) { QueryStatusInfo results = client.finalStatusInfo(); QueryError error = results.getError(); checkState(error != null); out.printf("Query %s failed: %s%n", results.getId(), error.getMessage()); if (debug && (error.getFailureInfo() != null)) { error.getFailureInfo().toException().printStackTrace(out); } if (error.getErrorLocation() != null) { renderErrorLocation(client.getQuery(), error.getErrorLocation(), out); } out.println(); }
private void renderUpdate(PrintStream out, QueryStatusInfo results) { String status = results.getUpdateType(); if (results.getUpdateCount() != null) { long count = results.getUpdateCount(); status += format(": %s row%s", count, (count != 1) ? "s" : ""); } out.println(status); discardResults(); }
if (client.isRunning() || (client.isFinished() && client.finalStatusInfo().getError() == null)) { QueryStatusInfo results = client.isRunning() ? client.currentStatusInfo() : client.finalStatusInfo(); if (results.getUpdateType() != null) { renderUpdate(errorChannel, results); else if (results.getColumns() == null) { errorChannel.printf("Query %s has no columns\n", results.getId()); return false; renderResults(out, outputFormat, interactive, results.getColumns()); new PrintStreamWarningsPrinter(System.err).print(client.finalStatusInfo().getWarnings(), true, true); statusPrinter.printFinalInfo(); warningsPrinter.print(client.finalStatusInfo().getWarnings(), true, true); if (client.finalStatusInfo().getError() != null) { renderFailure(errorChannel); return false;