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]

Reply via email to