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]

Reply via email to