mihaibudiu commented on code in PR #4354:
URL: https://github.com/apache/calcite/pull/4354#discussion_r2070608120


##########
core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java:
##########
@@ -1227,6 +1227,16 @@ private void substituteSubQuery(Blackboard bb, SubQuery 
subQuery) {
         // Otherwise, let convertExists translate
         // values list into an inline table for the
         // reference to Q below.
+      } else if (query instanceof SqlSelect) {
+        // During JOIN ON condition processing, bb.root is
+        // initially null but subquery expansion requires
+        // a non-null bb.root. For IN/NOT IN subqueries
+        // processed via convertExists, we use the join's
+        // left input as bb.root. Exception: in UPDATE queries,
+        // bb.inputs remains null and subquery rewriting is skipped.
+        if (bb.inputs != null && bb.inputs.size() == 2) {

Review Comment:
   Frankly, I am not sure this fix is correct for all possible queries (because 
I don't really know how the blackboard works), but it is an improvement, since 
some correct queries which used to be rejected are now correctly compiled, so I 
will approve. 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to