Description
Currently Hive blindly removes trailing zeros of a decimal input number as sort of standardization. This is questionable in theory and problematic in practice.
1. In decimal context, number 3.140000 has a different semantic meaning from number 3.14. Removing trailing zeroes makes the meaning lost.
2. In a extreme case, 0.0 has (p, s) as (1, 1). Hive removes trailing zeros, and then the number becomes 0, which has (p, s) of (1, 0). Thus, for a decimal column of (1,1), input such as 0.0, 0.00, and so on becomes NULL because the column doesn't allow a decimal number with integer part.
Therefore, I propose Hive preserve the trailing zeroes (up to what the scale allows). With this, in above example, 0.0, 0.00, and 0.0000 will be represented as 0.0 (precision=1, scale=1) internally.
Attachments
Attachments
Issue Links
- breaks
-
HIVE-8541 Decimal values contains extra trailing zeros when vectorization is on
- Resolved
- is related to
-
HIVE-12063 Pad Decimal numbers with trailing zeros to the scale of the column
- Closed
- relates to
-
HIVE-8745 Joins on decimal keys return different results whether they are run as reduce join or map join
- Closed
- links to