diff --git a/ql/src/test/queries/clientpositive/whroot_external1.q b/ql/src/test/queries/clientpositive/whroot_external1.q index e44c9b8f41..c3724a47d3 100644 --- a/ql/src/test/queries/clientpositive/whroot_external1.q +++ b/ql/src/test/queries/clientpositive/whroot_external1.q @@ -105,3 +105,10 @@ drop database wre1_db cascade; dfs -rmr -f hdfs:///tmp/wre1_ext2; dfs -rmr -f hdfs:///tmp/wre1_ext4; dfs -rmr -f hdfs:///tmp/whroot_ext; + +dfs -rmr -f hdfs:///tmp/test_dec_space; +dfs -mkdir -p hdfs:///tmp/test_dec_space; +dfs -copyFromLocal ../../data/files/test_dec_space.csv hdfs:///tmp/test_dec_space/; +create external table test_dec_space (id int, value decimal) ROW FORMAT DELIMITED + FIELDS TERMINATED BY ',' location 'hdfs:///tmp/test_dec_space'; +select * from test_dec_space; diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java b/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java index 8f1668e488..2ca023c5c1 100644 --- a/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java +++ b/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java @@ -70,7 +70,7 @@ public void init(ByteArrayRef bytes, int start, int length) { // Set the HiveDecimalWritable from bytes without converting to String first for // better performance. - data.setFromBytes(bytes.getData(), start, length); + data.setFromBytes(bytes.getData(), start, length, true); if (!data.isSet()) { isNull = true; } else { diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/lazydio/LazyDioHiveDecimal.java b/serde/src/java/org/apache/hadoop/hive/serde2/lazydio/LazyDioHiveDecimal.java index 00fe991975..08bbce0e47 100644 --- a/serde/src/java/org/apache/hadoop/hive/serde2/lazydio/LazyDioHiveDecimal.java +++ b/serde/src/java/org/apache/hadoop/hive/serde2/lazydio/LazyDioHiveDecimal.java @@ -46,6 +46,6 @@ public void init(ByteArrayRef bytes, int start, int length) { isNull = false; byte[] recv = new byte[length]; System.arraycopy(bytes.getData(), start, recv, 0, length); - data.setFromBytes(recv, 0, length); + data.setFromBytes(recv, 0, length, true); } }