NOT? IN '(' query ')'
InSubquery takes the following to be created:
InSubquery is created when:
- InjectRuntimeFilter logical optimization is executed (and injectInSubqueryFilter)
AstBuilderis requested to withPredicate (for
NOT? IN '(' query ')'SQL predicate)
- PlanDynamicPruningFilters physical optimization is executed (with spark.sql.optimizer.dynamicPartitionPruning.enabled enabled)
RowLevelOperationRuntimeGroupFilteringlogical optimization is executed
InSubquery is an Unevaluable expression.
- Left-Semi Join unless it is a
NOT INthat becomes a Left-Anti Join (among the other less important cases)
InSubquery is resolved using the following logical analysis rules:
InSubquery is optimized using the following logical optimizations:
InSubquery is optimized using the following physical optimizations:
nodePatterns is part of the TreeNode abstraction.
nodePatterns is IN_SUBQUERY.