Package io.trino.sql.analyzer
Class Analysis
- java.lang.Object
-
- io.trino.sql.analyzer.Analysis
-
public class Analysis extends Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAnalysis.AccessControlInfostatic classAnalysis.Createstatic classAnalysis.GroupingSetAnalysisstatic classAnalysis.Insertstatic classAnalysis.JoinUsingAnalysisstatic classAnalysis.PredicateCoercionsAnalysis for predicates such asx IN (subquery)orx = SOME (subquery)static classAnalysis.Rangestatic classAnalysis.RefreshMaterializedViewAnalysisstatic classAnalysis.ResolvedWindowstatic classAnalysis.SelectExpressionstatic classAnalysis.SourceColumnstatic classAnalysis.SubqueryAnalysisstatic classAnalysis.UnnestAnalysis
-
Method Summary
-
-
-
Constructor Detail
-
Analysis
public Analysis(@Nullable Statement root, Map<NodeRef<Parameter>,Expression> parameters, boolean isDescribe)
-
-
Method Detail
-
getStatement
public Statement getStatement()
-
getUpdateType
public String getUpdateType()
-
setUpdateType
public void setUpdateType(String updateType, QualifiedObjectName targetName, Optional<Table> targetTable, Optional<List<OutputColumn>> targetColumns)
-
resetUpdateType
public void resetUpdateType()
-
isUpdateTarget
public boolean isUpdateTarget(Table table)
-
isSkipMaterializedViewRefresh
public boolean isSkipMaterializedViewRefresh()
-
setSkipMaterializedViewRefresh
public void setSkipMaterializedViewRefresh(boolean skipMaterializedViewRefresh)
-
setAggregates
public void setAggregates(QuerySpecification node, List<FunctionCall> aggregates)
-
getAggregates
public List<FunctionCall> getAggregates(QuerySpecification query)
-
setOrderByAggregates
public void setOrderByAggregates(OrderBy node, List<Expression> aggregates)
-
getOrderByAggregates
public List<Expression> getOrderByAggregates(OrderBy node)
-
getTypes
public Map<NodeRef<Expression>,Type> getTypes()
-
getType
public Type getType(Expression expression)
-
getCoercions
public Map<NodeRef<Expression>,Type> getCoercions()
-
getTypeOnlyCoercions
public Set<NodeRef<Expression>> getTypeOnlyCoercions()
-
getCoercion
public Type getCoercion(Expression expression)
-
addLambdaArgumentReferences
public void addLambdaArgumentReferences(Map<NodeRef<Identifier>,LambdaArgumentDeclaration> lambdaArgumentReferences)
-
getLambdaArgumentReference
public LambdaArgumentDeclaration getLambdaArgumentReference(Identifier identifier)
-
getLambdaArgumentReferences
public Map<NodeRef<Identifier>,LambdaArgumentDeclaration> getLambdaArgumentReferences()
-
setGroupingSets
public void setGroupingSets(QuerySpecification node, Analysis.GroupingSetAnalysis groupingSets)
-
isAggregation
public boolean isAggregation(QuerySpecification node)
-
isTypeOnlyCoercion
public boolean isTypeOnlyCoercion(Expression expression)
-
getGroupingSets
public Analysis.GroupingSetAnalysis getGroupingSets(QuerySpecification node)
-
setWhere
public void setWhere(Node node, Expression expression)
-
getWhere
public Expression getWhere(QuerySpecification node)
-
setOrderByExpressions
public void setOrderByExpressions(Node node, List<Expression> items)
-
getOrderByExpressions
public List<Expression> getOrderByExpressions(Node node)
-
setOffset
public void setOffset(Offset node, long rowCount)
-
getOffset
public long getOffset(Offset node)
-
setLimit
public void setLimit(Node node, OptionalLong rowCount)
-
setLimit
public void setLimit(Node node, long rowCount)
-
getLimit
public OptionalLong getLimit(Node node)
-
setSelectAllResultFields
public void setSelectAllResultFields(AllColumns node, List<Field> expressions)
-
getSelectAllResultFields
public List<Field> getSelectAllResultFields(AllColumns node)
-
setSelectExpressions
public void setSelectExpressions(Node node, List<Analysis.SelectExpression> expressions)
-
getSelectExpressions
public List<Analysis.SelectExpression> getSelectExpressions(Node node)
-
setHaving
public void setHaving(QuerySpecification node, Expression expression)
-
setJoinCriteria
public void setJoinCriteria(Join node, Expression criteria)
-
getJoinCriteria
public Expression getJoinCriteria(Join join)
-
recordSubqueries
public void recordSubqueries(Node node, ExpressionAnalysis expressionAnalysis)
-
getSubqueries
public Analysis.SubqueryAnalysis getSubqueries(Node node)
-
addWindowDefinition
public void addWindowDefinition(QuerySpecification query, CanonicalizationAware<Identifier> name, Analysis.ResolvedWindow window)
-
getWindowDefinition
public Analysis.ResolvedWindow getWindowDefinition(QuerySpecification query, CanonicalizationAware<Identifier> name)
-
setWindow
public void setWindow(FunctionCall functionCall, Analysis.ResolvedWindow window)
-
getWindow
public Analysis.ResolvedWindow getWindow(FunctionCall functionCall)
-
setWindowFunctions
public void setWindowFunctions(QuerySpecification node, List<FunctionCall> functions)
-
getWindowFunctions
public List<FunctionCall> getWindowFunctions(QuerySpecification query)
-
setOrderByWindowFunctions
public void setOrderByWindowFunctions(OrderBy node, List<FunctionCall> functions)
-
getOrderByWindowFunctions
public List<FunctionCall> getOrderByWindowFunctions(OrderBy query)
-
addColumnReferences
public void addColumnReferences(Map<NodeRef<Expression>,ResolvedField> columnReferences)
-
getRootScope
public Scope getRootScope()
-
getOutputDescriptor
public RelationType getOutputDescriptor()
-
getOutputDescriptor
public RelationType getOutputDescriptor(Node node)
-
getTableHandle
public TableHandle getTableHandle(Table table)
-
getTables
public Collection<TableHandle> getTables()
-
registerTable
public void registerTable(Table table, Optional<TableHandle> handle, QualifiedObjectName name, List<ViewExpression> filters, Map<Field,List<ViewExpression>> columnMasks, String authorization, Scope accessControlScope)
-
getResolvedFunction
public ResolvedFunction getResolvedFunction(FunctionCall function)
-
addResolvedFunction
public void addResolvedFunction(FunctionCall node, ResolvedFunction function, String authorization)
-
getColumnReferences
public Set<NodeRef<Expression>> getColumnReferences()
-
getColumnReferenceFields
public Map<NodeRef<Expression>,ResolvedField> getColumnReferenceFields()
-
getResolvedField
public ResolvedField getResolvedField(Expression expression)
-
isColumnReference
public boolean isColumnReference(Expression expression)
-
addTypes
public void addTypes(Map<NodeRef<Expression>,Type> types)
-
addCoercion
public void addCoercion(Expression expression, Type type, boolean isTypeOnlyCoercion)
-
addCoercions
public void addCoercions(Map<NodeRef<Expression>,Type> coercions, Set<NodeRef<Expression>> typeOnlyCoercions, Map<NodeRef<Expression>,Type> sortKeyCoercionsForFrameBoundCalculation, Map<NodeRef<Expression>,Type> sortKeyCoercionsForFrameBoundComparison)
-
getSortKeyCoercionForFrameBoundCalculation
public Type getSortKeyCoercionForFrameBoundCalculation(Expression frameOffset)
-
getSortKeyCoercionForFrameBoundComparison
public Type getSortKeyCoercionForFrameBoundComparison(Expression frameOffset)
-
addFrameBoundCalculations
public void addFrameBoundCalculations(Map<NodeRef<Expression>,ResolvedFunction> frameBoundCalculations)
-
getFrameBoundCalculation
public ResolvedFunction getFrameBoundCalculation(Expression frameOffset)
-
getHaving
public Expression getHaving(QuerySpecification query)
-
setColumn
public void setColumn(Field field, ColumnHandle handle)
-
getColumn
public ColumnHandle getColumn(Field field)
-
getAnalyzeTarget
public Optional<TableHandle> getAnalyzeTarget()
-
setAnalyzeTarget
public void setAnalyzeTarget(TableHandle analyzeTarget)
-
setCreate
public void setCreate(Analysis.Create create)
-
getCreate
public Optional<Analysis.Create> getCreate()
-
setInsert
public void setInsert(Analysis.Insert insert)
-
getInsert
public Optional<Analysis.Insert> getInsert()
-
setUpdatedColumns
public void setUpdatedColumns(List<ColumnMetadata> updatedColumns)
-
getUpdatedColumns
public Optional<List<ColumnMetadata>> getUpdatedColumns()
-
setRefreshMaterializedView
public void setRefreshMaterializedView(Analysis.RefreshMaterializedViewAnalysis refreshMaterializedView)
-
getRefreshMaterializedView
public Optional<Analysis.RefreshMaterializedViewAnalysis> getRefreshMaterializedView()
-
isExpandableQuery
public boolean isExpandableQuery(Query query)
-
registerTableForView
public void registerTableForView(Table tableReference)
-
unregisterTableForView
public void unregisterTableForView()
-
hasTableInView
public boolean hasTableInView(Table tableReference)
-
setSampleRatio
public void setSampleRatio(SampledRelation relation, double ratio)
-
getSampleRatio
public double getSampleRatio(SampledRelation relation)
-
setGroupingOperations
public void setGroupingOperations(QuerySpecification querySpecification, List<GroupingOperation> groupingOperations)
-
getGroupingOperations
public List<GroupingOperation> getGroupingOperations(QuerySpecification querySpecification)
-
getParameters
public Map<NodeRef<Parameter>,Expression> getParameters()
-
isDescribe
public boolean isDescribe()
-
setJoinUsing
public void setJoinUsing(Join node, Analysis.JoinUsingAnalysis analysis)
-
getJoinUsing
public Analysis.JoinUsingAnalysis getJoinUsing(Join node)
-
setUnnest
public void setUnnest(Unnest node, Analysis.UnnestAnalysis analysis)
-
getUnnest
public Analysis.UnnestAnalysis getUnnest(Unnest node)
-
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)
-
addLabelDereferences
public void addLabelDereferences(Map<NodeRef<DereferenceExpression>,ExpressionAnalyzer.LabelPrefixedReference> dereferences)
-
getLabelDereference
public ExpressionAnalyzer.LabelPrefixedReference getLabelDereference(DereferenceExpression expression)
-
addPatternRecognitionFunctions
public void addPatternRecognitionFunctions(Set<NodeRef<FunctionCall>> functions)
-
isPatternRecognitionFunction
public boolean isPatternRecognitionFunction(FunctionCall functionCall)
-
setRange
public void setRange(RangeQuantifier quantifier, Analysis.Range range)
-
getRange
public Analysis.Range getRange(RangeQuantifier quantifier)
-
setUndefinedLabels
public void setUndefinedLabels(PatternRecognitionRelation relation, Set<String> labels)
-
getUndefinedLabels
public Set<String> getUndefinedLabels(PatternRecognitionRelation relation)
-
getTableColumnReferences
public Map<Analysis.AccessControlInfo,Map<QualifiedObjectName,Set<String>>> getTableColumnReferences()
-
markRedundantOrderBy
public void markRedundantOrderBy(OrderBy orderBy)
-
isOrderByRedundant
public boolean isOrderByRedundant(OrderBy orderBy)
-
hasRowFilter
public boolean hasRowFilter(QualifiedObjectName table, String identity)
-
registerTableForRowFiltering
public void registerTableForRowFiltering(QualifiedObjectName table, String identity)
-
unregisterTableForRowFiltering
public void unregisterTableForRowFiltering(QualifiedObjectName table, String identity)
-
addRowFilter
public void addRowFilter(Table table, Expression filter)
-
getRowFilters
public List<Expression> getRowFilters(Table node)
-
hasColumnMask
public boolean hasColumnMask(QualifiedObjectName table, String column, String identity)
-
registerTableForColumnMasking
public void registerTableForColumnMasking(QualifiedObjectName table, String column, String identity)
-
unregisterTableForColumnMasking
public void unregisterTableForColumnMasking(QualifiedObjectName table, String column, String identity)
-
addColumnMask
public void addColumnMask(Table table, String column, Expression mask)
-
getColumnMasks
public Map<String,List<Expression>> getColumnMasks(Table table)
-
getRoutines
public List<RoutineInfo> getRoutines()
-
addSourceColumns
public void addSourceColumns(Field field, Set<Analysis.SourceColumn> sourceColumn)
-
getSourceColumns
public Set<Analysis.SourceColumn> getSourceColumns(Field field)
-
addExpressionFields
public void addExpressionFields(Expression expression, Collection<Field> fields)
-
getExpressionSourceColumns
public Set<Analysis.SourceColumn> getExpressionSourceColumns(Expression expression)
-
setRowIdField
public void setRowIdField(Table table, FieldReference field)
-
getRowIdField
public FieldReference getRowIdField(Table table)
-
setImplicitFromScope
public void setImplicitFromScope(QuerySpecification node, Scope scope)
-
getImplicitFromScope
public Scope getImplicitFromScope(QuerySpecification node)
-
addPredicateCoercions
public void addPredicateCoercions(Map<NodeRef<Expression>,Analysis.PredicateCoercions> coercions)
-
getPredicateCoercions
public Analysis.PredicateCoercions getPredicateCoercions(Expression expression)
-
-