Gabriel39 commented on code in PR #67441:
URL: https://github.com/apache/doris/pull/67441#discussion_r3925385970
##########
be/src/exprs/vectorized_fn_call.cpp:
##########
@@ -683,12 +683,13 @@ bool
VectorizedFnCall::is_safe_to_execute_on_selected_rows() const {
"is_null_pred",
"is_not_null_pred",
"element_at",
-
"struct_element"};
+
"struct_element",
+
"array_contains"};
Review Comment:
Fixed in 214ba43510. The safe-prefix classification now mirrors the current
BE dispatch domain, including string compatibility, and keeps unsupported
complex element signatures unsafe. Added a regression for ARRAY<ARRAY<INT>>
with an ARRAY<INT> needle.
##########
be/src/format_v2/parquet/parquet_statistics.cpp:
##########
@@ -863,6 +863,31 @@ bool has_expr_zonemap_filter(const
format::FileScanRequest& request, const Runti
return has_variant_shredded_filter(request);
}
+bool can_evaluate_native_page_index(const VExprSPtr& expr) {
+ if (expr == nullptr || !expr->can_evaluate_zonemap_filter()) {
+ return false;
+ }
+ if (expr->op() == TExprOpcode::COMPOUND_AND) {
+ return std::ranges::any_of(expr->children(),
can_evaluate_native_page_index);
+ }
+ if (expr->op() == TExprOpcode::COMPOUND_OR) {
+ return !expr->children().empty() &&
+ std::ranges::all_of(expr->children(),
can_evaluate_native_page_index);
+ }
+ const auto probe =
expr_zonemap::extract_zonemap_filter_predicate_probe(expr);
+ return probe.has_value() && probe->path.empty();
Review Comment:
Fixed in 214ba43510. RuntimeFilterExpr is now unwrapped only in the Page
Index capability and path classifier; the original wrapper remains in the
request for delegated evaluation. Added a regression covering both production
admission and range pruning.
--
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]