Package io.trino.execution
Class QueryStateMachine
java.lang.Object
io.trino.execution.QueryStateMachine
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidaddPreparedStatement(String key, String value) voidaddQueryInfoStateChangeListener(StateMachine.StateChangeListener<QueryInfo> stateChangeListener) Add a listener for the final query info.voidvoidaddSetRole(String catalog, SelectedRole role) voidaddSetSessionProperties(String key, String value) voidaddStateChangeListener(StateMachine.StateChangeListener<QueryState> stateChangeListener) Listener is always notified asynchronously using a dedicated notification thread pool so, care should be taken to avoid leakingthiswhen adding a listener in a constructor.static QueryStateMachinebegin(Optional<TransactionId> existingTransactionId, String query, Optional<String> preparedQuery, Session session, URI self, ResourceGroupId resourceGroup, boolean transactionControl, TransactionManager transactionManager, AccessControl accessControl, Executor executor, Metadata metadata, WarningCollector warningCollector, PlanOptimizersStatsCollector queryStatsCollector, Optional<QueryType> queryType, boolean faultTolerantExecutionExchangeEncryptionEnabled, NodeVersion version) Created QueryStateMachines must be transitioned to terminal states to clean up resources.voidvoidvoidgetBasicQueryInfo(Optional<BasicStageStats> rootStage) org.joda.time.DateTimeOptional<org.joda.time.DateTime> Optional<org.joda.time.DateTime> org.joda.time.DateTimelonglonglonglonglonglongOptional<io.airlift.units.Duration> com.google.common.util.concurrent.ListenableFuture<QueryState> getStateChange(QueryState currentState) booleanisDone()voidoutputTaskFailed(TaskId taskId, Throwable failure) voidvoidvoidvoidvoidvoidsetColumns(List<String> columnNames, List<Type> columnTypes) voidsetDynamicFiltersStatsSupplier(Supplier<DynamicFilterService.DynamicFiltersStats> dynamicFiltersStatsSupplier) voidvoidvoidvoidsetReferencedTables(List<TableInfo> tables) voidsetRoutines(List<RoutineInfo> routines) voidsetSetAuthorizationUser(String authorizationUser) voidsetSetCatalog(String catalog) voidsetSetPath(String path) voidsetSetSchema(String schema) voidsetStartedTransactionId(TransactionId startedTransactionId) voidsetUpdateType(String updateType) booleanbooleanbooleantransitionToFailed(Throwable throwable) booleanbooleanbooleanbooleanbooleanvoidupdateInputsForQueryResults(List<ExchangeInput> inputs, boolean noMoreInputs) voidupdateMemoryUsage(long deltaUserMemoryInBytes, long deltaRevocableMemoryInBytes, long deltaTotalMemoryInBytes, long taskUserMemoryInBytes, long taskRevocableMemoryInBytes, long taskTotalMemoryInBytes) updateQueryInfo(Optional<StageInfo> stageInfo)
-
Method Details
-
begin
public static QueryStateMachine begin(Optional<TransactionId> existingTransactionId, String query, Optional<String> preparedQuery, Session session, URI self, ResourceGroupId resourceGroup, boolean transactionControl, TransactionManager transactionManager, AccessControl accessControl, Executor executor, Metadata metadata, WarningCollector warningCollector, PlanOptimizersStatsCollector queryStatsCollector, Optional<QueryType> queryType, boolean faultTolerantExecutionExchangeEncryptionEnabled, NodeVersion version) Created QueryStateMachines must be transitioned to terminal states to clean up resources. -
getQueryId
-
getSession
-
getStateMachineExecutor
-
getPeakUserMemoryInBytes
public long getPeakUserMemoryInBytes() -
getPeakRevocableMemoryInBytes
public long getPeakRevocableMemoryInBytes() -
getPeakTotalMemoryInBytes
public long getPeakTotalMemoryInBytes() -
getPeakTaskUserMemory
public long getPeakTaskUserMemory() -
getPeakTaskRevocableMemory
public long getPeakTaskRevocableMemory() -
getPeakTaskTotalMemory
public long getPeakTaskTotalMemory() -
getWarningCollector
-
getPlanOptimizersStatsCollector
-
updateMemoryUsage
public void updateMemoryUsage(long deltaUserMemoryInBytes, long deltaRevocableMemoryInBytes, long deltaTotalMemoryInBytes, long taskUserMemoryInBytes, long taskRevocableMemoryInBytes, long taskTotalMemoryInBytes) -
getBasicQueryInfo
-
setOutputInfoListener
-
addOutputTaskFailureListener
-
outputTaskFailed
-
setColumns
-
updateInputsForQueryResults
-
setInputs
-
setOutput
-
setReferencedTables
-
setRoutines
-
setDynamicFiltersStatsSupplier
public void setDynamicFiltersStatsSupplier(Supplier<DynamicFilterService.DynamicFiltersStats> dynamicFiltersStatsSupplier) -
getSetSessionProperties
-
setSetCatalog
-
setSetSchema
-
setSetPath
-
getSetPath
-
setSetAuthorizationUser
-
resetAuthorizationUser
public void resetAuthorizationUser() -
addSetSessionProperties
-
addSetRole
-
getResetSessionProperties
-
addResetSessionProperties
-
getAddedPreparedStatements
-
getDeallocatedPreparedStatements
-
addPreparedStatement
-
removePreparedStatement
-
setStartedTransactionId
-
clearTransactionId
public void clearTransactionId() -
setUpdateType
-
getQueryState
-
isDone
public boolean isDone() -
transitionToWaitingForResources
public boolean transitionToWaitingForResources() -
transitionToDispatching
public boolean transitionToDispatching() -
transitionToPlanning
public boolean transitionToPlanning() -
transitionToStarting
public boolean transitionToStarting() -
transitionToRunning
public boolean transitionToRunning() -
transitionToFinishing
public boolean transitionToFinishing() -
resultsConsumed
public void resultsConsumed() -
transitionToCanceled
public boolean transitionToCanceled() -
transitionToFailed
-
addStateChangeListener
public void addStateChangeListener(StateMachine.StateChangeListener<QueryState> stateChangeListener) Listener is always notified asynchronously using a dedicated notification thread pool so, care should be taken to avoid leakingthiswhen adding a listener in a constructor. Additionally, it is possible notifications are observed out of order due to the asynchronous execution. -
addQueryInfoStateChangeListener
public void addQueryInfoStateChangeListener(StateMachine.StateChangeListener<QueryInfo> stateChangeListener) Add a listener for the final query info. This notification is guaranteed to be fired only once. Listener is always notified asynchronously using a dedicated notification thread pool so, care should be taken to avoid leakingthiswhen adding a listener in a constructor. -
getStateChange
public com.google.common.util.concurrent.ListenableFuture<QueryState> getStateChange(QueryState currentState) -
recordHeartbeat
public void recordHeartbeat() -
beginAnalysis
public void beginAnalysis() -
endAnalysis
public void endAnalysis() -
getCreateTime
public org.joda.time.DateTime getCreateTime() -
getExecutionStartTime
-
getPlanningTime
-
getLastHeartbeat
public org.joda.time.DateTime getLastHeartbeat() -
getEndTime
-
getFailureInfo
-
getFinalQueryInfo
-
updateQueryInfo
-
pruneQueryInfo
public void pruneQueryInfo()
-