Github user hvanhovell commented on a diff in the pull request:
https://github.com/apache/spark/pull/16954#discussion_r103406494
--- Diff:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala
---
@@ -1398,42 +1399,46 @@ class Analyzer(
}
} while (!current.resolved && !current.fastEquals(previous))
- // Step 2: Pull out the predicates if the plan is resolved.
+ // Step 2: pull the outer references and record them as children of
SubqueryExpression
if (current.resolved) {
// Make sure the resolved query has the required number of output
columns. This is only
// needed for Scalar and IN subqueries.
if (requiredColumns > 0 && requiredColumns != current.output.size)
{
failAnalysis(s"The number of columns in the subquery
(${current.output.size}) " +
s"does not match the required number of columns
($requiredColumns)")
}
- // Pullout predicates and construct a new plan.
- f.tupled(rewriteSubQuery(current, plans))
+ // Validate the outer reference and record the outer references as
children of
+ // subquery expression.
+ f.tupled(current, checkAndGetOuterReferences(current))
--- End diff --
I think we can. The reason I used `f.tupled` was because
`rewriteSubQuery(..)` returned a tuple.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]