diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRFileSink1.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRFileSink1.java index 25c6b24f46..f48a68a428 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRFileSink1.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRFileSink1.java @@ -234,6 +234,7 @@ private Path processFS(FileSinkOperator fsOp, Stack stack, UnionOperator currUnionOp = ctx.getCurrUnionOp(); if (currUnionOp != null) { + ctx.setCurrUnionOp(null); opTaskMap.put(null, currTask); GenMapRedUtils.initUnionPlan(ctx, currUnionOp, currTask, false); return dest; diff --git ql/src/test/queries/clientpositive/unionall_lateralview2.q ql/src/test/queries/clientpositive/unionall_lateralview2.q new file mode 100644 index 0000000000..0e715d6f45 --- /dev/null +++ ql/src/test/queries/clientpositive/unionall_lateralview2.q @@ -0,0 +1,18 @@ +DROP TABLE IF EXISTS ua_lv_t; +CREATE TABLE ua_lv_t (a string); +INSERT INTO ua_lv_t values ('a'); + +set hive.auto.convert.join=false; + +with x as ( + select item from ( + select concat(x.a, ',', y.a) t + from ua_lv_t y join ua_lv_t x on x.a=y.a + ) + test lateral VIEW explode(split(t,',')) ua_lv_t AS item +) +select * from x +union all +select a from ua_lv_t; + +DROP TABLE ua_lv_t; diff --git ql/src/test/results/clientpositive/unionall_lateralview2.q.out ql/src/test/results/clientpositive/unionall_lateralview2.q.out new file mode 100644 index 0000000000..460d247e16 --- /dev/null +++ ql/src/test/results/clientpositive/unionall_lateralview2.q.out @@ -0,0 +1,58 @@ +PREHOOK: query: DROP TABLE IF EXISTS ua_lv_t +PREHOOK: type: DROPTABLE +POSTHOOK: query: DROP TABLE IF EXISTS ua_lv_t +POSTHOOK: type: DROPTABLE +PREHOOK: query: CREATE TABLE ua_lv_t (a string) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@ua_lv_t +POSTHOOK: query: CREATE TABLE ua_lv_t (a string) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@ua_lv_t +PREHOOK: query: INSERT INTO ua_lv_t values ('a') +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@ua_lv_t +POSTHOOK: query: INSERT INTO ua_lv_t values ('a') +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@ua_lv_t +POSTHOOK: Lineage: ua_lv_t.a SCRIPT [] +PREHOOK: query: with x as ( + select item from ( + select concat(x.a, ',', y.a) t + from ua_lv_t y join ua_lv_t x on x.a=y.a + ) + test lateral VIEW explode(split(t,',')) ua_lv_t AS item +) +select * from x +union all +select a from ua_lv_t +PREHOOK: type: QUERY +PREHOOK: Input: default@ua_lv_t +#### A masked pattern was here #### +POSTHOOK: query: with x as ( + select item from ( + select concat(x.a, ',', y.a) t + from ua_lv_t y join ua_lv_t x on x.a=y.a + ) + test lateral VIEW explode(split(t,',')) ua_lv_t AS item +) +select * from x +union all +select a from ua_lv_t +POSTHOOK: type: QUERY +POSTHOOK: Input: default@ua_lv_t +#### A masked pattern was here #### +a +a +a +PREHOOK: query: DROP TABLE ua_lv_t +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@ua_lv_t +PREHOOK: Output: default@ua_lv_t +POSTHOOK: query: DROP TABLE ua_lv_t +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@ua_lv_t +POSTHOOK: Output: default@ua_lv_t