Package io.trino.sql.analyzer
Class Analysis
java.lang.Object
io.trino.sql.analyzer.Analysis
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classstatic final classstatic classstatic final classstatic final classstatic final recordstatic classstatic classAnalysis for predicates such asx IN (subquery)orx = SOME (subquery)static classstatic final classstatic classstatic final classstatic classstatic classstatic classstatic classstatic class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAliased(Relation relation) voidaddCheckConstraints(Table table, Expression constraint) voidaddCoercion(Expression expression, Type type) voidaddCoercions(Map<NodeRef<Expression>, Type> coercions, Map<NodeRef<Expression>, Type> sortKeyCoercionsForFrameBoundCalculation, Map<NodeRef<Expression>, Type> sortKeyCoercionsForFrameBoundComparison) voidaddColumnMask(Table table, String column, Expression mask) voidaddColumnReferences(Map<NodeRef<Expression>, ResolvedField> columnReferences) voidaddEmptyColumnReferencesForTable(AccessControl accessControl, Identity identity, QualifiedObjectName table) voidaddExpressionFields(Expression expression, Collection<Field> fields) voidaddFrameBoundCalculations(Map<NodeRef<Expression>, ResolvedFunction> frameBoundCalculations) voidaddJsonTableAnalysis(JsonTable jsonTable, Analysis.JsonTableAnalysis analysis) voidvoidaddLambdaArgumentReferences(Map<NodeRef<Identifier>, LambdaArgumentDeclaration> lambdaArgumentReferences) voidaddPatternNavigationFunctions(Set<NodeRef<FunctionCall>> functions) voidaddPatternRecognitionInputs(Map<NodeRef<Expression>, List<PatternRecognitionAnalysis.PatternInputAnalysis>> functions) voidaddPolymorphicTableFunction(TableFunctionInvocation invocation) voidaddPredicateCoercions(Map<NodeRef<Expression>, Analysis.PredicateCoercions> coercions) voidaddRelationCoercion(Relation relation, Type[] types) voidaddResolvedFunction(Node node, ResolvedFunction function, String authorization) voidaddResolvedLabel(Identifier label, String resolved) voidaddResolvedLabels(Map<NodeRef<Identifier>, String> labels) voidaddRowFilter(Table table, Expression filter) voidaddSourceColumns(Field field, Set<Analysis.SourceColumn> sourceColumn) voidaddSubsetLabels(SubsetDefinition subset, Set<String> labels) voidaddSubsetLabels(Map<NodeRef<SubsetDefinition>, Set<String>> subsets) voidaddTableColumnReferences(AccessControl accessControl, Identity identity, com.google.common.collect.Multimap<QualifiedObjectName, String> tableColumnMap) voidaddType(Expression expression, Type type) voidaddTypes(Map<NodeRef<Expression>, Type> types) voidaddWindowDefinition(QuerySpecification query, CanonicalizationAware<Identifier> name, Analysis.ResolvedWindow window) getAccessControlScope(Table node) getAggregates(QuerySpecification query) getCheckConstraints(Table node) getCoercion(Expression expression) getColumnMasks(Table table) getExpandableBaseScope(Node node) getExpressionSourceColumns(Expression expression) getFrameBoundCalculation(Expression frameOffset) getGroupingOperations(QuerySpecification querySpecification) getHaving(QuerySpecification query) getJoinCriteria(Join join) getJoinUsing(Join node) getJsonInputFunction(Expression expression) getJsonOutputFunction(Node node) getJsonPathAnalysis(Node node) getJsonTableAnalysis(JsonTable jsonTable) getLabel(Expression expression) getLabels(SubsetDefinition subset) getLambdaArgumentReference(Identifier identifier) getMeasureDefinition(WindowOperation measure) getNamedQuery(Table table) longgetOrderByAggregates(OrderBy node) getOrderByExpressions(Node node) getOrderByWindowFunctions(OrderBy query) getOutputDescriptor(Node node) getPatternInputsAnalysis(Expression expression) getPredicateCoercions(Expression expression) getRange(RangeQuantifier quantifier) getRecursiveReference(Query query) getRelationCoercion(Relation relation) getRelationName(Relation relation) getResolvedField(Expression expression) getResolvedFunction(Node node) getResolvedLabel(Identifier identifier) getRowFilters(Table node) getRowIdField(Table table) doublegetSampleRatio(SampledRelation relation) getSelectExpressions(Node node) getSortKeyCoercionForFrameBoundCalculation(Expression frameOffset) getSortKeyCoercionForFrameBoundComparison(Expression frameOffset) getSourceColumns(Field field) getSubqueries(Node node) getTableHandle(Table table) getType(Expression expression) getTypes()getUndefinedLabels(RowPattern pattern) getWhere(QuerySpecification node) getWindowDefinition(QuerySpecification query, CanonicalizationAware<Identifier> name) booleanhasColumnMask(QualifiedObjectName table, String column, String identity) booleanhasRowFilter(QualifiedObjectName table, String identity) booleanhasTableInView(Table tableReference) booleanbooleanbooleanisAnalyzed(Expression expression) booleanisColumnReference(Expression expression) booleanbooleanisExpandableQuery(Query query) booleanisOrderByRedundant(OrderBy orderBy) booleanbooleanisPatternRecognitionFunction(FunctionCall functionCall) booleanisPolymorphicTableFunction(TableFunctionInvocation invocation) booleanbooleanbooleanisUpdateTarget(Table table) voidmarkRedundantOrderBy(OrderBy orderBy) voidrecordSubqueries(Node node, ExpressionAnalysis expressionAnalysis) voidregisterExpandableQuery(Query query, Node recursiveReference) voidregisterNamedQuery(Table tableReference, Query query) voidregisterTable(Table table, Optional<TableHandle> handle, QualifiedObjectName name, String authorization, Scope accessControlScope, Optional<String> viewText) voidregisterTableForColumnMasking(QualifiedObjectName table, String column, String identity, String maskExpression) voidregisterTableForRowFiltering(QualifiedObjectName table, String identity, String filterExpression) voidregisterTableForView(Table tableReference, QualifiedObjectName name, boolean isMaterializedView) voidsetAggregates(QuerySpecification node, List<FunctionCall> aggregates) voidsetAnalyzeMetadata(AnalyzeMetadata analyzeMetadata) voidsetColumn(Field field, ColumnHandle handle) voidsetCreate(Analysis.Create create) voidvoidsetExpandableBaseScope(Node node, Scope scope) voidsetGroupingOperations(QuerySpecification querySpecification, List<GroupingOperation> groupingOperations) voidsetGroupingSets(QuerySpecification node, Analysis.GroupingSetAnalysis groupingSets) voidsetHaving(QuerySpecification node, Expression expression) voidsetImplicitFromScope(QuerySpecification node, Scope scope) voidsetInsert(Analysis.Insert insert) voidsetJoinCriteria(Join node, Expression criteria) voidsetJoinUsing(Join node, Analysis.JoinUsingAnalysis analysis) voidsetJsonInputFunctions(Map<NodeRef<Expression>, ResolvedFunction> functions) voidsetJsonOutputFunctions(Map<NodeRef<Node>, ResolvedFunction> functions) voidsetJsonPathAnalyses(Map<NodeRef<Node>, JsonPathAnalyzer.JsonPathAnalysis> pathAnalyses) voidsetJsonPathAnalysis(Node node, JsonPathAnalyzer.JsonPathAnalysis pathAnalysis) voidvoidsetLimit(Node node, OptionalLong rowCount) voidsetMaterializedViewStorageTableFields(Table node, List<Field> fields) voidsetMeasureDefinitions(Map<NodeRef<WindowOperation>, MeasureDefinition> definitions) voidsetMergeAnalysis(Analysis.MergeAnalysis mergeAnalysis) voidvoidsetOrderByAggregates(OrderBy node, List<Expression> aggregates) voidsetOrderByExpressions(Node node, List<Expression> items) voidsetOrderByWindowFunctions(OrderBy node, List<FunctionCall> functions) voidsetOrderByWindowMeasures(OrderBy node, List<WindowOperation> measures) voidsetRanges(Map<NodeRef<RangeQuantifier>, Analysis.Range> quantifierRanges) voidsetRefreshMaterializedView(Analysis.RefreshMaterializedViewAnalysis refreshMaterializedView) voidsetRelationName(Relation relation, QualifiedName name) voidsetRowIdField(Table table, FieldReference field) voidsetSampleRatio(SampledRelation relation, double ratio) voidvoidsetSelectAllResultFields(AllColumns node, List<Field> expressions) voidsetSelectExpressions(Node node, List<Analysis.SelectExpression> expressions) voidsetSkipMaterializedViewRefresh(boolean skipMaterializedViewRefresh) voidsetTableExecuteHandle(TableExecuteHandle tableExecuteHandle) voidsetTableExecuteReadsData(boolean readsData) voidsetTableFunctionAnalysis(TableFunctionInvocation node, Analysis.TableFunctionInvocationAnalysis analysis) voidsetUndefinedLabels(RowPattern pattern, Set<String> labels) voidsetUndefinedLabels(Map<NodeRef<RowPattern>, Set<String>> labels) voidsetUnnest(Unnest node, Analysis.UnnestAnalysis analysis) voidsetUpdatedColumns(List<ColumnSchema> updatedColumns) voidsetUpdateTarget(CatalogHandle.CatalogVersion catalogVersion, QualifiedObjectName targetName, Optional<Table> targetTable, Optional<List<OutputColumn>> targetColumns) voidsetUpdateType(String updateType) voidsetWhere(Node node, Expression expression) voidsetWindow(Node node, Analysis.ResolvedWindow window) voidsetWindowFunctions(QuerySpecification node, List<FunctionCall> functions) voidsetWindowMeasures(QuerySpecification node, List<WindowOperation> measures) tryGetScope(Node node) voidunregisterTableForColumnMasking(QualifiedObjectName table, String column, String identity) voidunregisterTableForRowFiltering(QualifiedObjectName table, String identity) void
-
Constructor Details
-
Analysis
-
-
Method Details
-
getStatement
-
getUpdateType
-
getTarget
-
setUpdateType
-
setUpdateTarget
public void setUpdateTarget(CatalogHandle.CatalogVersion catalogVersion, QualifiedObjectName targetName, Optional<Table> targetTable, Optional<List<OutputColumn>> targetColumns) -
isUpdateTarget
-
isSkipMaterializedViewRefresh
public boolean isSkipMaterializedViewRefresh() -
setSkipMaterializedViewRefresh
public void setSkipMaterializedViewRefresh(boolean skipMaterializedViewRefresh) -
isTableExecuteReadsData
public boolean isTableExecuteReadsData() -
setTableExecuteReadsData
public void setTableExecuteReadsData(boolean readsData) -
setAggregates
-
getAggregates
-
setOrderByAggregates
-
getOrderByAggregates
-
getTypes
-
isAnalyzed
-
getType
-
getRelationCoercion
-
addRelationCoercion
-
getCoercions
-
getCoercion
-
addLambdaArgumentReferences
public void addLambdaArgumentReferences(Map<NodeRef<Identifier>, LambdaArgumentDeclaration> lambdaArgumentReferences) -
getLambdaArgumentReference
-
getLambdaArgumentReferences
-
setGroupingSets
-
isAggregation
-
getGroupingSets
-
setWhere
-
getWhere
-
setOrderByExpressions
-
getOrderByExpressions
-
setOffset
-
getOffset
-
setLimit
-
setLimit
-
getLimit
-
setSelectAllResultFields
-
getSelectAllResultFields
-
setSelectExpressions
-
getSelectExpressions
-
setHaving
-
setJoinCriteria
-
getJoinCriteria
-
recordSubqueries
-
getSubqueries
-
addWindowDefinition
public void addWindowDefinition(QuerySpecification query, CanonicalizationAware<Identifier> name, Analysis.ResolvedWindow window) -
getWindowDefinition
public Analysis.ResolvedWindow getWindowDefinition(QuerySpecification query, CanonicalizationAware<Identifier> name) -
setWindow
-
getWindow
-
setWindowFunctions
-
getWindowFunctions
-
setOrderByWindowFunctions
-
getOrderByWindowFunctions
-
setWindowMeasures
-
getWindowMeasures
-
setOrderByWindowMeasures
-
getOrderByWindowMeasures
-
addColumnReferences
-
getScope
-
tryGetScope
-
getRootScope
-
setScope
-
getOutputDescriptor
-
getOutputDescriptor
-
getTableHandle
-
getTables
-
registerTable
public void registerTable(Table table, Optional<TableHandle> handle, QualifiedObjectName name, String authorization, Scope accessControlScope, Optional<String> viewText) -
getResolvedFunctions
-
getResolvedFunction
-
addResolvedFunction
-
getColumnReferences
-
getColumnReferenceFields
-
getResolvedField
-
isColumnReference
-
addType
-
addTypes
-
addCoercion
-
addCoercions
public void addCoercions(Map<NodeRef<Expression>, Type> coercions, Map<NodeRef<Expression>, Type> sortKeyCoercionsForFrameBoundCalculation, Map<NodeRef<Expression>, Type> sortKeyCoercionsForFrameBoundComparison) -
getSortKeyCoercionForFrameBoundCalculation
-
getSortKeyCoercionForFrameBoundComparison
-
addFrameBoundCalculations
public void addFrameBoundCalculations(Map<NodeRef<Expression>, ResolvedFunction> frameBoundCalculations) -
getFrameBoundCalculation
-
getHaving
-
setColumn
-
getColumn
-
getAnalyzeMetadata
-
setAnalyzeMetadata
-
setCreate
-
getCreate
-
setInsert
-
getInsert
-
setUpdatedColumns
-
getUpdatedColumns
-
getMergeAnalysis
-
setMergeAnalysis
-
setRefreshMaterializedView
public void setRefreshMaterializedView(Analysis.RefreshMaterializedViewAnalysis refreshMaterializedView) -
getRefreshMaterializedView
-
setDelegatedRefreshMaterializedView
-
getDelegatedRefreshMaterializedView
-
getNamedQuery
-
registerNamedQuery
-
registerExpandableQuery
-
isExpandableQuery
-
getRecursiveReference
-
setExpandableBaseScope
-
getExpandableBaseScope
-
registerTableForView
public void registerTableForView(Table tableReference, QualifiedObjectName name, boolean isMaterializedView) -
unregisterTableForView
public void unregisterTableForView() -
hasTableInView
-
setSampleRatio
-
getSampleRatio
-
setGroupingOperations
public void setGroupingOperations(QuerySpecification querySpecification, List<GroupingOperation> groupingOperations) -
getGroupingOperations
-
getParameters
-
getQueryType
-
isDescribe
public boolean isDescribe() -
setJoinUsing
-
getJoinUsing
-
setUnnest
-
getUnnest
-
addTableColumnReferences
public void addTableColumnReferences(AccessControl accessControl, Identity identity, com.google.common.collect.Multimap<QualifiedObjectName, String> tableColumnMap) -
addEmptyColumnReferencesForTable
public void addEmptyColumnReferencesForTable(AccessControl accessControl, Identity identity, QualifiedObjectName table) -
addLabels
-
addPatternRecognitionInputs
public void addPatternRecognitionInputs(Map<NodeRef<Expression>, List<PatternRecognitionAnalysis.PatternInputAnalysis>> functions) -
getLabel
-
isPatternRecognitionFunction
-
setRanges
-
getRange
-
setUndefinedLabels
-
setUndefinedLabels
-
getUndefinedLabels
-
setMeasureDefinitions
-
getMeasureDefinition
-
setJsonPathAnalyses
-
setJsonPathAnalysis
-
getJsonPathAnalysis
-
setJsonInputFunctions
-
getJsonInputFunction
-
setJsonOutputFunctions
-
getJsonOutputFunction
-
addJsonTableAnalysis
-
getJsonTableAnalysis
-
getTableColumnReferences
public Map<Analysis.AccessControlInfo,Map<QualifiedObjectName, getTableColumnReferences()Set<String>>> -
markRedundantOrderBy
-
isOrderByRedundant
-
hasRowFilter
-
registerTableForRowFiltering
public void registerTableForRowFiltering(QualifiedObjectName table, String identity, String filterExpression) -
unregisterTableForRowFiltering
-
addRowFilter
-
addCheckConstraints
-
getRowFilters
-
getCheckConstraints
-
hasColumnMask
-
registerTableForColumnMasking
public void registerTableForColumnMasking(QualifiedObjectName table, String column, String identity, String maskExpression) -
unregisterTableForColumnMasking
public void unregisterTableForColumnMasking(QualifiedObjectName table, String column, String identity) -
addColumnMask
-
getColumnMasks
-
getReferencedTables
-
getRoutines
-
addSourceColumns
-
getSourceColumns
-
addExpressionFields
-
getExpressionSourceColumns
-
setRowIdField
-
getRowIdField
-
getAccessControlScope
-
setImplicitFromScope
-
getImplicitFromScope
-
addPredicateCoercions
-
getPredicateCoercions
-
setTableExecuteHandle
-
getTableExecuteHandle
-
setTableFunctionAnalysis
public void setTableFunctionAnalysis(TableFunctionInvocation node, Analysis.TableFunctionInvocationAnalysis analysis) -
getTableFunctionAnalysis
public Analysis.TableFunctionInvocationAnalysis getTableFunctionAnalysis(TableFunctionInvocation node) -
getPolymorphicTableFunctions
-
setRelationName
-
getRelationName
-
addAliased
-
isAliased
-
addPolymorphicTableFunction
-
isPolymorphicTableFunction
-
getPatternInputsAnalysis
public List<PatternRecognitionAnalysis.PatternInputAnalysis> getPatternInputsAnalysis(Expression expression) -
getResolvedLabel
-
getLabels
-
addSubsetLabels
-
addSubsetLabels
-
addResolvedLabel
-
addResolvedLabels
-
getMaterializedViewStorageTableFields
-
setMaterializedViewStorageTableFields
-