diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java index 1ca113c..5323a7d 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java @@ -8991,21 +8991,21 @@ private Operator genUnionPlan(String unionalias, String leftalias, unionoutRR.put(unionalias, field, unionColInfo); } - // For Spark, we rely on the generated SelectOperator to do the type casting. + // For Spark,TEZ we rely on the generated SelectOperator to do the type casting. // Consider: // SEL_1 (int) SEL_2 (int) SEL_3 (double) // If we first merge SEL_1 and SEL_2 into a UNION_1, and then merge UNION_1 // with SEL_3 to get UNION_2, then no SelectOperator will be inserted. Hence error // will happen afterwards. The solution here is to insert one after UNION_1, which // cast int to double. - boolean isSpark = HiveConf.getVar(conf, - HiveConf.ConfVars.HIVE_EXECUTION_ENGINE).equals("spark"); + boolean isMR = HiveConf.getVar(conf, + HiveConf.ConfVars.HIVE_EXECUTION_ENGINE).equals("mr"); - if (isSpark || !(leftOp instanceof UnionOperator)) { + if (!isMR || !(leftOp instanceof UnionOperator)) { leftOp = genInputSelectForUnion(leftOp, leftmap, leftalias, unionoutRR, unionalias); } - if (isSpark || !(rightOp instanceof UnionOperator)) { + if (!isMR || !(rightOp instanceof UnionOperator)) { rightOp = genInputSelectForUnion(rightOp, rightmap, rightalias, unionoutRR, unionalias); } diff --git a/ql/src/test/queries/clientpositive/union_type_chk.q b/ql/src/test/queries/clientpositive/union_type_chk.q new file mode 100644 index 0000000..0c8282a --- /dev/null +++ b/ql/src/test/queries/clientpositive/union_type_chk.q @@ -0,0 +1,6 @@ +set hive.cbo.enable=false; +set hive.execution.engine=mr; + +select (x/sum(x) over()) as y from(select cast(1 as decimal(10,0)) as x from (select * from src limit 2)s1 union all select cast(1 as decimal(10,0)) x from (select * from src limit 2) s2 union all select '100000000' x from (select * from src limit 2) s3)u order by y; + +select (x/sum(x) over()) as y from(select cast(1 as decimal(10,0)) as x from (select * from src limit 2)s1 union all select cast(1 as decimal(10,0)) x from (select * from src limit 2) s2 union all select cast (null as string) x from (select * from src limit 2) s3)u order by y; diff --git a/ql/src/test/results/clientpositive/tez/unionDistinct_1.q.out b/ql/src/test/results/clientpositive/tez/unionDistinct_1.q.out index 9537807..a2cd344 100644 --- a/ql/src/test/results/clientpositive/tez/unionDistinct_1.q.out +++ b/ql/src/test/results/clientpositive/tez/unionDistinct_1.q.out @@ -9860,7 +9860,7 @@ STAGE PLANS: Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) - Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Map Join Operator condition map: Inner Join 0 to 1 @@ -9870,18 +9870,18 @@ STAGE PLANS: outputColumnNames: _col0, _col1 input vertices: 1 Map 4 - Statistics: Num rows: 275 Data size: 2921 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE HybridGraceHashJoin: true Group By Operator keys: _col0 (type: string), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 - Statistics: Num rows: 1275 Data size: 13545 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 1550 Data size: 16467 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: string), _col1 (type: string) sort order: ++ Map-reduce partition columns: _col0 (type: string), _col1 (type: string) - Statistics: Num rows: 1275 Data size: 13545 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 1550 Data size: 16467 Basic stats: COMPLETE Column stats: NONE Map 4 Map Operator Tree: TableScan @@ -9889,12 +9889,12 @@ STAGE PLANS: Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) - Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: key (type: string) sort order: + Map-reduce partition columns: key (type: string) - Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Map 5 Map Operator Tree: TableScan @@ -9917,12 +9917,12 @@ STAGE PLANS: keys: _col0 (type: string), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 - Statistics: Num rows: 1275 Data size: 13545 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 1550 Data size: 16467 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: string), _col1 (type: string) sort order: ++ Map-reduce partition columns: _col0 (type: string), _col1 (type: string) - Statistics: Num rows: 1275 Data size: 13545 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 1550 Data size: 16467 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: array(1,2,3) (type: array) outputColumnNames: _col0 @@ -9941,32 +9941,32 @@ STAGE PLANS: keys: _col0 (type: string), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 - Statistics: Num rows: 1275 Data size: 13545 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 1550 Data size: 16467 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: string), _col1 (type: string) sort order: ++ Map-reduce partition columns: _col0 (type: string), _col1 (type: string) - Statistics: Num rows: 1275 Data size: 13545 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 1550 Data size: 16467 Basic stats: COMPLETE Column stats: NONE Reducer 3 Reduce Operator Tree: Group By Operator keys: KEY._col0 (type: string), KEY._col1 (type: string) mode: mergepartial outputColumnNames: _col0, _col1 - Statistics: Num rows: 637 Data size: 6767 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 775 Data size: 8233 Basic stats: COMPLETE Column stats: NONE Group By Operator aggregations: count(1) keys: _col0 (type: string), _col1 (type: string) mode: complete outputColumnNames: _col0, _col1, _col2 - Statistics: Num rows: 318 Data size: 3378 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 387 Data size: 4111 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: _col2 (type: bigint), _col0 (type: string), _col1 (type: string) outputColumnNames: _col0, _col1, _col2 - Statistics: Num rows: 318 Data size: 3378 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 387 Data size: 4111 Basic stats: COMPLETE Column stats: NONE File Output Operator compressed: false - Statistics: Num rows: 318 Data size: 3378 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 387 Data size: 4111 Basic stats: COMPLETE Column stats: NONE table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat @@ -13454,7 +13454,7 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) - Statistics: Num rows: 5 Data size: 35 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Map Join Operator condition map: Inner Join 0 to 1 @@ -13464,22 +13464,22 @@ STAGE PLANS: outputColumnNames: _col0 input vertices: 1 Map 4 - Statistics: Num rows: 5 Data size: 38 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 11 Data size: 77 Basic stats: COMPLETE Column stats: NONE HybridGraceHashJoin: true Select Operator expressions: UDFToDouble(UDFToLong(_col0)) (type: double) outputColumnNames: _col0 - Statistics: Num rows: 5 Data size: 38 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 11 Data size: 77 Basic stats: COMPLETE Column stats: NONE Group By Operator keys: _col0 (type: double) mode: hash outputColumnNames: _col0 - Statistics: Num rows: 15 Data size: 108 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 147 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: double) sort order: + Map-reduce partition columns: _col0 (type: double) - Statistics: Num rows: 15 Data size: 108 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 147 Basic stats: COMPLETE Column stats: NONE Map 4 Map Operator Tree: TableScan @@ -13487,12 +13487,12 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) - Statistics: Num rows: 5 Data size: 35 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: key (type: string) sort order: + Map-reduce partition columns: key (type: string) - Statistics: Num rows: 5 Data size: 35 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Map 5 Map Operator Tree: TableScan @@ -13506,22 +13506,22 @@ STAGE PLANS: keys: _col0 (type: double) mode: hash outputColumnNames: _col0 - Statistics: Num rows: 15 Data size: 108 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 147 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: double) sort order: + Map-reduce partition columns: _col0 (type: double) - Statistics: Num rows: 15 Data size: 108 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 147 Basic stats: COMPLETE Column stats: NONE Reducer 3 Reduce Operator Tree: Group By Operator keys: KEY._col0 (type: double) mode: mergepartial outputColumnNames: _col0 - Statistics: Num rows: 7 Data size: 50 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE File Output Operator compressed: false - Statistics: Num rows: 7 Data size: 50 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat @@ -13597,12 +13597,12 @@ STAGE PLANS: keys: _col0 (type: double) mode: hash outputColumnNames: _col0 - Statistics: Num rows: 15 Data size: 108 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 147 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: double) sort order: + Map-reduce partition columns: _col0 (type: double) - Statistics: Num rows: 15 Data size: 108 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 147 Basic stats: COMPLETE Column stats: NONE Map 4 Map Operator Tree: TableScan @@ -13610,7 +13610,7 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) - Statistics: Num rows: 5 Data size: 35 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Map Join Operator condition map: Inner Join 0 to 1 @@ -13620,22 +13620,22 @@ STAGE PLANS: outputColumnNames: _col0 input vertices: 1 Map 5 - Statistics: Num rows: 5 Data size: 38 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 11 Data size: 77 Basic stats: COMPLETE Column stats: NONE HybridGraceHashJoin: true Select Operator expressions: UDFToDouble(UDFToLong(_col0)) (type: double) outputColumnNames: _col0 - Statistics: Num rows: 5 Data size: 38 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 11 Data size: 77 Basic stats: COMPLETE Column stats: NONE Group By Operator keys: _col0 (type: double) mode: hash outputColumnNames: _col0 - Statistics: Num rows: 15 Data size: 108 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 147 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: double) sort order: + Map-reduce partition columns: _col0 (type: double) - Statistics: Num rows: 15 Data size: 108 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 147 Basic stats: COMPLETE Column stats: NONE Map 5 Map Operator Tree: TableScan @@ -13643,22 +13643,22 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) - Statistics: Num rows: 5 Data size: 35 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: key (type: string) sort order: + Map-reduce partition columns: key (type: string) - Statistics: Num rows: 5 Data size: 35 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Reducer 3 Reduce Operator Tree: Group By Operator keys: KEY._col0 (type: double) mode: mergepartial outputColumnNames: _col0 - Statistics: Num rows: 7 Data size: 50 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE File Output Operator compressed: false - Statistics: Num rows: 7 Data size: 50 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat @@ -13728,7 +13728,7 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) - Statistics: Num rows: 5 Data size: 35 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Map Join Operator condition map: Inner Join 0 to 1 @@ -13738,22 +13738,22 @@ STAGE PLANS: outputColumnNames: _col0, _col5 input vertices: 1 Map 4 - Statistics: Num rows: 5 Data size: 38 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 11 Data size: 77 Basic stats: COMPLETE Column stats: NONE HybridGraceHashJoin: true Select Operator expressions: UDFToDouble(UDFToLong(_col0)) (type: double), UDFToString(UDFToDouble(_col5)) (type: string) outputColumnNames: _col0, _col1 - Statistics: Num rows: 5 Data size: 38 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 11 Data size: 77 Basic stats: COMPLETE Column stats: NONE Group By Operator keys: _col0 (type: double), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 - Statistics: Num rows: 15 Data size: 108 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 147 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: double), _col1 (type: string) sort order: ++ Map-reduce partition columns: _col0 (type: double), _col1 (type: string) - Statistics: Num rows: 15 Data size: 108 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 147 Basic stats: COMPLETE Column stats: NONE Map 4 Map Operator Tree: TableScan @@ -13761,12 +13761,12 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) - Statistics: Num rows: 5 Data size: 35 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: key (type: string) sort order: + Map-reduce partition columns: key (type: string) - Statistics: Num rows: 5 Data size: 35 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Map 5 Map Operator Tree: TableScan @@ -13780,22 +13780,22 @@ STAGE PLANS: keys: _col0 (type: double), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 - Statistics: Num rows: 15 Data size: 108 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 147 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: double), _col1 (type: string) sort order: ++ Map-reduce partition columns: _col0 (type: double), _col1 (type: string) - Statistics: Num rows: 15 Data size: 108 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 147 Basic stats: COMPLETE Column stats: NONE Reducer 3 Reduce Operator Tree: Group By Operator keys: KEY._col0 (type: double), KEY._col1 (type: string) mode: mergepartial outputColumnNames: _col0, _col1 - Statistics: Num rows: 7 Data size: 50 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE File Output Operator compressed: false - Statistics: Num rows: 7 Data size: 50 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat @@ -13877,12 +13877,12 @@ STAGE PLANS: keys: _col0 (type: double), _col1 (type: double) mode: hash outputColumnNames: _col0, _col1 - Statistics: Num rows: 15 Data size: 108 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 147 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: double), _col1 (type: double) sort order: ++ Map-reduce partition columns: _col0 (type: double), _col1 (type: double) - Statistics: Num rows: 15 Data size: 108 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 147 Basic stats: COMPLETE Column stats: NONE Map 4 Map Operator Tree: TableScan @@ -13890,7 +13890,7 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) - Statistics: Num rows: 5 Data size: 35 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Map Join Operator condition map: Inner Join 0 to 1 @@ -13900,22 +13900,22 @@ STAGE PLANS: outputColumnNames: _col0, _col5 input vertices: 1 Map 5 - Statistics: Num rows: 5 Data size: 38 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 11 Data size: 77 Basic stats: COMPLETE Column stats: NONE HybridGraceHashJoin: true Select Operator expressions: UDFToDouble(UDFToLong(_col0)) (type: double), UDFToDouble(_col5) (type: double) outputColumnNames: _col0, _col1 - Statistics: Num rows: 5 Data size: 38 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 11 Data size: 77 Basic stats: COMPLETE Column stats: NONE Group By Operator keys: _col0 (type: double), _col1 (type: double) mode: hash outputColumnNames: _col0, _col1 - Statistics: Num rows: 15 Data size: 108 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 147 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: double), _col1 (type: double) sort order: ++ Map-reduce partition columns: _col0 (type: double), _col1 (type: double) - Statistics: Num rows: 15 Data size: 108 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 147 Basic stats: COMPLETE Column stats: NONE Map 5 Map Operator Tree: TableScan @@ -13923,22 +13923,22 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) - Statistics: Num rows: 5 Data size: 35 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: key (type: string) sort order: + Map-reduce partition columns: key (type: string) - Statistics: Num rows: 5 Data size: 35 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE Reducer 3 Reduce Operator Tree: Group By Operator keys: KEY._col0 (type: double), KEY._col1 (type: double) mode: mergepartial outputColumnNames: _col0, _col1 - Statistics: Num rows: 7 Data size: 50 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE File Output Operator compressed: false - Statistics: Num rows: 7 Data size: 50 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat @@ -14467,11 +14467,11 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) - Statistics: Num rows: 5 Data size: 52 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: key (type: string), value (type: string) outputColumnNames: _col0, _col1 - Statistics: Num rows: 5 Data size: 52 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE Map Join Operator condition map: Inner Join 0 to 1 @@ -14481,18 +14481,18 @@ STAGE PLANS: outputColumnNames: _col0, _col1 input vertices: 1 Map 5 - Statistics: Num rows: 5 Data size: 57 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 11 Data size: 114 Basic stats: COMPLETE Column stats: NONE HybridGraceHashJoin: true Group By Operator keys: _col0 (type: string), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 - Statistics: Num rows: 15 Data size: 161 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 218 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: string), _col1 (type: string) sort order: ++ Map-reduce partition columns: _col0 (type: string), _col1 (type: string) - Statistics: Num rows: 15 Data size: 161 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 218 Basic stats: COMPLETE Column stats: NONE Map 5 Map Operator Tree: TableScan @@ -14500,16 +14500,16 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) - Statistics: Num rows: 5 Data size: 52 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: key (type: string) outputColumnNames: _col0 - Statistics: Num rows: 5 Data size: 52 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: string) sort order: + Map-reduce partition columns: _col0 (type: string) - Statistics: Num rows: 5 Data size: 52 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE Map 6 Map Operator Tree: TableScan @@ -14554,21 +14554,21 @@ STAGE PLANS: keys: KEY._col0 (type: string), KEY._col1 (type: string) mode: mergepartial outputColumnNames: _col0, _col1 - Statistics: Num rows: 7 Data size: 75 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 103 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: string) sort order: + - Statistics: Num rows: 7 Data size: 75 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 103 Basic stats: COMPLETE Column stats: NONE value expressions: _col1 (type: string) Reducer 4 Reduce Operator Tree: Select Operator expressions: KEY.reducesinkkey0 (type: string), VALUE._col0 (type: string) outputColumnNames: _col0, _col1 - Statistics: Num rows: 7 Data size: 75 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 103 Basic stats: COMPLETE Column stats: NONE File Output Operator compressed: false - Statistics: Num rows: 7 Data size: 75 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 103 Basic stats: COMPLETE Column stats: NONE table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat @@ -14584,12 +14584,12 @@ STAGE PLANS: keys: _col0 (type: string), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 - Statistics: Num rows: 15 Data size: 161 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 218 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: string), _col1 (type: string) sort order: ++ Map-reduce partition columns: _col0 (type: string), _col1 (type: string) - Statistics: Num rows: 15 Data size: 161 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 218 Basic stats: COMPLETE Column stats: NONE Union 2 Vertex: Union 2 Union 7 @@ -14678,16 +14678,16 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) - Statistics: Num rows: 5 Data size: 52 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: key (type: string), value (type: string) outputColumnNames: _col0, _col1 - Statistics: Num rows: 5 Data size: 52 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: string) sort order: + Map-reduce partition columns: _col0 (type: string) - Statistics: Num rows: 5 Data size: 52 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE value expressions: _col1 (type: string) Map 10 Map Operator Tree: @@ -14715,16 +14715,16 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) - Statistics: Num rows: 5 Data size: 52 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: key (type: string) outputColumnNames: _col0 - Statistics: Num rows: 5 Data size: 52 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: string) sort order: + Map-reduce partition columns: _col0 (type: string) - Statistics: Num rows: 5 Data size: 52 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE Map 7 Map Operator Tree: TableScan @@ -14753,38 +14753,38 @@ STAGE PLANS: 0 _col0 (type: string) 1 _col0 (type: string) outputColumnNames: _col0, _col1 - Statistics: Num rows: 5 Data size: 57 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 11 Data size: 114 Basic stats: COMPLETE Column stats: NONE Group By Operator keys: _col0 (type: string), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 - Statistics: Num rows: 15 Data size: 161 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 218 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: string), _col1 (type: string) sort order: ++ Map-reduce partition columns: _col0 (type: string), _col1 (type: string) - Statistics: Num rows: 15 Data size: 161 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 218 Basic stats: COMPLETE Column stats: NONE Reducer 4 Reduce Operator Tree: Group By Operator keys: KEY._col0 (type: string), KEY._col1 (type: string) mode: mergepartial outputColumnNames: _col0, _col1 - Statistics: Num rows: 7 Data size: 75 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 103 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: string) sort order: + - Statistics: Num rows: 7 Data size: 75 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 103 Basic stats: COMPLETE Column stats: NONE value expressions: _col1 (type: string) Reducer 5 Reduce Operator Tree: Select Operator expressions: KEY.reducesinkkey0 (type: string), VALUE._col0 (type: string) outputColumnNames: _col0, _col1 - Statistics: Num rows: 7 Data size: 75 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 103 Basic stats: COMPLETE Column stats: NONE File Output Operator compressed: false - Statistics: Num rows: 7 Data size: 75 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 10 Data size: 103 Basic stats: COMPLETE Column stats: NONE table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat @@ -14800,12 +14800,12 @@ STAGE PLANS: keys: _col0 (type: string), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 - Statistics: Num rows: 15 Data size: 161 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 218 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: string), _col1 (type: string) sort order: ++ Map-reduce partition columns: _col0 (type: string), _col1 (type: string) - Statistics: Num rows: 15 Data size: 161 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 21 Data size: 218 Basic stats: COMPLETE Column stats: NONE Union 3 Vertex: Union 3 Union 8 diff --git a/ql/src/test/results/clientpositive/tez/union_type_chk.q.out b/ql/src/test/results/clientpositive/tez/union_type_chk.q.out new file mode 100644 index 0000000..12f060b --- /dev/null +++ b/ql/src/test/results/clientpositive/tez/union_type_chk.q.out @@ -0,0 +1,28 @@ +PREHOOK: query: select (x/sum(x) over()) as y from(select cast(1 as decimal(10,0)) as x from (select * from src limit 2)s1 union all select cast(1 as decimal(10,0)) x from (select * from src limit 2) s2 union all select '100000000' x from (select * from src limit 2) s3)u order by y +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: select (x/sum(x) over()) as y from(select cast(1 as decimal(10,0)) as x from (select * from src limit 2)s1 union all select cast(1 as decimal(10,0)) x from (select * from src limit 2) s2 union all select '100000000' x from (select * from src limit 2) s3)u order by y +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +4.999999900000002E-9 +4.999999900000002E-9 +4.999999900000002E-9 +4.999999900000002E-9 +0.4999999900000002 +0.4999999900000002 +PREHOOK: query: select (x/sum(x) over()) as y from(select cast(1 as decimal(10,0)) as x from (select * from src limit 2)s1 union all select cast(1 as decimal(10,0)) x from (select * from src limit 2) s2 union all select cast (null as string) x from (select * from src limit 2) s3)u order by y +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: select (x/sum(x) over()) as y from(select cast(1 as decimal(10,0)) as x from (select * from src limit 2)s1 union all select cast(1 as decimal(10,0)) x from (select * from src limit 2) s2 union all select cast (null as string) x from (select * from src limit 2) s3)u order by y +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +NULL +0.25 +0.25 +0.25 +0.25 diff --git a/ql/src/test/results/clientpositive/union_type_chk.q.out b/ql/src/test/results/clientpositive/union_type_chk.q.out new file mode 100644 index 0000000..12f060b --- /dev/null +++ b/ql/src/test/results/clientpositive/union_type_chk.q.out @@ -0,0 +1,28 @@ +PREHOOK: query: select (x/sum(x) over()) as y from(select cast(1 as decimal(10,0)) as x from (select * from src limit 2)s1 union all select cast(1 as decimal(10,0)) x from (select * from src limit 2) s2 union all select '100000000' x from (select * from src limit 2) s3)u order by y +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: select (x/sum(x) over()) as y from(select cast(1 as decimal(10,0)) as x from (select * from src limit 2)s1 union all select cast(1 as decimal(10,0)) x from (select * from src limit 2) s2 union all select '100000000' x from (select * from src limit 2) s3)u order by y +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +4.999999900000002E-9 +4.999999900000002E-9 +4.999999900000002E-9 +4.999999900000002E-9 +0.4999999900000002 +0.4999999900000002 +PREHOOK: query: select (x/sum(x) over()) as y from(select cast(1 as decimal(10,0)) as x from (select * from src limit 2)s1 union all select cast(1 as decimal(10,0)) x from (select * from src limit 2) s2 union all select cast (null as string) x from (select * from src limit 2) s3)u order by y +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: select (x/sum(x) over()) as y from(select cast(1 as decimal(10,0)) as x from (select * from src limit 2)s1 union all select cast(1 as decimal(10,0)) x from (select * from src limit 2) s2 union all select cast (null as string) x from (select * from src limit 2) s3)u order by y +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +NULL +0.25 +0.25 +0.25 +0.25