github-actions[bot] commented on code in PR #65175:
URL: https://github.com/apache/doris/pull/65175#discussion_r3522993081
##########
be/src/exprs/function/function.h:
##########
@@ -236,6 +237,20 @@ class IFunctionBase {
virtual bool can_evaluate_zonemap_filter(const VExprSPtrs&
/*function_arguments*/) const {
return false;
}
+
+ virtual ZoneMapFilterResult evaluate_dictionary_filter(
+ const DictionaryEvalContext& ctx, const VExprSPtrs&
function_arguments) const;
+
Review Comment:
`VectorizedFnCall` now delegates dictionary/Bloom pruning to its
`FunctionBasePtr`, but ordinary comparison functions are wrapped in
`DefaultFunction`. That wrapper still only forwards the zonemap methods to the
underlying `IFunction`, so `eq` reaches the base
`IFunctionBase::can_evaluate_dictionary_filter()` /
`can_evaluate_bloom_filter()` defaults here and returns false instead of
calling the new `FunctionComparison` overrides. The direct unit tests
instantiate `FunctionComparison` itself, so they miss the production
`SimpleFunctionFactory -> DefaultFunction -> VectorizedFnCall` path. Please
forward the dictionary and Bloom hooks from `DefaultFunction` as well;
otherwise real Parquet VExpr equality predicates lose the dictionary/Bloom
pruning path removed from the old ColumnPredicate flow.
--
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]