@Override public String getQueryId() { return session.getQueryId().toString(); }
@Override public void cleanupQuery(Session session) { try { Collection<ConnectorMetadata> catalogs = catalogsByQueryId.get(session.getQueryId().getId()); if (catalogs == null) { return; } for (ConnectorMetadata metadata : catalogs) { metadata.cleanupQuery(session.toConnectorSession()); } } finally { catalogsByQueryId.remove(session.getQueryId().getId()); } }
private QueryStateMachine( String query, Session session, URI self, Optional<ResourceGroupId> resourceGroup, TransactionManager transactionManager, Executor executor, Ticker ticker, Metadata metadata, WarningCollector warningCollector) { this.query = requireNonNull(query, "query is null"); this.session = requireNonNull(session, "session is null"); this.queryId = session.getQueryId(); this.self = requireNonNull(self, "self is null"); this.resourceGroup = requireNonNull(resourceGroup, "resourceGroup is null"); this.transactionManager = requireNonNull(transactionManager, "transactionManager is null"); this.queryStateTimer = new QueryStateTimer(ticker); this.metadata = requireNonNull(metadata, "metadata is null"); this.queryState = new StateMachine<>("query " + query, executor, QUEUED, TERMINAL_QUERY_STATES); this.finalQueryInfo = new StateMachine<>("finalQueryInfo-" + queryId, executor, Optional.empty()); this.outputManager = new QueryOutputManager(executor); this.warningCollector = requireNonNull(warningCollector, "warningCollector is null"); }
session.getQueryId(), session.toSessionRepresentation(), FAILED,
private <T extends Statement> DataDefinitionExecution<T> createDataDefinitionExecution( String query, Session session, ResourceGroupId resourceGroup, T statement, List<Expression> parameters, WarningCollector warningCollector) { @SuppressWarnings("unchecked") DataDefinitionTask<T> task = (DataDefinitionTask<T>) tasks.get(statement.getClass()); checkArgument(task != null, "no task for statement: %s", statement.getClass().getSimpleName()); QueryStateMachine stateMachine = QueryStateMachine.begin( query, session, locationFactory.createQueryLocation(session.getQueryId()), resourceGroup, task.isTransactionControl(), transactionManager, accessControl, executor, metadata, warningCollector); stateMachine.setUpdateType(task.getName()); return new DataDefinitionExecution<>(task, statement, transactionManager, metadata, accessControl, stateMachine, parameters); } }
query, session, locationFactory.createQueryLocation(session.getQueryId()), resourceGroup, preparedQuery,
@Override public void beginQuery(Session session, Set<ConnectorId> connectors) { for (ConnectorId connectorId : connectors) { ConnectorMetadata metadata = getMetadata(session, connectorId); ConnectorSession connectorSession = session.toConnectorSession(connectorId); metadata.beginQuery(connectorSession); registerCatalogForQueryId(session.getQueryId(), metadata); } }
public static QueryId createQuery(DistributedQueryRunner queryRunner, Session session, String sql) { QueryManager queryManager = queryRunner.getCoordinator().getQueryManager(); getFutureValue(queryManager.createQuery(session.getQueryId(), new TestingSessionContext(session), sql)); return session.getQueryId(); }
@Override public PlanNodeCostEstimate getCumulativeCost(PlanNode node) { if (!isEnableStatsCalculator(session)) { return PlanNodeCostEstimate.unknown(); } requireNonNull(node, "node is null"); try { if (node instanceof GroupReference) { return getGroupCost((GroupReference) node); } PlanNodeCostEstimate cumulativeCost = cache.get(node); if (cumulativeCost != null) { return cumulativeCost; } cumulativeCost = calculateCumulativeCost(node); verify(cache.put(node, cumulativeCost) == null, "Cost already set"); return cumulativeCost; } catch (RuntimeException e) { if (isIgnoreStatsCalculatorFailures(session)) { log.error(e, "Error occurred when computing cost for query %s", session.getQueryId()); return PlanNodeCostEstimate.unknown(); } throw e; } }
@Override public PlanNodeStatsEstimate getStats(PlanNode node) { if (!isEnableStatsCalculator(session)) { return PlanNodeStatsEstimate.unknown(); } requireNonNull(node, "node is null"); try { if (node instanceof GroupReference) { return getGroupStats((GroupReference) node); } PlanNodeStatsEstimate stats = cache.get(node); if (stats != null) { return stats; } stats = statsCalculator.calculateStats(node, this, lookup, session, types); verify(cache.put(node, stats) == null, "Stats already set"); return stats; } catch (RuntimeException e) { if (isIgnoreStatsCalculatorFailures(session)) { log.error(e, "Error occurred when computing stats for query %s", session.getQueryId()); return PlanNodeStatsEstimate.unknown(); } throw e; } }
WarningCollector warningCollector) try (SetThreadName ignored = new SetThreadName("Query-%s", session.getQueryId())) { this.clusterSizeMonitor = requireNonNull(clusterSizeMonitor, "clusterSizeMonitor is null"); this.metadata = requireNonNull(metadata, "metadata is null");
private static void assertEqualSessionsWithoutTransactionId(Session actual, Session expected) { assertEquals(actual.getQueryId(), expected.getQueryId()); assertEquals(actual.getIdentity(), expected.getIdentity()); assertEquals(actual.getSource(), expected.getSource()); assertEquals(actual.getCatalog(), expected.getCatalog()); assertEquals(actual.getSchema(), expected.getSchema()); assertEquals(actual.getTimeZoneKey(), expected.getTimeZoneKey()); assertEquals(actual.getLocale(), expected.getLocale()); assertEquals(actual.getRemoteUserAddress(), expected.getRemoteUserAddress()); assertEquals(actual.getUserAgent(), expected.getUserAgent()); assertEquals(actual.getStartTime(), expected.getStartTime()); assertEquals(actual.getSystemProperties(), expected.getSystemProperties()); assertEquals(actual.getConnectorProperties(), expected.getConnectorProperties()); } }
Session session = sessionSupplier.createSession(new QueryId("test_query_id"), context); assertEquals(session.getQueryId(), new QueryId("test_query_id")); assertEquals(session.getUser(), "testUser"); assertEquals(session.getSource().get(), "testSource");
.setQueryId(session.getQueryId()) .setTransactionId(session.getTransactionId().orElse(null)) .setIdentity(identity)
getSession().getQueryId(), Optional.empty(), getSession().isClientTransactionSupport(),
.build(); QUERY_STATE_LOG.debug(e, "Query %s failed", session.getQueryId());
private static void assertState(QueryStateMachine stateMachine, QueryState expectedState, Exception expectedException) assertEquals(stateMachine.getQueryId(), TEST_SESSION.getQueryId()); assertEqualSessionsWithoutTransactionId(stateMachine.getSession(), TEST_SESSION); assertSame(stateMachine.getMemoryPool(), MEMORY_POOL); assertEquals(queryInfo.getQueryId(), TEST_SESSION.getQueryId()); assertEquals(queryInfo.getSelf(), LOCATION); assertFalse(queryInfo.getOutputStage().isPresent());
defaultSession.getQueryId(), withInitialTransaction ? Optional.of(transactionManager.beginTransaction(false)) : defaultSession.getTransactionId(), defaultSession.isClientTransactionSupport(),
public static QueryId createQuery(DistributedQueryRunner queryRunner, Session session, String sql) { QueryManager queryManager = queryRunner.getCoordinator().getQueryManager(); getFutureValue(queryManager.createQuery(session.getQueryId(), new TestingSessionContext(session), sql)); return session.getQueryId(); }
private static void assertEqualSessions(Session actual, Session expected) { assertEquals(actual.getQueryId(), expected.getQueryId()); assertEquals(actual.getTransactionId(), expected.getTransactionId()); assertEquals(actual.getIdentity(), expected.getIdentity()); assertEquals(actual.getSource(), expected.getSource()); assertEquals(actual.getCatalog(), expected.getCatalog()); assertEquals(actual.getSchema(), expected.getSchema()); assertEquals(actual.getTimeZoneKey(), expected.getTimeZoneKey()); assertEquals(actual.getLocale(), expected.getLocale()); assertEquals(actual.getRemoteUserAddress(), expected.getRemoteUserAddress()); assertEquals(actual.getUserAgent(), expected.getUserAgent()); assertEquals(actual.getStartTime(), expected.getStartTime()); assertEquals(actual.getSystemProperties(), expected.getSystemProperties()); assertEquals(actual.getCatalogProperties(), expected.getCatalogProperties()); } }