private static void process(QueryRunner queryRunner, String sql, OutputFormat outputFormat, boolean interactive) { try (Query query = queryRunner.startQuery(sql)) { query.renderOutput(System.out, outputFormat, interactive); ClientSession session = queryRunner.getSession(); // update session properties if present if (!query.getSetSessionProperties().isEmpty() || !query.getResetSessionProperties().isEmpty()) { Map<String, String> sessionProperties = new HashMap<>(session.getProperties()); sessionProperties.putAll(query.getSetSessionProperties()); sessionProperties.keySet().removeAll(query.getResetSessionProperties()); session = withProperties(session, sessionProperties); } // update transaction ID if necessary if (query.isClearTransactionId()) { session = stripTransactionId(session); } if (query.getStartedTransactionId() != null) { session = withTransactionId(session, query.getStartedTransactionId()); } queryRunner.setSession(session); } catch (RuntimeException e) { System.err.println("Error running command: " + e.getMessage()); if (queryRunner.getSession().isDebug()) { e.printStackTrace(); } } }
public StatementClient(HttpClient httpClient, JsonCodec<QueryResults> queryResultsCodec, ClientSession session, String query) { requireNonNull(httpClient, "httpClient is null"); requireNonNull(queryResultsCodec, "queryResultsCodec is null"); requireNonNull(session, "session is null"); requireNonNull(query, "query is null"); this.httpClient = httpClient; this.responseHandler = createFullJsonResponseHandler(queryResultsCodec); this.debug = session.isDebug(); this.timeZoneId = session.getTimeZoneId(); this.query = query; this.requestTimeoutNanos = session.getClientRequestTimeout().roundTo(NANOSECONDS); Request request = buildQueryRequest(session, query); JsonResponse<QueryResults> response = httpClient.execute(request, responseHandler); if (response.getStatusCode() != HttpStatus.OK.code() || !response.hasValue()) { throw requestFailedException("starting query", request, response); } processResponse(response); }
public static ClientSession withSessionProperties(ClientSession session, Map<String, String> sessionProperties) { Map<String, String> properties = new HashMap<>(session.getProperties()); properties.putAll(sessionProperties); return new ClientSession( session.getServer(), session.getUser(), session.getSource(), session.getCatalog(), session.getSchema(), session.getTimeZoneId(), session.getLocale(), properties, session.getTransactionId(), session.isDebug(), session.getClientRequestTimeout()); }
public static ClientSession withCatalogAndSchema(ClientSession session, String catalog, String schema) { return new ClientSession( session.getServer(), session.getUser(), session.getSource(), catalog, schema, session.getTimeZoneId(), session.getLocale(), session.getProperties(), session.getTransactionId(), session.isDebug(), session.getClientRequestTimeout()); }
public static ClientSession stripTransactionId(ClientSession session) { return new ClientSession( session.getServer(), session.getUser(), session.getSource(), session.getCatalog(), session.getSchema(), session.getTimeZoneId(), session.getLocale(), session.getProperties(), null, session.isDebug(), session.getClientRequestTimeout()); }
public static ClientSession withProperties(ClientSession session, Map<String, String> properties) { return new ClientSession( session.getServer(), session.getUser(), session.getSource(), session.getCatalog(), session.getSchema(), session.getTimeZoneId(), session.getLocale(), properties, session.getTransactionId(), session.isDebug(), session.getClientRequestTimeout()); }
public static ClientSession withTransactionId(ClientSession session, String transactionId) { return new ClientSession( session.getServer(), session.getUser(), session.getSource(), session.getCatalog(), session.getSchema(), session.getTimeZoneId(), session.getLocale(), session.getProperties(), transactionId, session.isDebug(), session.getClientRequestTimeout()); }