[BugFix] If the operator is AND, return the predicates that are not null for paimon
Why I'm doing:
For the following predicate: f0 = 44 and (case when f0 = 44 then f1 else f2) = 33, Paimon cannot parse the predicate (case when f0 = 44 then f1 else f2) = 33, and the predicate conversion returns null. Normally, the predicate f0 = 44 should be retained.
What I'm doing:
Fixes #issue
What type of PR is this:
- [x] BugFix
- [ ] Feature
- [ ] Enhancement
- [ ] Refactor
- [ ] UT
- [ ] Doc
- [ ] Tool
Does this PR entail a change in behavior?
- [] Yes, this PR will result in a change in behavior.
- [x] No, this PR will not result in a change in behavior.
If yes, please specify the type of change:
- [ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
- [ ] Parameter changes: default values, similar parameters but with different default values
- [ ] Policy changes: use new policy to replace old one, functionality automatically enabled
- [ ] Feature removed
- [ ] Miscellaneous: upgrade & downgrade compatibility, etc.
Checklist:
- [x] I have added test cases for my bug fix or my new feature
- [ ] This pr needs user documentation (for new or modified features or behaviors)
- [ ] I have added documentation for my new feature or new function
- [ ] This is a backport pr
Bugfix cherry-pick branch check:
- [x] I have checked the version labels which the pr will be auto-backported to the target branch
- [x] 4.0
- [x] 3.5
- [x] 3.4
- [x] 3.3
[!NOTE] Introduce context-aware predicate conversion that retains valid AND branches and correctly handles NOT; add targeted tests.
- Paimon predicate conversion:
- Introduce
PaimonPredicateContextto carry parentCompoundPredicateOperator.- Update
PaimonPredicateConverterto accept/use context and propagate it to children.- For
AND, return the non-null side when the other side is non-convertible.- Under parent
NOT, returnnullwhen a child is non-convertible; continue to ignoreNOT LIKE.- Tests:
- Add
testOrWithFunctioncoveringOR/ANDcombinations with non-convertible functions andNOTbehavior.Written by Cursor Bugbot for commit 008fbcd52d57c51c5f87bede331fd42b19e2dffa. This will update automatically on new commits. Configure here.
@cursor review
@cursor review
🧪 CI Insights
Here's what we observed from your CI run for 008fbcd5.
🟢 All jobs passed!
But CI Insights is watching 👀
[Java-Extensions Incremental Coverage Report]
:white_check_mark: pass : 0 / 0 (0%)
[FE Incremental Coverage Report]
:x: fail : 11 / 14 (78.57%)
file detail
| path | covered_line | new_line | coverage | not_covered_line_detail | |
|---|---|---|---|---|---|
| :large_blue_circle: | com/starrocks/connector/paimon/PaimonPredicateConverter.java | 11 | 14 | 78.57% | [70, 119, 209] |
[BE Incremental Coverage Report]
:white_check_mark: pass : 0 / 0 (0%)
@cursor review