Class QueryStateMachine

java.lang.Object
io.trino.execution.QueryStateMachine

@ThreadSafe public class QueryStateMachine extends Object
  • 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

      public QueryId getQueryId()
    • getSession

      public Session getSession()
    • getStateMachineExecutor

      public Executor 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

      public WarningCollector getWarningCollector()
    • getPlanOptimizersStatsCollector

      public PlanOptimizersStatsCollector getPlanOptimizersStatsCollector()
    • updateMemoryUsage

      public void updateMemoryUsage(long deltaUserMemoryInBytes, long deltaRevocableMemoryInBytes, long deltaTotalMemoryInBytes, long taskUserMemoryInBytes, long taskRevocableMemoryInBytes, long taskTotalMemoryInBytes)
    • getBasicQueryInfo

      public BasicQueryInfo getBasicQueryInfo(Optional<BasicStageStats> rootStage)
    • setOutputInfoListener

      public void setOutputInfoListener(Consumer<QueryExecution.QueryOutputInfo> listener)
    • addOutputTaskFailureListener

      public void addOutputTaskFailureListener(TaskFailureListener listener)
    • outputTaskFailed

      public void outputTaskFailed(TaskId taskId, Throwable failure)
    • setColumns

      public void setColumns(List<String> columnNames, List<Type> columnTypes)
    • updateInputsForQueryResults

      public void updateInputsForQueryResults(List<ExchangeInput> inputs, boolean noMoreInputs)
    • setInputs

      public void setInputs(List<Input> inputs)
    • setOutput

      public void setOutput(Optional<Output> output)
    • setReferencedTables

      public void setReferencedTables(List<TableInfo> tables)
    • setRoutines

      public void setRoutines(List<RoutineInfo> routines)
    • setDynamicFiltersStatsSupplier

      public void setDynamicFiltersStatsSupplier(Supplier<DynamicFilterService.DynamicFiltersStats> dynamicFiltersStatsSupplier)
    • getSetSessionProperties

      public Map<String,String> getSetSessionProperties()
    • setSetCatalog

      public void setSetCatalog(String catalog)
    • setSetSchema

      public void setSetSchema(String schema)
    • setSetPath

      public void setSetPath(String path)
    • getSetPath

      public String getSetPath()
    • setSetAuthorizationUser

      public void setSetAuthorizationUser(String authorizationUser)
    • resetAuthorizationUser

      public void resetAuthorizationUser()
    • addSetSessionProperties

      public void addSetSessionProperties(String key, String value)
    • addSetRole

      public void addSetRole(String catalog, SelectedRole role)
    • getResetSessionProperties

      public Set<String> getResetSessionProperties()
    • addResetSessionProperties

      public void addResetSessionProperties(String name)
    • getAddedPreparedStatements

      public Map<String,String> getAddedPreparedStatements()
    • getDeallocatedPreparedStatements

      public Set<String> getDeallocatedPreparedStatements()
    • addPreparedStatement

      public void addPreparedStatement(String key, String value)
    • removePreparedStatement

      public void removePreparedStatement(String key)
    • setStartedTransactionId

      public void setStartedTransactionId(TransactionId startedTransactionId)
    • clearTransactionId

      public void clearTransactionId()
    • setUpdateType

      public void setUpdateType(String updateType)
    • getQueryState

      public QueryState 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

      public boolean transitionToFailed(Throwable throwable)
    • 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 leaking this when 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 leaking this when 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

      public Optional<org.joda.time.DateTime> getExecutionStartTime()
    • getPlanningTime

      public Optional<io.airlift.units.Duration> getPlanningTime()
    • getLastHeartbeat

      public org.joda.time.DateTime getLastHeartbeat()
    • getEndTime

      public Optional<org.joda.time.DateTime> getEndTime()
    • getFailureInfo

      public Optional<ExecutionFailureInfo> getFailureInfo()
    • getFinalQueryInfo

      public Optional<QueryInfo> getFinalQueryInfo()
    • updateQueryInfo

      public QueryInfo updateQueryInfo(Optional<StageInfo> stageInfo)
    • updateResultQueryInfo

      public ResultQueryInfo updateResultQueryInfo(Optional<BasicStageInfo> stageInfo, Supplier<Optional<StageInfo>> stageInfoProvider)
    • pruneQueryInfo

      public void pruneQueryInfo()
    • isQueryInfoPruned

      public boolean isQueryInfoPruned()