github-actions[bot] commented on code in PR #65857:
URL: https://github.com/apache/doris/pull/65857#discussion_r3629954425
##########
fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/RuntimeFilterPartitionPruneClassifier.java:
##########
@@ -79,6 +80,9 @@ static Classification classify(TRuntimeFilterType filterType,
Expr targetExpr,
if (hasUnsupportedAutomaticPartitionExpression(partitionInfo)) {
return Classification.unsupported("automatic partition expression
boundary is not modeled");
}
+ if (nereidsTargetExpr.containsType(NoneMovableFunction.class)) {
Review Comment:
[P1] Reject side-effecting targets, not only NoneMovableFunction
This still accepts `sleep(f.part_key)`: `Sleep` is deterministic by default
and does not implement `NoneMovableFunction`. For a LIST table with nonempty
partitions at 0 and 3600, where the 3600 row is removed by `WHERE keep_row =
1`, ordinary execution evaluates only `sleep(0)`. Partition pruning
nevertheless serializes both selected boundaries and BE executes the target on
both values, adding an hour-long sleep before scanning. This is distinct from
the existing domain-error thread because execution succeeds but introduces a
side effect. Please require a positive total/side-effect-free eligibility
contract (or at least mark/reject `sleep`) and add a filtered-out LIST-boundary
regression.
--
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]