This is an automated email from the ASF dual-hosted git repository.

ayushsaxena pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new 3ddcdf4a022 HIVE-29557: Parquet Vectorization reads NULL values in 
Arrays and Map as Default Values (#6419)
3ddcdf4a022 is described below

commit 3ddcdf4a0221127278e258c74fcd96159c3cb41e
Author: Ayush Saxena <[email protected]>
AuthorDate: Tue Apr 14 12:03:03 2026 +0530

    HIVE-29557: Parquet Vectorization reads NULL values in Arrays and Map as 
Default Values (#6419)
---
 .../parquet/vector/VectorizedListColumnReader.java |   6 +
 .../parquet/vector/VectorizedMapColumnReader.java  |   1 +
 .../parquet_array_with_null_vectorization.q        |  67 ++++++
 .../parquet_array_with_null_vectorization.q.out    | 238 +++++++++++++++++++++
 .../llap/parquet_map_null_vectorization.q.out      |  26 +--
 5 files changed, 325 insertions(+), 13 deletions(-)

diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/vector/VectorizedListColumnReader.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/vector/VectorizedListColumnReader.java
index 4ca363f75e7..182aa861373 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/vector/VectorizedListColumnReader.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/vector/VectorizedListColumnReader.java
@@ -272,6 +272,7 @@ private void 
fillColumnVector(PrimitiveObjectInspector.PrimitiveCategory categor
       for (int i = 0; i < valueList.size(); i++) {
         if (valueList.get(i) == null) {
           lcv.child.isNull[i] = true;
+          lcv.child.noNulls = false;
         } else {
           ((LongColumnVector) lcv.child).vector[i] = ((List<Integer>) 
valueList).get(i);
         }
@@ -287,6 +288,7 @@ private void 
fillColumnVector(PrimitiveObjectInspector.PrimitiveCategory categor
       for (int i = 0; i < valueList.size(); i++) {
         if (valueList.get(i) == null) {
           lcv.child.isNull[i] = true;
+          lcv.child.noNulls = false;
         } else {
           ((LongColumnVector) lcv.child).vector[i] = ((List<Long>) 
valueList).get(i);
         }
@@ -297,6 +299,7 @@ private void 
fillColumnVector(PrimitiveObjectInspector.PrimitiveCategory categor
       for (int i = 0; i < valueList.size(); i++) {
         if (valueList.get(i) == null) {
           lcv.child.isNull[i] = true;
+          lcv.child.noNulls = false;
         } else {
           ((DoubleColumnVector) lcv.child).vector[i] = ((List<Double>) 
valueList).get(i);
         }
@@ -313,6 +316,7 @@ private void 
fillColumnVector(PrimitiveObjectInspector.PrimitiveCategory categor
         if (src == null) {
           ((BytesColumnVector) lcv.child).setRef(i, src, 0, 0);
           lcv.child.isNull[i] = true;
+          lcv.child.noNulls = false;
         } else {
           ((BytesColumnVector) lcv.child).setRef(i, src, 0, src.length);
         }
@@ -323,6 +327,7 @@ private void 
fillColumnVector(PrimitiveObjectInspector.PrimitiveCategory categor
       for (int i = 0; i < valueList.size(); i++) {
         if (valueList.get(i) == null) {
           lcv.child.isNull[i] = true;
+          lcv.child.noNulls = false;
         } else {
           ((DoubleColumnVector) lcv.child).vector[i] = ((List<Float>) 
valueList).get(i);
         }
@@ -337,6 +342,7 @@ private void 
fillColumnVector(PrimitiveObjectInspector.PrimitiveCategory categor
       for (int i = 0; i < valueList.size(); i++) {
         if (valueList.get(i) == null) {
           lcv.child.isNull[i] = true;
+          lcv.child.noNulls = false;
         } else {
           ((DecimalColumnVector) lcv.child).vector[i].set(((List<byte[]>) 
valueList).get(i), scale);
         }
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/vector/VectorizedMapColumnReader.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/vector/VectorizedMapColumnReader.java
index cbfa0a0bbd4..c61ec037932 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/vector/VectorizedMapColumnReader.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/vector/VectorizedMapColumnReader.java
@@ -65,5 +65,6 @@ public void readBatch(int total, ColumnVector column, 
TypeInfo columnType) throw
     mapColumnVector.childCount = keyListColumnVector.childCount;
     mapColumnVector.isRepeating = keyListColumnVector.isRepeating
         && valueListColumnVector.isRepeating;
+    mapColumnVector.noNulls = keyListColumnVector.noNulls && 
valueListColumnVector.noNulls;
   }
 }
diff --git 
a/ql/src/test/queries/clientpositive/parquet_array_with_null_vectorization.q 
b/ql/src/test/queries/clientpositive/parquet_array_with_null_vectorization.q
new file mode 100644
index 00000000000..f501cbbf01c
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/parquet_array_with_null_vectorization.q
@@ -0,0 +1,67 @@
+-- SORT_QUERY_RESULTS
+SET hive.vectorized.execution.enabled=true;
+set hive.vectorized.execution.reduce.enabled=true;
+SET hive.fetch.task.conversion=none;
+
+CREATE TABLE test_parquet_array_nulls_bool (
+    id INT,
+    arr_prim ARRAY<BOOLEAN>
+) STORED AS PARQUET;
+
+INSERT INTO test_parquet_array_nulls_bool VALUES
+    (1, array(CAST(NULL AS BOOLEAN), CAST(NULL AS BOOLEAN))),
+    (2, if(1=0, array(true, false), null)),
+    (3, array(true, CAST(NULL AS BOOLEAN))),
+    (4, array(true, false));
+
+SELECT * FROM test_parquet_array_nulls_bool;
+
+CREATE TABLE test_parquet_array_nulls_double (
+    id INT,
+    arr_prim ARRAY<DOUBLE>
+) STORED AS PARQUET;
+
+INSERT INTO test_parquet_array_nulls_double
+SELECT 1, array(CAST(NULL AS DOUBLE), CAST(NULL AS DOUBLE))
+UNION ALL
+SELECT 2, CAST(NULL AS ARRAY<DOUBLE>)
+UNION ALL
+SELECT 3, array(CAST(3.3 AS DOUBLE), CAST(NULL AS DOUBLE))
+UNION ALL
+SELECT 4, array(CAST(4.4 AS DOUBLE), CAST(5.5 AS DOUBLE));
+
+SELECT * FROM test_parquet_array_nulls_double;
+
+CREATE TABLE test_parquet_array_nulls_varchar (
+    id INT,
+    arr_prim ARRAY<VARCHAR(20)>
+) STORED AS PARQUET;
+
+INSERT INTO test_parquet_array_nulls_varchar
+SELECT 1, array(CAST(NULL AS VARCHAR(20)), CAST(NULL AS VARCHAR(20)));
+INSERT INTO test_parquet_array_nulls_varchar
+SELECT 2, CAST(NULL AS ARRAY<VARCHAR(20)>);
+
+SELECT * FROM test_parquet_array_nulls_varchar;
+
+CREATE TABLE test_parquet_array_nulls_float (
+    id INT,
+    arr_prim ARRAY<FLOAT>
+) STORED AS PARQUET;
+
+INSERT INTO test_parquet_array_nulls_float
+SELECT 1, array(CAST(NULL AS FLOAT), CAST(NULL AS FLOAT))
+UNION ALL
+SELECT 2, CAST(NULL AS ARRAY<FLOAT>)
+UNION ALL
+SELECT 3, array(CAST(3.3 AS FLOAT), CAST(NULL AS FLOAT))
+UNION ALL
+SELECT 4, array(CAST(4.4 AS FLOAT), CAST(5.5 AS FLOAT));
+
+SELECT * FROM test_parquet_array_nulls_float;
+
+SET hive.vectorized.execution.enabled=false;
+SELECT * FROM test_parquet_array_nulls_bool;
+SELECT * FROM test_parquet_array_nulls_double;
+SELECT * FROM test_parquet_array_nulls_varchar;
+SELECT * FROM test_parquet_array_nulls_float;
diff --git 
a/ql/src/test/results/clientpositive/llap/parquet_array_with_null_vectorization.q.out
 
b/ql/src/test/results/clientpositive/llap/parquet_array_with_null_vectorization.q.out
new file mode 100644
index 00000000000..ceeb7f99a1d
--- /dev/null
+++ 
b/ql/src/test/results/clientpositive/llap/parquet_array_with_null_vectorization.q.out
@@ -0,0 +1,238 @@
+PREHOOK: query: CREATE TABLE test_parquet_array_nulls_bool (
+    id INT,
+    arr_prim ARRAY<BOOLEAN>
+) STORED AS PARQUET
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@test_parquet_array_nulls_bool
+POSTHOOK: query: CREATE TABLE test_parquet_array_nulls_bool (
+    id INT,
+    arr_prim ARRAY<BOOLEAN>
+) STORED AS PARQUET
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@test_parquet_array_nulls_bool
+PREHOOK: query: INSERT INTO test_parquet_array_nulls_bool VALUES
+    (1, array(CAST(NULL AS BOOLEAN), CAST(NULL AS BOOLEAN))),
+    (2, if(1=0, array(true, false), null)),
+    (3, array(true, CAST(NULL AS BOOLEAN))),
+    (4, array(true, false))
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@test_parquet_array_nulls_bool
+POSTHOOK: query: INSERT INTO test_parquet_array_nulls_bool VALUES
+    (1, array(CAST(NULL AS BOOLEAN), CAST(NULL AS BOOLEAN))),
+    (2, if(1=0, array(true, false), null)),
+    (3, array(true, CAST(NULL AS BOOLEAN))),
+    (4, array(true, false))
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@test_parquet_array_nulls_bool
+POSTHOOK: Lineage: test_parquet_array_nulls_bool.arr_prim SCRIPT []
+POSTHOOK: Lineage: test_parquet_array_nulls_bool.id SCRIPT []
+PREHOOK: query: SELECT * FROM test_parquet_array_nulls_bool
+PREHOOK: type: QUERY
+PREHOOK: Input: default@test_parquet_array_nulls_bool
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM test_parquet_array_nulls_bool
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@test_parquet_array_nulls_bool
+#### A masked pattern was here ####
+1      [null,null]
+2      NULL
+3      [true,null]
+4      [true,false]
+PREHOOK: query: CREATE TABLE test_parquet_array_nulls_double (
+    id INT,
+    arr_prim ARRAY<DOUBLE>
+) STORED AS PARQUET
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@test_parquet_array_nulls_double
+POSTHOOK: query: CREATE TABLE test_parquet_array_nulls_double (
+    id INT,
+    arr_prim ARRAY<DOUBLE>
+) STORED AS PARQUET
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@test_parquet_array_nulls_double
+PREHOOK: query: INSERT INTO test_parquet_array_nulls_double
+SELECT 1, array(CAST(NULL AS DOUBLE), CAST(NULL AS DOUBLE))
+UNION ALL
+SELECT 2, CAST(NULL AS ARRAY<DOUBLE>)
+UNION ALL
+SELECT 3, array(CAST(3.3 AS DOUBLE), CAST(NULL AS DOUBLE))
+UNION ALL
+SELECT 4, array(CAST(4.4 AS DOUBLE), CAST(5.5 AS DOUBLE))
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@test_parquet_array_nulls_double
+POSTHOOK: query: INSERT INTO test_parquet_array_nulls_double
+SELECT 1, array(CAST(NULL AS DOUBLE), CAST(NULL AS DOUBLE))
+UNION ALL
+SELECT 2, CAST(NULL AS ARRAY<DOUBLE>)
+UNION ALL
+SELECT 3, array(CAST(3.3 AS DOUBLE), CAST(NULL AS DOUBLE))
+UNION ALL
+SELECT 4, array(CAST(4.4 AS DOUBLE), CAST(5.5 AS DOUBLE))
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@test_parquet_array_nulls_double
+POSTHOOK: Lineage: test_parquet_array_nulls_double.arr_prim SCRIPT []
+POSTHOOK: Lineage: test_parquet_array_nulls_double.id SCRIPT []
+PREHOOK: query: SELECT * FROM test_parquet_array_nulls_double
+PREHOOK: type: QUERY
+PREHOOK: Input: default@test_parquet_array_nulls_double
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM test_parquet_array_nulls_double
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@test_parquet_array_nulls_double
+#### A masked pattern was here ####
+1      [null,null]
+2      NULL
+3      [3.3,null]
+4      [4.4,5.5]
+PREHOOK: query: CREATE TABLE test_parquet_array_nulls_varchar (
+    id INT,
+    arr_prim ARRAY<VARCHAR(20)>
+) STORED AS PARQUET
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@test_parquet_array_nulls_varchar
+POSTHOOK: query: CREATE TABLE test_parquet_array_nulls_varchar (
+    id INT,
+    arr_prim ARRAY<VARCHAR(20)>
+) STORED AS PARQUET
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@test_parquet_array_nulls_varchar
+PREHOOK: query: INSERT INTO test_parquet_array_nulls_varchar
+SELECT 1, array(CAST(NULL AS VARCHAR(20)), CAST(NULL AS VARCHAR(20)))
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@test_parquet_array_nulls_varchar
+POSTHOOK: query: INSERT INTO test_parquet_array_nulls_varchar
+SELECT 1, array(CAST(NULL AS VARCHAR(20)), CAST(NULL AS VARCHAR(20)))
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@test_parquet_array_nulls_varchar
+POSTHOOK: Lineage: test_parquet_array_nulls_varchar.arr_prim EXPRESSION []
+POSTHOOK: Lineage: test_parquet_array_nulls_varchar.id SIMPLE []
+PREHOOK: query: INSERT INTO test_parquet_array_nulls_varchar
+SELECT 2, CAST(NULL AS ARRAY<VARCHAR(20)>)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@test_parquet_array_nulls_varchar
+POSTHOOK: query: INSERT INTO test_parquet_array_nulls_varchar
+SELECT 2, CAST(NULL AS ARRAY<VARCHAR(20)>)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@test_parquet_array_nulls_varchar
+POSTHOOK: Lineage: test_parquet_array_nulls_varchar.arr_prim SIMPLE []
+POSTHOOK: Lineage: test_parquet_array_nulls_varchar.id SIMPLE []
+PREHOOK: query: SELECT * FROM test_parquet_array_nulls_varchar
+PREHOOK: type: QUERY
+PREHOOK: Input: default@test_parquet_array_nulls_varchar
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM test_parquet_array_nulls_varchar
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@test_parquet_array_nulls_varchar
+#### A masked pattern was here ####
+1      [null,null]
+2      NULL
+PREHOOK: query: CREATE TABLE test_parquet_array_nulls_float (
+    id INT,
+    arr_prim ARRAY<FLOAT>
+) STORED AS PARQUET
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@test_parquet_array_nulls_float
+POSTHOOK: query: CREATE TABLE test_parquet_array_nulls_float (
+    id INT,
+    arr_prim ARRAY<FLOAT>
+) STORED AS PARQUET
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@test_parquet_array_nulls_float
+PREHOOK: query: INSERT INTO test_parquet_array_nulls_float
+SELECT 1, array(CAST(NULL AS FLOAT), CAST(NULL AS FLOAT))
+UNION ALL
+SELECT 2, CAST(NULL AS ARRAY<FLOAT>)
+UNION ALL
+SELECT 3, array(CAST(3.3 AS FLOAT), CAST(NULL AS FLOAT))
+UNION ALL
+SELECT 4, array(CAST(4.4 AS FLOAT), CAST(5.5 AS FLOAT))
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@test_parquet_array_nulls_float
+POSTHOOK: query: INSERT INTO test_parquet_array_nulls_float
+SELECT 1, array(CAST(NULL AS FLOAT), CAST(NULL AS FLOAT))
+UNION ALL
+SELECT 2, CAST(NULL AS ARRAY<FLOAT>)
+UNION ALL
+SELECT 3, array(CAST(3.3 AS FLOAT), CAST(NULL AS FLOAT))
+UNION ALL
+SELECT 4, array(CAST(4.4 AS FLOAT), CAST(5.5 AS FLOAT))
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@test_parquet_array_nulls_float
+POSTHOOK: Lineage: test_parquet_array_nulls_float.arr_prim SCRIPT []
+POSTHOOK: Lineage: test_parquet_array_nulls_float.id SCRIPT []
+PREHOOK: query: SELECT * FROM test_parquet_array_nulls_float
+PREHOOK: type: QUERY
+PREHOOK: Input: default@test_parquet_array_nulls_float
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM test_parquet_array_nulls_float
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@test_parquet_array_nulls_float
+#### A masked pattern was here ####
+1      [null,null]
+2      NULL
+3      [3.3,null]
+4      [4.4,5.5]
+PREHOOK: query: SELECT * FROM test_parquet_array_nulls_bool
+PREHOOK: type: QUERY
+PREHOOK: Input: default@test_parquet_array_nulls_bool
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM test_parquet_array_nulls_bool
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@test_parquet_array_nulls_bool
+#### A masked pattern was here ####
+1      [null,null]
+2      NULL
+3      [true,null]
+4      [true,false]
+PREHOOK: query: SELECT * FROM test_parquet_array_nulls_double
+PREHOOK: type: QUERY
+PREHOOK: Input: default@test_parquet_array_nulls_double
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM test_parquet_array_nulls_double
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@test_parquet_array_nulls_double
+#### A masked pattern was here ####
+1      [null,null]
+2      NULL
+3      [3.3,null]
+4      [4.4,5.5]
+PREHOOK: query: SELECT * FROM test_parquet_array_nulls_varchar
+PREHOOK: type: QUERY
+PREHOOK: Input: default@test_parquet_array_nulls_varchar
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM test_parquet_array_nulls_varchar
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@test_parquet_array_nulls_varchar
+#### A masked pattern was here ####
+1      [null,null]
+2      NULL
+PREHOOK: query: SELECT * FROM test_parquet_array_nulls_float
+PREHOOK: type: QUERY
+PREHOOK: Input: default@test_parquet_array_nulls_float
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM test_parquet_array_nulls_float
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@test_parquet_array_nulls_float
+#### A masked pattern was here ####
+1      [null,null]
+2      NULL
+3      [3.3,null]
+4      [4.4,5.5]
diff --git 
a/ql/src/test/results/clientpositive/llap/parquet_map_null_vectorization.q.out 
b/ql/src/test/results/clientpositive/llap/parquet_map_null_vectorization.q.out
index d947099cd38..10ec145c68f 100644
--- 
a/ql/src/test/results/clientpositive/llap/parquet_map_null_vectorization.q.out
+++ 
b/ql/src/test/results/clientpositive/llap/parquet_map_null_vectorization.q.out
@@ -42,8 +42,8 @@ POSTHOOK: query: select id, booleanMap from 
parquet_map_type_boolean
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@parquet_map_type_boolean
 #### A masked pattern was here ####
-1      {true:false,false:true}
-2      {false:false}
+1      {true:null,false:true}
+2      NULL
 PREHOOK: query: select id, booleanMap[true] from parquet_map_type_boolean 
group by id, booleanMap[true]
 PREHOOK: type: QUERY
 PREHOOK: Input: default@parquet_map_type_boolean
@@ -52,8 +52,8 @@ POSTHOOK: query: select id, booleanMap[true] from 
parquet_map_type_boolean group
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@parquet_map_type_boolean
 #### A masked pattern was here ####
+1      NULL
 2      NULL
-1      false
 PREHOOK: query: CREATE TABLE parquet_map_type_string (
 id int,
 stringMap map<string, string>
@@ -154,8 +154,8 @@ select id, intMap from parquet_map_type_int
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@parquet_map_type_int
 #### A masked pattern was here ####
-1      {1:0,2:3}
-2      {0:0}
+1      {1:null,2:3}
+2      NULL
 PREHOOK: query: select id, intMap[1] from parquet_map_type_int group by id, 
intMap[1]
 PREHOOK: type: QUERY
 PREHOOK: Input: default@parquet_map_type_int
@@ -164,7 +164,7 @@ POSTHOOK: query: select id, intMap[1] from 
parquet_map_type_int group by id, int
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@parquet_map_type_int
 #### A masked pattern was here ####
-1      0
+1      NULL
 2      NULL
 PREHOOK: query: CREATE TABLE parquet_map_type_double (
 id int,
@@ -198,7 +198,7 @@ POSTHOOK: query: select id, doubleMap from 
parquet_map_type_double
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@parquet_map_type_double
 #### A masked pattern was here ####
-2      {0.0:0.0}
+2      NULL
 PREHOOK: query: select id, doubleMap[1.0] from parquet_map_type_double group 
by id, doubleMap[1.0]
 PREHOOK: type: QUERY
 PREHOOK: Input: default@parquet_map_type_double
@@ -250,8 +250,8 @@ POSTHOOK: query: select id, decimalMap from 
parquet_map_type_decimal
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@parquet_map_type_decimal
 #### A masked pattern was here ####
-1      {1:0,2:3}
-2      {0:0}
+1      {1:null,2:3}
+2      NULL
 PREHOOK: query: select id, decimalMap[1.0] from parquet_map_type_decimal group 
by id, decimalMap[1.0]
 PREHOOK: type: QUERY
 PREHOOK: Input: default@parquet_map_type_decimal
@@ -260,7 +260,7 @@ POSTHOOK: query: select id, decimalMap[1.0] from 
parquet_map_type_decimal group
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@parquet_map_type_decimal
 #### A masked pattern was here ####
-1      0
+1      NULL
 2      NULL
 PREHOOK: query: CREATE TABLE parquet_map_type_date (
 id int,
@@ -304,8 +304,8 @@ POSTHOOK: query: select id, dateMap from 
parquet_map_type_date
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@parquet_map_type_date
 #### A masked pattern was here ####
-1      {"2015-11-29":"1970-01-01","2016-11-29":"2017-11-29"}
-2      {"1970-01-01":"1970-01-01"}
+1      {"2015-11-29":null,"2016-11-29":"2017-11-29"}
+2      NULL
 PREHOOK: query: select id, dateMap[CAST('2015-11-29' AS DATE)] from 
parquet_map_type_date group by id, dateMap[CAST('2015-11-29' AS DATE)]
 PREHOOK: type: QUERY
 PREHOOK: Input: default@parquet_map_type_date
@@ -314,5 +314,5 @@ POSTHOOK: query: select id, dateMap[CAST('2015-11-29' AS 
DATE)] from parquet_map
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@parquet_map_type_date
 #### A masked pattern was here ####
-1      1970-01-01
+1      NULL
 2      NULL

Reply via email to