Skip to content

branch-4.2: [fix](rbo) Preserve semantics in predicate inference #67919 - #70080

Merged
yiguolei merged 1 commit into
apache:branch-4.2from
morrySnow:codex/branch-4.2-pick-67919
Nov 4, 2026
Merged

yiguolei merged 1 commit into
apache:branch-4.2from
morrySnow:codex/branch-4.2-pick-67919

Conversation

@morrySnow

Copy link
Copy Markdown
Contributor

picked from master #67919

@morrySnow

Copy link
Copy Markdown
Contributor Author

run buildall

@morrySnow
morrySnow requested a review from yiguolei as a code owner November 3, 2026 08:27
@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

### What problem does this PR solve?

Related PR: apache#67919

Problem Summary: 不等式关系被误记为等式,且等值替换跨越不保值的类型或表示

Backport adaptation: Preserve existing index-dependent MATCH/multi_match/SEARCH exclusions and date-arithmetic pushdown protection while adding non-movable expression guards and injective cast checks. Keep all branch tests alongside the upstream test additions. Include only the common ExpressionTrait non-movable/volatile predicate helper from prerequisite apache#67067; retain its type-bitset fast path and conditional volatile semantics.

Rebase adjustment: Rebase onto branch-4.2 after apache#67653 merged. Keep the generalized isInjectiveCastTo check, which includes DATETIMEV2 precision-loss rejection, and preserve the merged precision regression tests.

### Release note

不等式关系被误记为等式,且等值替换跨越不保值的类型或表示

### Check List (For Author)

- Test: Unit Test — org.apache.doris.nereids.rules.rewrite.InferPredicateByReplaceTest,org.apache.doris.nereids.rules.rewrite.UnequalPredicateInferTest,org.apache.doris.nereids.types.DataTypeTest,org.apache.doris.nereids.util.ExpressionUtilsTraversalTest,org.apache.doris.nereids.util.ExpressionUtilsTest; FE Checkstyle passed. Cluster regression tests were not run for this commit.
- Behavior changed: Yes, fixes the behavior described above.
- Does this need documentation: No

(cherry picked from commit 5f107ef)
@morrySnow

Copy link
Copy Markdown
Contributor Author

run buildall

@morrySnow
morrySnow force-pushed the codex/branch-4.2-pick-67919 branch from e6898b1 to 92639e4 Compare November 3, 2026 12:12
@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 71.43% (30/42) 🎉
Increment coverage report
Complete coverage report

@yiguolei
yiguolei merged commit 3958e48 into apache:branch-4.2 Nov 4, 2026
27 of 29 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants