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]