[bugfix](catalog) replace Math.abs with bitwise AND to ensure non-negative ID generation#55183
Merged
dataroaring merged 3 commits intoapache:masterfrom Sep 4, 2025
Merged
Conversation
Contributor
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
Contributor
Author
|
run buildall |
Contributor
FE UT Coverage ReportIncrement line coverage |
Contributor
Author
|
run buildall |
TPC-H: Total hot run time: 35017 ms |
TPC-DS: Total hot run time: 185878 ms |
ClickBench: Total hot run time: 32.9 s |
Contributor
FE UT Coverage ReportIncrement line coverage |
Contributor
Author
|
run buildall |
TPC-H: Total hot run time: 33751 ms |
TPC-DS: Total hot run time: 184889 ms |
ClickBench: Total hot run time: 32.66 s |
Contributor
Author
|
run p0 |
Contributor
Author
|
run buildall |
TPC-H: Total hot run time: 34160 ms |
TPC-DS: Total hot run time: 186342 ms |
ClickBench: Total hot run time: 33.22 s |
Contributor
FE UT Coverage ReportIncrement line coverage |
208f220 to
ce9d05b
Compare
Contributor
Author
|
run buildall |
TPC-H: Total hot run time: 34296 ms |
TPC-DS: Total hot run time: 186925 ms |
ClickBench: Total hot run time: 32.96 s |
Contributor
Author
|
run buildall |
TPC-H: Total hot run time: 33704 ms |
TPC-DS: Total hot run time: 186757 ms |
ClickBench: Total hot run time: 32.85 s |
Contributor
Author
|
run buildall |
TPC-H: Total hot run time: 34362 ms |
TPC-DS: Total hot run time: 187442 ms |
morningman
approved these changes
Sep 1, 2025
Contributor
|
PR approved by at least one committer and no changes requested. |
Contributor
|
PR approved by anyone and no changes requested. |
Contributor
FE Regression Coverage ReportIncrement line coverage |
github-actions bot
pushed a commit
that referenced
this pull request
Sep 4, 2025
…ative ID generation (#55183) ### What problem does this PR solve? Problem Summary: `Replace Math.abs() with bitwise AND operation in genIdByName() method` problem: - Math.abs(Long.MIN_VALUE) returns Long.MIN_VALUE (still negative) due to overflow - This violates the requirement that external db/table IDs must be >= 0 - Could cause issues in DescriptorTable.toThrift() as mentioned in comments fix: - Use bitwise AND with Long.MAX_VALUE to clear the sign bit - Guarantees non-negative result in range [0, Long.MAX_VALUE] - Better performance than Math.abs() conditional check ### Release note None ### Check List (For Author) - Test <!-- At least one of them must be included. --> - [ ] Regression test - [ ] 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. - [ ] Previous test can cover this change. - [ ] No code files have been changed. - [ ] Other reason <!-- Add your reason? --> - Behavior changed: - [ ] No. - [ ] Yes. <!-- Explain the behavior change --> - Does this need documentation? - [ ] No. - [ ] Yes. <!-- Add document PR link here. eg: apache/doris-website#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 -->
github-actions bot
pushed a commit
that referenced
this pull request
Sep 4, 2025
…ative ID generation (#55183) ### What problem does this PR solve? Problem Summary: `Replace Math.abs() with bitwise AND operation in genIdByName() method` problem: - Math.abs(Long.MIN_VALUE) returns Long.MIN_VALUE (still negative) due to overflow - This violates the requirement that external db/table IDs must be >= 0 - Could cause issues in DescriptorTable.toThrift() as mentioned in comments fix: - Use bitwise AND with Long.MAX_VALUE to clear the sign bit - Guarantees non-negative result in range [0, Long.MAX_VALUE] - Better performance than Math.abs() conditional check ### Release note None ### Check List (For Author) - Test <!-- At least one of them must be included. --> - [ ] Regression test - [ ] 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. - [ ] Previous test can cover this change. - [ ] No code files have been changed. - [ ] Other reason <!-- Add your reason? --> - Behavior changed: - [ ] No. - [ ] Yes. <!-- Explain the behavior change --> - Does this need documentation? - [ ] No. - [ ] Yes. <!-- Add document PR link here. eg: apache/doris-website#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 -->
16 tasks
felixwluo
added a commit
to felixwluo/doris
that referenced
this pull request
Sep 5, 2025
…sure non-negative ID generation apache#55183
wenzhenghu
pushed a commit
to wenzhenghu/doris
that referenced
this pull request
Sep 8, 2025
…ative ID generation (apache#55183) ### What problem does this PR solve? Problem Summary: `Replace Math.abs() with bitwise AND operation in genIdByName() method` problem: - Math.abs(Long.MIN_VALUE) returns Long.MIN_VALUE (still negative) due to overflow - This violates the requirement that external db/table IDs must be >= 0 - Could cause issues in DescriptorTable.toThrift() as mentioned in comments fix: - Use bitwise AND with Long.MAX_VALUE to clear the sign bit - Guarantees non-negative result in range [0, Long.MAX_VALUE] - Better performance than Math.abs() conditional check ### Release note None ### Check List (For Author) - Test <!-- At least one of them must be included. --> - [ ] Regression test - [ ] 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. - [ ] Previous test can cover this change. - [ ] No code files have been changed. - [ ] Other reason <!-- Add your reason? --> - Behavior changed: - [ ] No. - [ ] Yes. <!-- Explain the behavior change --> - Does this need documentation? - [ ] No. - [ ] Yes. <!-- Add document PR link here. eg: apache/doris-website#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 -->
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What problem does this PR solve?
Problem Summary:
Replace Math.abs() with bitwise AND operation in genIdByName() methodproblem:
fix:
Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)