diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java index 2553931..14e4b5d 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java @@ -260,7 +260,8 @@ public class MapOperator extends Operator implements Serializable { partNames.add(key); // Partitions do not exist for this table if (partSpec == null) { - partValues[i] = new Text(); + // for partitionless table, initialize partValue to null + partValues[i] = null; } else { partValues[i] = new Text(partSpec.get(key)); } diff --git ql/src/test/queries/clientpositive/partInit.q ql/src/test/queries/clientpositive/partInit.q new file mode 100644 index 0000000..c492b87 --- /dev/null +++ ql/src/test/queries/clientpositive/partInit.q @@ -0,0 +1,7 @@ +CREATE TABLE empty (c INT) PARTITIONED BY (p INT); +SELECT MAX(c) FROM empty; +SELECT MAX(p) FROM empty; + +ALTER TABLE empty ADD PARTITION (p=1); +SELECT MAX(p) FROM empty; + diff --git ql/src/test/results/clientpositive/metadataonly1.q.out ql/src/test/results/clientpositive/metadataonly1.q.out index 1bb96a1..766049c 100644 --- ql/src/test/results/clientpositive/metadataonly1.q.out +++ ql/src/test/results/clientpositive/metadataonly1.q.out @@ -81,7 +81,7 @@ PREHOOK: type: QUERY POSTHOOK: query: select max(ds) from TEST1 POSTHOOK: type: QUERY #### A masked pattern was here #### - +NULL PREHOOK: query: alter table TEST1 add partition (ds='1') PREHOOK: type: ALTERTABLE_ADDPARTS PREHOOK: Input: default@test1 diff --git ql/src/test/results/clientpositive/partInit.q.out ql/src/test/results/clientpositive/partInit.q.out new file mode 100644 index 0000000..c40c0c8 --- /dev/null +++ ql/src/test/results/clientpositive/partInit.q.out @@ -0,0 +1,35 @@ +PREHOOK: query: CREATE TABLE empty (c INT) PARTITIONED BY (p INT) +PREHOOK: type: CREATETABLE +POSTHOOK: query: CREATE TABLE empty (c INT) PARTITIONED BY (p INT) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@empty +PREHOOK: query: SELECT MAX(c) FROM empty +PREHOOK: type: QUERY +#### A masked pattern was here #### +POSTHOOK: query: SELECT MAX(c) FROM empty +POSTHOOK: type: QUERY +#### A masked pattern was here #### +NULL +PREHOOK: query: SELECT MAX(p) FROM empty +PREHOOK: type: QUERY +#### A masked pattern was here #### +POSTHOOK: query: SELECT MAX(p) FROM empty +POSTHOOK: type: QUERY +#### A masked pattern was here #### +NULL +PREHOOK: query: ALTER TABLE empty ADD PARTITION (p=1) +PREHOOK: type: ALTERTABLE_ADDPARTS +PREHOOK: Input: default@empty +POSTHOOK: query: ALTER TABLE empty ADD PARTITION (p=1) +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Input: default@empty +POSTHOOK: Output: default@empty@p=1 +PREHOOK: query: SELECT MAX(p) FROM empty +PREHOOK: type: QUERY +PREHOOK: Input: default@empty@p=1 +#### A masked pattern was here #### +POSTHOOK: query: SELECT MAX(p) FROM empty +POSTHOOK: type: QUERY +POSTHOOK: Input: default@empty@p=1 +#### A masked pattern was here #### +1