CalvinKirs opened a new pull request, #68821:
URL: https://github.com/apache/doris/pull/68821

   ### What problem does this PR solve?
   
   Issue Number: N/A
   
   Problem Summary:
   
   `TSchemaTableName` assigns different meanings to the same wire IDs on master 
and the maintained release branches. Master sends `13` for 
`DATABASE_PROPERTIES` and `14` for `AUTHENTICATION_INTEGRATIONS`, while 
branch-4.1 and branch-4.2 interpret them as `AUTHENTICATION_INTEGRATIONS` and 
`ROLE_MAPPINGS`. Since Thrift serializes enums as integers, these requests can 
silently dispatch to the wrong information_schema table.
   
   Align master with the release branches by assigning 
`AUTHENTICATION_INTEGRATIONS = 13` and `ROLE_MAPPINGS = 14`. Move 
`DATABASE_PROPERTIES` to `17`, which is unused on both branches. Keep every 
other master ID unchanged. Add Binary and Compact protocol tests that verify 
numeric request decoding and encoding for the complete enum.
   
   Latest remote definitions verified:
   
   | Member / range | branch-4.1 | branch-4.2 | Fixed master |
   | --- | --- | --- | --- |
   | Existing members 1–12 | 1–12 | 1–12 | 1–12 |
   | AUTHENTICATION_INTEGRATIONS | 13 | 13 | 13 |
   | ROLE_MAPPINGS | 14 | 14 | 14 |
   | TABLE_STREAMS | Absent | Absent | 15 |
   | TABLE_STREAM_CONSUMPTION | Absent | Absent | 16 |
   | DATABASE_PROPERTIES | Absent | Absent | 17 |
   | EXTENSIONS | Absent | 18 | 18 |
   | Remaining master members | Absent | Absent | 19–22 |
   
   branch-4.1 uses IDs 1–14. branch-4.2 uses IDs 1–14 and 18, leaving 15–17 
unused. Neither branch requires a change.
   
   ### Release note
   
   Align information_schema request IDs with branch-4.1 and branch-4.2. 
Upgrading an uncorrected master build requires coordinated FE/BE updates 
because its conflicting enum values have changed.
   
   ### Check List (For Author)
   
   - Test
       - [ ] Regression test
       - [ ] Unit Test
       - [x] Manual test
   
   Validation performed:
   - Compared every enum member against `rich/branch-4.0`, `rich/branch-4.1` 
and `rich/branch-4.2`; all shared IDs match. Confirmed ID 17 and 
DATABASE_PROPERTIES are absent on branch-4.1/branch-4.2.
   - `bash generated-source.sh` passed; the generated C++ enum matches the 
corrected IDL.
   - `cd fe && mvn -pl fe-thrift validate` passed with zero Checkstyle 
violations.
   - `git diff --check` passed.
   - Added `SchemaTableNameWireCompatibilityTest`. Attempted `bash run-fe-ut.sh 
--run org.apache.doris.common.SchemaTableNameWireCompatibilityTest`; execution 
was blocked by the installed Thrift compiler version (0.16.0, while the module 
requires 0.24.0). The expected DATABASE_PROPERTIES ID was subsequently updated 
to 17; unit tests have not executed.
   
   - Behavior changed:
       - [ ] No.
       - [x] Yes. Correct schema table dispatch across maintained branches.
   
   - Does this need documentation?
       - [x] No.
       - [ ] Yes.
   
   ### Check List (For Reviewer who merge this PR)
   
   - [ ] Confirm the release note
   - [ ] Confirm test cases
   - [ ] Confirm document
   - [ ] Add branch pick label
   


-- 
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