CheckAnalysis — Analysis Validation¶
CheckAnalysis defines extendedCheckRules extension point for extra analysis check rules.
Only after analysis a logical query plan is correct and ready for execution.
isView( nameParts: Seq[String]): Boolean
extendedCheckRules Extension Point¶
extendedCheckRules: Seq[LogicalPlan => Unit] = Nil
CheckAnalysis allows implementations for extra analysis check rules using
extendedCheckRules extension point.
Used after the built-in check rules have been evaluated.
Checking Analysis Phase¶
checkAnalysis( plan: LogicalPlan): Unit
checkAnalysis traverses the operators from their children first (up the operator chain).
checkAnalysis skips analysis if the plan has already been analyzed.
unresolved operator [o.simpleString]
Logical Plan Analyzed¶
In the end,
checkAnalysis marks the entire logical plan as analyzed.
checkAnalysis is used when:
Analyzeris requested to executeAndCheck
- ResolveRelations logical resolution rule is executed (and resolveViews)
- ResolveAggregateFunctions logical resolution rule is executed
CheckAnalysisis requested to checkSubqueryExpression
- Catalyst DSL's analyze operator is used
ExpressionEncoderis requested to resolveAndBind
- RelationalGroupedDataset.as operator is used
checkShowPartitions( showPartitions: ShowPartitions): Unit
checkShowPartitions branches off based on the input
SHOW PARTITIONS cannot run for a table which does not support partitioning
SHOW PARTITIONS is not allowed on a table that is not partitioned: [name]