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]