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
-
-
-
Method Detail
-
getStatement
public Statement getStatement()
-
getUpdateType
public String getUpdateType()
-
setUpdateType
public void setUpdateType(String updateType)
-
setUpdateTarget
public void setUpdateTarget(QualifiedObjectName targetName, Optional<Table> targetTable, Optional<List<OutputColumn>> targetColumns)
-
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(Node node, Analysis.ResolvedWindow window)
-
getWindow
public Analysis.ResolvedWindow getWindow(Node node)
-
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)
-
setWindowMeasures
public void setWindowMeasures(QuerySpecification node, List<WindowOperation> measures)
-
getWindowMeasures
public List<WindowOperation> getWindowMeasures(QuerySpecification node)
-
setOrderByWindowMeasures
public void setOrderByWindowMeasures(OrderBy node, List<WindowOperation> measures)
-
getOrderByWindowMeasures
public List<WindowOperation> getOrderByWindowMeasures(OrderBy node)
-
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, 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<ColumnSchema> updatedColumns)
-
getUpdatedColumns
public Optional<List<ColumnSchema>> getUpdatedColumns()
-
setRefreshMaterializedView
public void setRefreshMaterializedView(Analysis.RefreshMaterializedViewAnalysis refreshMaterializedView)
-
getRefreshMaterializedView
public Optional<Analysis.RefreshMaterializedViewAnalysis> getRefreshMaterializedView()
-
setDelegatedRefreshMaterializedView
public void setDelegatedRefreshMaterializedView(QualifiedObjectName viewName)
-
getDelegatedRefreshMaterializedView
public Optional<QualifiedObjectName> getDelegatedRefreshMaterializedView()
-
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()
-
getQueryType
public QueryType getQueryType()
-
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)
-
setRanges
public void setRanges(Map<NodeRef<RangeQuantifier>,Analysis.Range> quantifierRanges)
-
getRange
public Analysis.Range getRange(RangeQuantifier quantifier)
-
setUndefinedLabels
public void setUndefinedLabels(RowPattern pattern, Set<String> labels)
-
setUndefinedLabels
public void setUndefinedLabels(Map<NodeRef<RowPattern>,Set<String>> labels)
-
getUndefinedLabels
public Set<String> getUndefinedLabels(RowPattern pattern)
-
setMeasureDefinitions
public void setMeasureDefinitions(Map<NodeRef<WindowOperation>,MeasureDefinition> definitions)
-
getMeasureDefinition
public MeasureDefinition getMeasureDefinition(WindowOperation measure)
-
setPatternAggregations
public void setPatternAggregations(Set<NodeRef<FunctionCall>> aggregations)
-
isPatternAggregation
public boolean isPatternAggregation(FunctionCall function)
-
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)
-
setTableExecuteHandle
public void setTableExecuteHandle(TableExecuteHandle tableExecuteHandle)
-
getTableExecuteHandle
public Optional<TableExecuteHandle> getTableExecuteHandle()
-
-