@Override public QueryId getQueryId() { return stateMachine.getQueryId(); }
@Override public QueryId getQueryId() { return stateMachine.getQueryId(); }
public void abort() { try (SetThreadName ignored = new SetThreadName("Query-%s", queryStateMachine.getQueryId())) { stages.values().forEach(SqlStageExecution::abort); } }
public void cancelStage(StageId stageId) { try (SetThreadName ignored = new SetThreadName("Query-%s", queryStateMachine.getQueryId())) { SqlStageExecution sqlStageExecution = stages.get(stageId); SqlStageExecution stage = requireNonNull(sqlStageExecution, () -> format("Stage %s does not exist", stageId)); stage.cancel(); } }
@Override public void cancelStage(StageId stageId) { requireNonNull(stageId, "stageId is null"); try (SetThreadName ignored = new SetThreadName("Query-%s", stateMachine.getQueryId())) { SqlQueryScheduler scheduler = queryScheduler.get(); if (scheduler != null) { scheduler.cancelStage(stageId); } } }
@Override public void addStateChangeListener(StateChangeListener<QueryState> stateChangeListener) { try (SetThreadName ignored = new SetThreadName("Query-%s", stateMachine.getQueryId())) { stateMachine.addStateChangeListener(stateChangeListener); } }
@Override public QueryInfo getQueryInfo() { try (SetThreadName ignored = new SetThreadName("Query-%s", stateMachine.getQueryId())) { // acquire reference to scheduler before checking finalQueryInfo, because // state change listener sets finalQueryInfo and then clears scheduler when // the query finishes. SqlQueryScheduler scheduler = queryScheduler.get(); return stateMachine.getFinalQueryInfo().orElseGet(() -> buildQueryInfo(scheduler)); } }
metadata, warningCollector); queryStateMachine.addStateChangeListener(newState -> QUERY_STATE_LOG.debug("Query %s is %s", queryStateMachine.getQueryId(), newState));
StageId stageId = new StageId(queryStateMachine.getQueryId(), nextStageId.getAndIncrement()); SqlStageExecution stage = createSqlStageExecution( stageId,
private void schedule() try (SetThreadName ignored = new SetThreadName("Query-%s", queryStateMachine.getQueryId())) { Set<StageId> completedStages = new HashSet<>(); ExecutionSchedule executionSchedule = executionPolicy.createExecutionSchedule(stages.values());
private void startExecution() try (SetThreadName ignored = new SetThreadName("Query-%s", stateMachine.getQueryId())) { try {
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);
@Override public QueryId getQueryId() { return stateMachine.getQueryId(); }
@Override public QueryId getQueryId() { return stateMachine.getQueryId(); }
public void abort() { try (SetThreadName ignored = new SetThreadName("Query-%s", queryStateMachine.getQueryId())) { stages.values().stream() .forEach(SqlStageExecution::abort); } }
public void cancelStage(StageId stageId) { try (SetThreadName ignored = new SetThreadName("Query-%s", queryStateMachine.getQueryId())) { SqlStageExecution sqlStageExecution = stages.get(stageId); SqlStageExecution stage = requireNonNull(sqlStageExecution, () -> format("Stage %s does not exist", stageId)); stage.cancel(); } }
@Override public void cancelStage(StageId stageId) { requireNonNull(stageId, "stageId is null"); try (SetThreadName ignored = new SetThreadName("Query-%s", stateMachine.getQueryId())) { SqlQueryScheduler scheduler = queryScheduler.get(); if (scheduler != null) { scheduler.cancelStage(stageId); } } }
@Override public QueryInfo getQueryInfo() { try (SetThreadName ignored = new SetThreadName("Query-%s", stateMachine.getQueryId())) { // acquire reference to scheduler before checking finalQueryInfo, because // state change listener sets finalQueryInfo and then clears scheduler when // the query finishes. SqlQueryScheduler scheduler = queryScheduler.get(); QueryInfo finalQueryInfo = this.finalQueryInfo.get(); if (finalQueryInfo != null) { return finalQueryInfo; } return buildQueryInfo(scheduler); } }
@Override public void addStateChangeListener(StateChangeListener<QueryState> stateChangeListener) { try (SetThreadName ignored = new SetThreadName("Query-%s", stateMachine.getQueryId())) { stateMachine.addStateChangeListener(stateChangeListener); } }
@Override public Duration waitForStateChange(QueryState currentState, Duration maxWait) throws InterruptedException { try (SetThreadName ignored = new SetThreadName("Query-%s", stateMachine.getQueryId())) { return stateMachine.waitForStateChange(currentState, maxWait); } }