github-actions[bot] commented on code in PR #67919:
URL: https://github.com/apache/doris/pull/67919#discussion_r4043661725


##########
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ToBitmapWithCheck.java:
##########
@@ -37,7 +38,7 @@
  * ScalarFunction 'to_bitmap_with_check'. This class is generated by 
GenerateFunction.
  */
 public class ToBitmapWithCheck extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
AlwaysNotNullable {
+        implements UnaryExpression, ExplicitlyCastableSignature, 
AlwaysNotNullable, NoneMovableFunction {

Review Comment:
   [P1] Honor the non-movable contract in set-operation predicate cloning
   
   The equality-replacement path now rejects `NoneMovableFunction`, but 
`InferPredicates.visitLogicalExcept` and `visitLogicalIntersect` directly 
substitute a pulled-up predicate onto sibling inputs and call 
`inferNewPredicate`, which only rejects volatile expressions. For example:
   
   ```text
   ExceptDistinct(output=x)
     Project(a AS x)
       Filter(bitmap_count(to_bitmap_with_check(a)) > 0)
         L(a={1})
     Project(b AS x)
       R(b={-1,1})
   ```
   
   Inference installs the filter on `b` and raises on the sibling-only `-1`; 
the original plan evaluates the function only on `a=1` and returns an empty 
EXCEPT result. This path contains no equality and never reaches the new gate, 
so it is distinct from thread `4043491356`. Please honor the marker in 
`inferNewPredicate`, audit `inferNewPredicateRemoveUselessIsNull` under the 
same contract, and add EXCEPT/INTERSECT negative-sibling regressions.



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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to