github-actions[bot] commented on code in PR #65857:
URL: https://github.com/apache/doris/pull/65857#discussion_r3624338510
##########
be/src/exec/runtime_filter/runtime_filter_partition_pruner.cpp:
##########
@@ -501,20 +501,35 @@ Status
ParsedPartitionBoundaries::get_or_compute_projected_boundaries(
ColumnPtr lo_result_col;
ColumnPtr hi_result_col;
ColumnPtr list_result_col;
+ bool projection_invalid = false;
+ auto execute_target_expr = [&](Block* block, int* result_id, ColumnPtr*
result_column) {
+ Status status = target_expr->execute(ctx, block, result_id);
+ if (status.is<ErrorCode::INVALID_ARGUMENT>()) {
Review Comment:
[P1] Handle non-`INVALID_ARGUMENT` domain failures
This only disables pruning for `INVALID_ARGUMENT`, but eligible target
functions can reject a boundary with other user-data status codes. For example,
an INT LIST target `from_days(f.part_key)` passes scan pushdown and this
classifier (`FromDays` is deterministic/monotonic and not
`NoneMovableFunction`). In a plan where `WHERE f.keep_row = 1` removes the sole
`part_key = 2147483647` row before the join, ordinary execution never evaluates
that value; boundary projection still calls `from_days(2147483647)`, which
throws `OUT_OF_BOUND`, and lines 511-512 fail the query. Thus enabling this
optional pruning can still introduce the same error this PR is meant to
prevent. Please distinguish data-domain rejection from genuine engine/metadata
failure (including `OUT_OF_BOUND`) and add a non-`INVALID_ARGUMENT` 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]