Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
In some case Hive removes trailing zeros of constant decimal numbers
select cast(1.1 as decimal(22, 2))
1.1
In this case WritableConstantHiveDecimalObjectInspector is used and this object inspector takes it's wrapped HiveDecimal scale instead of the scale specified in the wrapped typeinfo:
this = {WritableConstantHiveDecimalObjectInspector@14415} value = {HiveDecimalWritable@14426} "1.1" typeInfo = {DecimalTypeInfo@14421} "decimal(22,2)"
However in case of an expression with an aggregate function WritableHiveDecimalObjectInspector is used
select cast(sum(1.1) as decimal(22, 2))
1.10
o = {HiveDecimalWritable@16633} "1.1" oi = {WritableHiveDecimalObjectInspector@16634} typeInfo = {DecimalTypeInfo@16640} "decimal(22,2)"
Casting the expressions to string
select cast(cast(1.1 as decimal(22, 2)) as string), cast(cast(sum(1.1) as decimal(22, 2)) as string) 1.1 1.10
Attachments
Issue Links
- is related to
-
HIVE-12063 Pad Decimal numbers with trailing zeros to the scale of the column
- Closed
- relates to
-
HIVE-24446 Materialized View plan alters explicit cast type in query
- Closed
- links to