diff --git serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantByteObjectInspector.java serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantByteObjectInspector.java index 7931021..3214e11 100644 --- serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantByteObjectInspector.java +++ serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantByteObjectInspector.java @@ -48,6 +48,9 @@ public ByteWritable getWritableConstantValue() { @Override public int precision() { + if (value == null) { + return super.precision(); + } return BigDecimal.valueOf(value.get()).precision(); } diff --git serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java index 5e3ad62..b87d1f8 100644 --- serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java +++ serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java @@ -58,11 +58,17 @@ public HiveDecimalWritable getWritableConstantValue() { @Override public int precision() { + if (value == null) { + return super.precision(); + } return value.getHiveDecimal().precision(); } @Override public int scale() { + if (value == null) { + return super.scale(); + } return value.getHiveDecimal().scale(); } diff --git serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantIntObjectInspector.java serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantIntObjectInspector.java index 18389a9..0a24c2c 100644 --- serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantIntObjectInspector.java +++ serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantIntObjectInspector.java @@ -48,6 +48,9 @@ public IntWritable getWritableConstantValue() { @Override public int precision() { + if (value == null) { + return super.precision(); + } return BigDecimal.valueOf(value.get()).precision(); } diff --git serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantLongObjectInspector.java serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantLongObjectInspector.java index 52f8a26..1973d48 100644 --- serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantLongObjectInspector.java +++ serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantLongObjectInspector.java @@ -48,6 +48,9 @@ public LongWritable getWritableConstantValue() { @Override public int precision() { + if (value == null) { + return super.precision(); + } return BigDecimal.valueOf(value.get()).precision(); } diff --git serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantShortObjectInspector.java serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantShortObjectInspector.java index 85e4f1d..2f7479a 100644 --- serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantShortObjectInspector.java +++ serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantShortObjectInspector.java @@ -48,6 +48,9 @@ public ShortWritable getWritableConstantValue() { @Override public int precision() { + if (value == null) { + return super.precision(); + } return BigDecimal.valueOf(value.get()).precision(); }