QuakeWang opened a new pull request, #7980:
URL: https://github.com/apache/paimon/pull/7980
### Purpose
Daft predicate conversion used `None` to represent both unsupported
expressions and literal values. As a result, comparison pushdown could treat
unsupported expressions as literals, for example converting a cast expression
into `id = None`.
String predicates also called `str(...)` on visited arguments, so column or
unsupported arguments could be pushed as literal strings. This could mark
filters as pushed and remove them from Daft remaining filters, changing query
semantics.
This patch adds explicit internal markers for literals and unsupported
expressions. Predicates are only pushed when the non-column side is a real
scalar literal, and string predicates now require real string literals.
Unsupported or mixed expressions stay in Daft remaining filters.
### Tests
- `python -m pytest paimon-python/pypaimon/tests/daft/daft_data_test.py -k
'FilterPushdown'`
- `python -m pytest paimon-python/pypaimon/tests/daft/daft_data_test.py`
--
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]