static SQLException resultsException(QueryStatusInfo results) { QueryError error = requireNonNull(results.getError()); String message = format("Query failed (#%s): %s", results.getId(), error.getMessage()); Throwable cause = (error.getFailureInfo() == null) ? null : error.getFailureInfo().toException(); return new SQLException(message, error.getSqlState(), error.getErrorCode(), cause); }
PrestoResultSet(StatementClient client, long maxRows, Consumer<QueryStats> progressCallback, WarningsManager warningsManager) throws SQLException { this.client = requireNonNull(client, "client is null"); requireNonNull(progressCallback, "progressCallback is null"); this.sessionTimeZone = DateTimeZone.forID(client.getTimeZone().getId()); this.queryId = client.currentStatusInfo().getId(); List<Column> columns = getColumns(client, progressCallback); this.fieldMap = getFieldMap(columns); this.columnInfoList = getColumnInfo(columns); this.resultSetMetaData = new PrestoResultSetMetaData(columnInfoList); this.warningsManager = requireNonNull(warningsManager, "warningsManager is null"); this.results = flatten(new ResultsPageIterator(client, progressCallback, warningsManager), maxRows); }
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(); }
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 static List<Column> getColumns(StatementClient client, Consumer<QueryStats> progressCallback) throws SQLException { while (client.isRunning()) { QueryStatusInfo results = client.currentStatusInfo(); progressCallback.accept(QueryStats.create(results.getId(), results.getStats())); List<Column> columns = results.getColumns(); if (columns != null) { return columns; } client.advance(); } verify(client.isFinished()); QueryStatusInfo results = client.finalStatusInfo(); if (results.getError() == null) { throw new SQLException(format("Query has no columns (#%s)", results.getId())); } throw resultsException(results); }
progressCallback.accept(QueryStats.create(results.getId(), results.getStats())); warningsManager.addWarnings(results.getWarnings()); Iterable<List<Object>> data = client.currentData().getData(); progressCallback.accept(QueryStats.create(results.getId(), results.getStats())); warningsManager.addWarnings(results.getWarnings()); if (results.getError() != null) {
results.getId(), stats.getState(), nodes,
results.getId(), stats.getState(), nodes,
return new ResultWithQueryId<>(new QueryId(results.getId()), result);
return new QueryId(client.currentStatusInfo().getId());
errorChannel.printf("Query %s has no columns\n", results.getId()); return false;
errorChannel.printf("Query %s has no columns\n", results.getId()); return false;