2 ** 127 - 1 and -2 ** 127 both require a 39th digit to be displayed as a decimal string.
This means we do not have the ability to display decimal values above 10 ** 38 - 1 even though we have the ability to store them.
For reference, Impala returns NULL when trying to cast 2 ** 127 - 1 to DECIMAL(38, 0).
A few next steps are in order:
- Explicitly test this behavior
- Avoid crashing or displaying garbage when we cannot display a number that can be stored
- Make a decision about whether we want to eventually support range of values from 10 ** 38 to 2 ** 127 - 1 positive and -2 ** 127 to -10 ** 38 negative. This would require a larger integer type to hold the value just before being converted to a string.