thomasrebele commented on a change in pull request #2302:
URL: https://github.com/apache/calcite/pull/2302#discussion_r580220147



##########
File path: core/src/main/java/org/apache/calcite/sql2rel/RelDecorrelator.java
##########
@@ -429,7 +430,7 @@ protected RexNode removeCorrelationExpr(
         ImmutableSortedMap.of());
   }
 
-  public @Nullable Frame decorrelateRel(Sort rel) {
+  public @Nullable Frame decorrelateRel(Sort rel, boolean isCorVarDefined) {
     //

Review comment:
       Indeed, @rubenada's example needs to be taken care of if we would remove 
the isCorVarDefined. By passing it as an parameter we avoid such subtle 
problems. We could translate it to an attribute and wrap the code that changes 
the attribute in a try-finally block:
   
   ```
   boolean prevCorVarDefined = isCorVarDefined
   try {
       // ...
   }
   finally {
       isCorVarDefined = prevCorVarDefined;
   }
   ```
   I'm slightly leaning towards using a parameter, which looks a bit cleaner to 
me. Does anyone have another suggestions how to handle this variable?




----------------------------------------------------------------
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.

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


Reply via email to