[release/10.0] Fix UInt128 to double conversion for values >= 2^104 #122686
+52
−2
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.
Backport of #122534 to release/10.0
/cc @tannergooding @sdcb
Customer Impact
#122203 - Customers attempting to convert a
UInt128to a double may see incorrect results for values in the range[2^88, 2^104).Regression
Not a regression,
UInt128was checked in with this bug which was a simple logic error.Testing
Explicit tests and validation covering the scenario were added.
Risk
Low. This is a lesser used type and the bug was a case where a path was covering a lesser range than intended. This was due to it shifting by
24(64 - 40 == 24) when it should've been shifting by40instead (64 - 24 == 40).