Package io.prestosql.sql.analyzer
Class Analysis
- java.lang.Object
-
- io.prestosql.sql.analyzer.Analysis
-
public class Analysis extends Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Analysis.AccessControlInfo
static class
Analysis.Create
static class
Analysis.GroupingSetAnalysis
static class
Analysis.Insert
static class
Analysis.JoinUsingAnalysis
static class
Analysis.RefreshMaterializedViewAnalysis
static class
Analysis.SelectExpression
static class
Analysis.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)
-
resetUpdateType
public void resetUpdateType()
-
isDeleteTarget
public boolean isDeleteTarget(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)
-
getInPredicateSubqueries
public List<InPredicate> getInPredicateSubqueries(Node node)
-
getScalarSubqueries
public List<SubqueryExpression> getScalarSubqueries(Node node)
-
getExistsSubqueries
public List<ExistsPredicate> getExistsSubqueries(Node node)
-
getQuantifiedComparisonSubqueries
public List<QuantifiedComparisonExpression> getQuantifiedComparisonSubqueries(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)
-
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()
-
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)
-
addReferencedFields
public void addReferencedFields(com.google.common.collect.Multimap<NodeRef<Node>,Field> references)
-
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()
-
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)
-
-