jackylee-ch opened a new pull request, #886:
URL: https://github.com/apache/paimon-rust/pull/886
**Defect.** `from_predicate` recognised only `And` plus `Eq`/`In`/`IsNull`
leaves; everything else fell through `_ => {}`, discarded. With every field
covered it built a `PartitionSet`, and `matches_entry` is then pure `HashSet`
membership — the predicate is never read again. A partition-only filter is
`Exact`, so DataFusion drops its residual: `WHERE dt='2024-01-01' AND
dt>='2024-01-02'` returned 1 row, not 0.
**Fix.** `collect_eq_candidates` reports whether it consumed the whole tree;
`from_predicate` keeps the predicate when it did not. A second conjunct on an
already-pinned field also bails: the old code overwrote it, keeping whichever
came last — possibly the wider one.
**Cost.** The fallback pays `from_serialized_bytes` + `eval_row` per entry
instead of a hash lookup, and an `In` leaf loses its min/max bound
(`stats_filter.rs:73`). Only on shapes answered wrongly before.
--
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]