danny0405 commented on code in PR #8101: URL: https://github.com/apache/hudi/pull/8101#discussion_r1136491610
########## hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/source/ExpressionEvaluators.java: ########## @@ -156,12 +156,20 @@ public static Evaluator fromExpression(CallExpression expr) { public interface Evaluator extends Serializable { /** - * Decides whether it's possible to match based on the column stats. + * Evaluates whether it's possible to match based on the column stats. * * @param columnStatsMap column statistics - * @return + * @return false if it's not possible to match, true otherwise. */ boolean eval(Map<String, ColumnStats> columnStatsMap); + + /** + * Evaluates whether it matches based on the column values. + * + * @param columnValues column values + * @return true if it's matches, false otherwise. + */ + boolean eval(Object[] columnValues); } Review Comment: Not sure whether I got your idea, for a expression `Evaluator`, we firstly bind the field reference to it, that means you can then fetch the field value from the reference index and the given rows, for partition pruning, things are a little different because in on partition, all the data files may share the same partition path values, but the partition values should be also included in the data row, so you can still do the similar filteiring just like we do to data skipping. -- 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: commits-unsubscr...@hudi.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org