morrySnow opened a new pull request, #61165:
URL: https://github.com/apache/doris/pull/61165
Replace toThrift(TExprNode) and normalize(Normalizer) methods in Expr and
all 39 subclasses with ExprToThriftVisitor and ExprNormalizeVisitor, following
the same visitor pattern used for toSql() in commit ac3ff9173d.
Key changes:
- Create ExprToThriftVisitor with 39 visitXxx methods + static
treeToThrift/treesToThrift utilities
- Create ExprNormalizeVisitor in planner.normalize package with custom
SlotRef/FunctionCallExpr handling
- Remove toThrift(), treeToThrift(), treesToThrift(), normalize(), opcode
field, getOpcode() from Expr.java
- Remove TExprOpcode from
ArithmeticExpr/BinaryPredicate/CompoundPredicate/MatchPredicate Operator enums
- Update ~60 call sites across planner, datasource, nereids, and qe packages
- Move SearchPredicate thrift helpers (buildThriftParam,
buildDslAstExplainLines) to visitor
- Update external getOpcode() callers to use BinaryPredicate.Operator
directly
- Add ExprToThriftBehaviorTest (18 tests) covering representative Expr types
After this change, Expr and its subclasses have zero dependencies on
org.apache.doris.planner.normalize.Normalizer and thrift types used solely for
serialization (TExprNode, TExprNodeType, TExprOpcode, etc).
### Release note
None
### Check List (For Author)
- Test <!-- At least one of them must be included. -->
- [ ] Regression test
- [x] Unit Test
- [ ] Manual test (add detailed scripts or steps below)
- [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
- [x] Previous test can cover this change.
- [ ] No code files have been changed.
- [ ] Other reason <!-- Add your reason? -->
- Behavior changed:
- [x] No.
- [ ] Yes. <!-- Explain the behavior change -->
- Does this need documentation?
- [x] No.
- [ ] Yes. <!-- Add document PR link here. eg:
https://github.com/apache/doris-website/pull/1214 -->
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR should
merge into -->
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]