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


##########
core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java:
##########
@@ -1528,7 +1528,9 @@ private void handleOffsetFetch(@Nullable SqlNode offset, 
@Nullable SqlNode fetch
           ((SqlBasicCall) call).setOperator(overloads.get(0));
         }
       }
-      if (config.callRewrite()) {
+      if (config.callRewrite()
+          // Do not rewrite calls that contain subqueries
+          && !SqlUtil.containsCall(call, c -> c.getKind() == SqlKind.SELECT)) {

Review Comment:
   it only affects functions which have an expansion.
   I didn't check how many such functions there are, but I assumed that the 
COALESCE-equivalent ones are the only ones.
   In general it sounds like a reasonable policy to avoid rewrites that involve 
subqueries, no matter what the rewrites are, since they won't necessarily 
preserve semantics when they involve subqueries.



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