You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2017/11/22 16:26:35 UTC

[8/8] hive git commit: HIVE-18100 : Some tests time out

HIVE-18100 : Some tests time out


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/b5ba8273
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/b5ba8273
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/b5ba8273

Branch: refs/heads/master
Commit: b5ba82738337284d5a73bfddce11beb2c88c3ce2
Parents: c7aa7b6
Author: Ashutosh Chauhan <ha...@apache.org>
Authored: Fri Nov 17 17:28:15 2017 -0800
Committer: Ashutosh Chauhan <ha...@apache.org>
Committed: Wed Nov 22 08:26:09 2017 -0800

----------------------------------------------------------------------
 .../test/resources/testconfiguration.properties |     7 +-
 .../queries/clientpositive/explainanalyze_1.q   |     8 +
 .../queries/clientpositive/explainanalyze_2.q   |     8 -
 .../queries/clientpositive/unionDistinct_1.q    |   315 +-
 .../queries/clientpositive/unionDistinct_2.q    |    23 -
 .../queries/clientpositive/unionDistinct_3.q    |   182 +
 .../clientpositive/llap/explainanalyze_2.q.out  |  2093 ++
 .../clientpositive/llap/unionDistinct_1.q.out   | 22877 +++++++----------
 .../clientpositive/llap/unionDistinct_2.q.out   |   108 -
 .../clientpositive/llap/unionDistinct_3.q.out   |  2650 ++
 .../clientpositive/tez/explainanalyze_1.q.out   |    58 +
 .../clientpositive/tez/explainanalyze_2.q.out   |  2151 --
 .../clientpositive/tez/unionDistinct_2.q.out    |   553 -
 13 files changed, 14166 insertions(+), 16867 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/b5ba8273/itests/src/test/resources/testconfiguration.properties
----------------------------------------------------------------------
diff --git a/itests/src/test/resources/testconfiguration.properties b/itests/src/test/resources/testconfiguration.properties
index 5d17733..ab3cd43 100644
--- a/itests/src/test/resources/testconfiguration.properties
+++ b/itests/src/test/resources/testconfiguration.properties
@@ -43,7 +43,6 @@ disabled.query.files=ql_rewrite_gbtoidx.q,\
 minitez.query.files.shared=delete_orig_table.q,\
   orc_merge12.q,\
   orc_vectorization_ppd.q,\
-  unionDistinct_2.q,\
   update_orig_table.q,\
   vector_join_part_col_char.q,\
   vector_non_string_partition.q,\
@@ -55,7 +54,6 @@ minitez.query.files.shared=delete_orig_table.q,\
 minitez.query.files=acid_vectorization_original_tez.q,\
   explainuser_3.q,\
   explainanalyze_1.q,\
-  explainanalyze_2.q,\
   explainanalyze_3.q,\
   explainanalyze_4.q,\
   explainanalyze_5.q,\
@@ -80,7 +78,6 @@ minillap.shared.query.files=insert_into1.q,\
   orc_merge_diff_fs.q,\
   parallel_colstats.q,\
   parquet_types_vectorization.q,\
-  unionDistinct_1.q,\
   union_type_chk.q,\
   cte_2.q,\
   cte_4.q,\
@@ -467,7 +464,6 @@ minillap.query.files=acid_bucket_pruning.q,\
   temp_table_external.q,\
   table_nonprintable.q,\
   llap_nullscan.q,\
-  unionDistinct_1.q,\
   rcfile_merge2.q,\
   rcfile_merge3.q,\
   rcfile_merge4.q,\
@@ -477,6 +473,7 @@ minillap.query.files=acid_bucket_pruning.q,\
   dynamic_partition_pruning_2.q,\
   tez_union_dynamic_partition.q,\
   tez_union_dynamic_partition_2.q,\
+  unionDistinct_1.q,\
   load_fs2.q,\
   llap_stats.q,\
   multi_count_distinct_null.q
@@ -540,6 +537,7 @@ minillaplocal.query.files=\
   escape1.q,\
   escape2.q,\
   exchgpartition2lel.q,\
+  explainanalyze_2.q,\
   explainuser_1.q,\
   explainuser_4.q,\
   groupby2.q,\
@@ -801,6 +799,7 @@ minillaplocal.query.files=\
   smb_mapjoin_17.q,\
   groupby_resolution.q,\
   windowing_windowspec2.q,\
+  unionDistinct_3.q,\
   vectorized_join46.q,\
   vectorized_multi_output_select.q,\
   partialdhj.q

http://git-wip-us.apache.org/repos/asf/hive/blob/b5ba8273/ql/src/test/queries/clientpositive/explainanalyze_1.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/explainanalyze_1.q b/ql/src/test/queries/clientpositive/explainanalyze_1.q
index 0a33a4f..6611922 100644
--- a/ql/src/test/queries/clientpositive/explainanalyze_1.q
+++ b/ql/src/test/queries/clientpositive/explainanalyze_1.q
@@ -37,3 +37,11 @@ set hive.auto.convert.join.noconditionaltask.size=10000;
 EXPLAIN analyze 
 SELECT x.key, y.value
 FROM src x JOIN src y ON (x.key = y.key);
+
+set hive.entity.capture.transform=true;
+explain analyze
+SELECT
+TRANSFORM(a.key, a.value) USING 'cat' AS (tkey, tvalue)
+FROM src a join src b
+on a.key = b.key;
+

http://git-wip-us.apache.org/repos/asf/hive/blob/b5ba8273/ql/src/test/queries/clientpositive/explainanalyze_2.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/explainanalyze_2.q b/ql/src/test/queries/clientpositive/explainanalyze_2.q
index b764d7d..dd515ec 100644
--- a/ql/src/test/queries/clientpositive/explainanalyze_2.q
+++ b/ql/src/test/queries/clientpositive/explainanalyze_2.q
@@ -1,7 +1,6 @@
 set hive.map.aggr=false;
 
 set hive.strict.checks.bucketing=false;
-
 set hive.explain.user=true;
 
 explain analyze
@@ -139,13 +138,6 @@ INSERT OVERWRITE TABLE DEST2 SELECT unionsrc.key, unionsrc.value, COUNT(DISTINCT
 
 explain analyze FROM UNIQUEJOIN PRESERVE src a (a.key), PRESERVE src1 b (b.key), PRESERVE srcpart c (c.key) SELECT a.key, b.key, c.key;
 
-set hive.entity.capture.transform=true;
-
-explain analyze
-SELECT 
-TRANSFORM(a.key, a.value) USING 'cat' AS (tkey, tvalue)
-FROM src a join src b
-on a.key = b.key;
 
 explain analyze
 FROM (

http://git-wip-us.apache.org/repos/asf/hive/blob/b5ba8273/ql/src/test/queries/clientpositive/unionDistinct_1.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/unionDistinct_1.q b/ql/src/test/queries/clientpositive/unionDistinct_1.q
index f2a0dc1..4978b56 100644
--- a/ql/src/test/queries/clientpositive/unionDistinct_1.q
+++ b/ql/src/test/queries/clientpositive/unionDistinct_1.q
@@ -1,3 +1,4 @@
+set hive.llap.execution.mode=auto;
 set hive.mapred.mode=nonstrict;
 set hive.explain.user=false;
 -- SORT_QUERY_RESULTS
@@ -27,27 +28,6 @@ insert overwrite table tmptable
 
 select * from tmptable x sort by x.key;
 
--- union11.q
-
- 
--- SORT_BEFORE_DIFF
--- union case: all subqueries are a map-reduce jobs, 3 way union, same input for all sub-queries, followed by reducesink
-
-explain 
-  select unionsrc.key, count(1) FROM (select 'tst1' as key, count(1) as value from src s1
-                                        UNION DISTINCT  
-                                            select 'tst2' as key, count(1) as value from src s2
-                                        UNION DISTINCT
-                                            select 'tst3' as key, count(1) as value from src s3) unionsrc group by unionsrc.key;
-
-
-  select unionsrc.key, count(1) FROM (select 'tst1' as key, count(1) as value from src s1
-                                        UNION DISTINCT  
-                                            select 'tst2' as key, count(1) as value from src s2
-                                        UNION DISTINCT
-                                            select 'tst3' as key, count(1) as value from src s3) unionsrc group by unionsrc.key;
-
-
 
 -- union12.q
 
@@ -85,110 +65,6 @@ explain
 
 select unionsrc.key, unionsrc.value FROM (select s1.key as key, s1.value as value from src s1 UNION DISTINCT  
                                           select s2.key as key, s2.value as value from src s2) unionsrc;
--- union14.q
-
- 
--- SORT_BEFORE_DIFF
--- union case: 1 subquery is a map-reduce job, different inputs for sub-queries, followed by reducesink
-
-explain 
-  select unionsrc.key, count(1) FROM (select s2.key as key, s2.value as value from src1 s2
-                                        UNION DISTINCT  
-                                      select 'tst1' as key, cast(count(1) as string) as value from src s1) 
-  unionsrc group by unionsrc.key;
-
-
-
-  select unionsrc.key, count(1) FROM (select s2.key as key, s2.value as value from src1 s2
-                                        UNION DISTINCT  
-                                      select 'tst1' as key, cast(count(1) as string) as value from src s1) 
-  unionsrc group by unionsrc.key;
--- union15.q
-
- 
--- SORT_BEFORE_DIFF
--- union case: 1 subquery is a map-reduce job, different inputs for sub-queries, followed by reducesink
-
-explain 
-  select unionsrc.key, count(1) FROM (select 'tst1' as key, cast(count(1) as string) as value from src s1
-                                        UNION DISTINCT  
-                                            select s2.key as key, s2.value as value from src1 s2
-                                        UNION DISTINCT  
-                                            select s3.key as key, s3.value as value from src1 s3) unionsrc group by unionsrc.key;
-
-  select unionsrc.key, count(1) FROM (select 'tst1' as key, cast(count(1) as string) as value from src s1
-                                        UNION DISTINCT  
-                                            select s2.key as key, s2.value as value from src1 s2
-                                        UNION DISTINCT  
-                                            select s3.key as key, s3.value as value from src1 s3) unionsrc group by unionsrc.key;
-
-
--- union16.q
-
--- SORT_BEFORE_DIFF
-EXPLAIN
-SELECT count(1) FROM (
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src) src;
-
-
-SELECT count(1) FROM (
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src UNION DISTINCT
-  SELECT key, value FROM src) src;
 -- union17.q
 
 CREATE TABLE DEST1(key STRING, value STRING) STORED AS TEXTFILE;
@@ -261,76 +137,6 @@ SELECT DEST119.* FROM DEST119 SORT BY DEST119.key, DEST119.value;
 SELECT DEST219.* FROM DEST219 SORT BY DEST219.key, DEST219.val1, DEST219.val2;
 
 
-
--- union2.q
-
--- SORT_BEFORE_DIFF
--- union case: both subqueries are map-reduce jobs on same input, followed by reduce sink
-
-explain 
-  select count(1) FROM (select s1.key as key, s1.value as value from src s1 UNION DISTINCT  
-                        select s2.key as key, s2.value as value from src s2) unionsrc;
-
-select count(1) FROM (select s1.key as key, s1.value as value from src s1 UNION DISTINCT  
-                      select s2.key as key, s2.value as value from src s2) unionsrc;
--- union20.q
-
--- SORT_BEFORE_DIFF
--- union :map-reduce sub-queries followed by join
-
-explain 
-SELECT unionsrc1.key, unionsrc1.value, unionsrc2.key, unionsrc2.value
-FROM (select 'tst1' as key, cast(count(1) as string) as value from src s1
-                         UNION DISTINCT  
-      select s2.key as key, s2.value as value from src s2 where s2.key < 10) unionsrc1 
-JOIN 
-     (select 'tst1' as key, cast(count(1) as string) as value from src s3
-                         UNION DISTINCT  
-      select s4.key as key, s4.value as value from src s4 where s4.key < 10) unionsrc2
-ON (unionsrc1.key = unionsrc2.key);
-
-SELECT unionsrc1.key, unionsrc1.value, unionsrc2.key, unionsrc2.value
-FROM (select 'tst1' as key, cast(count(1) as string) as value from src s1
-                         UNION DISTINCT  
-      select s2.key as key, s2.value as value from src s2 where s2.key < 10) unionsrc1 
-JOIN 
-     (select 'tst1' as key, cast(count(1) as string) as value from src s3
-                         UNION DISTINCT  
-      select s4.key as key, s4.value as value from src s4 where s4.key < 10) unionsrc2
-ON (unionsrc1.key = unionsrc2.key);
--- union21.q
-
--- SORT_BEFORE_DIFF
--- union of constants, udf outputs, and columns from text table and thrift table
-
-explain
-SELECT key, count(1)
-FROM (
-  SELECT '1' as key from src
-  UNION DISTINCT
-  SELECT reverse(key) as key from src
-  UNION DISTINCT
-  SELECT key as key from src
-  UNION DISTINCT
-  SELECT astring as key from src_thrift
-  UNION DISTINCT
-  SELECT lstring[0] as key from src_thrift
-) union_output
-GROUP BY key;
-
-SELECT key, count(1)
-FROM (
-  SELECT '1' as key from src
-  UNION DISTINCT
-  SELECT reverse(key) as key from src
-  UNION DISTINCT
-  SELECT key as key from src
-  UNION DISTINCT
-  SELECT astring as key from src_thrift
-  UNION DISTINCT
-  SELECT lstring[0] as key from src_thrift
-) union_output
-GROUP BY key;
 -- union22.q
 
 -- SORT_QUERY_RESULTS
@@ -819,11 +625,8 @@ insert overwrite table t6
 select * from t5;
 select * from t6;
 
-drop table t1;
-drop table t2;
 
-create table t1 as select * from src where key < 10;
-create table t2 as select key, count(1) as cnt from src where key < 10 group by key;
+create table t9 as select key, count(1) as cnt from src where key < 10 group by key;
 
 create table t7(c1 string, cnt int);
 create table t8(c1 string, cnt int);
@@ -833,7 +636,7 @@ from
 (
  select key as c1, count(1) as cnt from t1 group by key
    UNION DISTINCT
- select key as c1, cnt from t2
+ select key as c1, cnt from t9
 ) x
 insert overwrite table t7
   select c1, count(1) group by c1
@@ -844,7 +647,7 @@ from
 (
  select key as c1, count(1) as cnt from t1 group by key
    UNION DISTINCT
- select key as c1, cnt from t2
+ select key as c1, cnt from t9
 ) x
 insert overwrite table t7
   select c1, count(1) group by c1
@@ -860,13 +663,6 @@ select * from t8;
 -- This tests various union queries which have columns on one side of the query
 -- being of double type and those on the other side another
 
-drop table if exists t1;
-
-drop table if exists t2;
-
-CREATE TABLE t1 AS SELECT * FROM src WHERE key < 10;
-CREATE TABLE t2 AS SELECT * FROM src WHERE key < 10;
-
 -- Test simple union with double
 EXPLAIN
 SELECT * FROM 
@@ -1035,108 +831,5 @@ SELECT * FROM (
   UNION DISTINCT
   SELECT key,value FROM (SELECT * FROM (SELECT * FROM src10_3) sub2 UNION DISTINCT SELECT * FROM src10_4 ) alias0
 ) alias1;
--- union4.q
-
- 
-
--- union case: both subqueries are map-reduce jobs on same input, followed by filesink
-
-drop table if exists tmptable;
-
-create table tmptable(key string, value int);
-
-explain 
-insert overwrite table tmptable
-  select unionsrc.key, unionsrc.value FROM (select 'tst1' as key, count(1) as value from src s1
-                                        UNION DISTINCT  
-                                            select 'tst2' as key, count(1) as value from src s2) unionsrc;
-
-insert overwrite table tmptable
-select unionsrc.key, unionsrc.value FROM (select 'tst1' as key, count(1) as value from src s1
-                                        UNION DISTINCT  
-                                          select 'tst2' as key, count(1) as value from src s2) unionsrc;
-
-select * from tmptable x sort by x.key;
-
-
--- union5.q
-
- 
--- SORT_BEFORE_DIFF
--- union case: both subqueries are map-reduce jobs on same input, followed by reduce sink
-
-explain 
-  select unionsrc.key, count(1) FROM (select 'tst1' as key, count(1) as value from src s1
-                                    UNION DISTINCT  
-                                      select 'tst2' as key, count(1) as value from src s2) unionsrc group by unionsrc.key;
-
-select unionsrc.key, count(1) FROM (select 'tst1' as key, count(1) as value from src s1
-                                  UNION DISTINCT  
-                                    select 'tst2' as key, count(1) as value from src s2) unionsrc group by unionsrc.key;
--- union6.q
 
- 
-
--- union case: 1 subquery is a map-reduce job, different inputs for sub-queries, followed by filesink
-
-drop table if exists tmptable;
-
-create table tmptable(key string, value string);
-
-explain 
-insert overwrite table tmptable
-  select unionsrc.key, unionsrc.value FROM (select 'tst1' as key, cast(count(1) as string) as value from src s1
-                                        UNION DISTINCT  
-                                            select s2.key as key, s2.value as value from src1 s2) unionsrc;
-
-insert overwrite table tmptable
-select unionsrc.key, unionsrc.value FROM (select 'tst1' as key, cast(count(1) as string) as value from src s1
-                                      UNION DISTINCT  
-                                          select s2.key as key, s2.value as value from src1 s2) unionsrc;
-
-select * from tmptable x sort by x.key, x.value;
-
-
--- union7.q
-
- 
-
--- SORT_BEFORE_DIFF
--- union case: 1 subquery is a map-reduce job, different inputs for sub-queries, followed by reducesink
-
-explain 
-  select unionsrc.key, count(1) FROM (select 'tst1' as key, cast(count(1) as string) as value from src s1
-                                        UNION DISTINCT  
-                                            select s2.key as key, s2.value as value from src1 s2) unionsrc group by unionsrc.key;
-
-select unionsrc.key, count(1) FROM (select 'tst1' as key, cast(count(1) as string) as value from src s1
-                                      UNION DISTINCT  
-                                    select s2.key as key, s2.value as value from src1 s2) unionsrc group by unionsrc.key;
-
-
--- union8.q
-
--- SORT_BEFORE_DIFF
--- union case: all subqueries are a map-only jobs, 3 way union, same input for all sub-queries, followed by filesink
-
-explain 
-  select unionsrc.key, unionsrc.value FROM (select s1.key as key, s1.value as value from src s1 UNION DISTINCT  
-                                            select s2.key as key, s2.value as value from src s2 UNION DISTINCT  
-                                            select s3.key as key, s3.value as value from src s3) unionsrc;
-
-select unionsrc.key, unionsrc.value FROM (select s1.key as key, s1.value as value from src s1 UNION DISTINCT  
-                                          select s2.key as key, s2.value as value from src s2 UNION DISTINCT  
-                                          select s3.key as key, s3.value as value from src s3) unionsrc;
--- union9.q
-
--- SORT_BEFORE_DIFF
--- union case: all subqueries are a map-only jobs, 3 way union, same input for all sub-queries, followed by reducesink
-
-explain 
-  select count(1) FROM (select s1.key as key, s1.value as value from src s1 UNION DISTINCT  
-                        select s2.key as key, s2.value as value from src s2 UNION DISTINCT
-                        select s3.key as key, s3.value as value from src s3) unionsrc;
 
-  select count(1) FROM (select s1.key as key, s1.value as value from src s1 UNION DISTINCT  
-                        select s2.key as key, s2.value as value from src s2 UNION DISTINCT
-                        select s3.key as key, s3.value as value from src s3) unionsrc;

http://git-wip-us.apache.org/repos/asf/hive/blob/b5ba8273/ql/src/test/queries/clientpositive/unionDistinct_2.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/unionDistinct_2.q b/ql/src/test/queries/clientpositive/unionDistinct_2.q
index 324bf68..da47d38 100644
--- a/ql/src/test/queries/clientpositive/unionDistinct_2.q
+++ b/ql/src/test/queries/clientpositive/unionDistinct_2.q
@@ -6,21 +6,6 @@ CREATE TABLE u2 as select key, value from src order by key limit 3;
 
 CREATE TABLE u3 as select key, value from src order by key desc limit 5;
 
-select * from u1;
-
-select * from u2;
-
-select * from u3;
-
-select key, value from 
-(
-select key, value from u1
-union all
-select key, value from u2
-union all
-select key as key, value from u3
-) tab;
-
 select key, value from 
 (
 select key, value from u1
@@ -57,14 +42,6 @@ union
 select key as key, value from u3
 ) tab;
 
-select distinct * from 
-(
-select key, value from u1
-union all 
-select key, value from u2
-union all
-select key as key, value from u3
-) tab;
 
 select distinct * from 
 (

http://git-wip-us.apache.org/repos/asf/hive/blob/b5ba8273/ql/src/test/queries/clientpositive/unionDistinct_3.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/unionDistinct_3.q b/ql/src/test/queries/clientpositive/unionDistinct_3.q
new file mode 100644
index 0000000..e3cf236
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/unionDistinct_3.q
@@ -0,0 +1,182 @@
+set hive.mapred.mode=nonstrict;
+set hive.explain.user=false;
+
+-- union2.q
+
+-- union case: both subqueries are map-reduce jobs on same input, followed by reduce sink
+
+explain 
+  select count(1) FROM (select s1.key as key, s1.value as value from src s1 UNION DISTINCT  
+                        select s2.key as key, s2.value as value from src s2) unionsrc;
+
+select count(1) FROM (select s1.key as key, s1.value as value from src s1 UNION DISTINCT  
+                      select s2.key as key, s2.value as value from src s2) unionsrc;
+
+-- union6.q
+
+ 
+
+-- union case: 1 subquery is a map-reduce job, different inputs for sub-queries, followed by filesink
+
+drop table if exists tmptable;
+
+create table tmptable(key string, value string);
+
+explain 
+insert overwrite table tmptable
+  select unionsrc.key, unionsrc.value FROM (select 'tst1' as key, cast(count(1) as string) as value from src s1
+                                        UNION DISTINCT  
+                                            select s2.key as key, s2.value as value from src1 s2) unionsrc;
+
+insert overwrite table tmptable
+select unionsrc.key, unionsrc.value FROM (select 'tst1' as key, cast(count(1) as string) as value from src s1
+                                      UNION DISTINCT  
+                                          select s2.key as key, s2.value as value from src1 s2) unionsrc;
+
+select * from tmptable x sort by x.key, x.value;
+
+drop table if exists tmptable;
+
+
+-- union8.q
+
+-- union case: all subqueries are a map-only jobs, 3 way union, same input for all sub-queries, followed by filesink
+
+explain 
+  select unionsrc.key, unionsrc.value FROM (select s1.key as key, s1.value as value from src s1 UNION DISTINCT  
+                                            select s2.key as key, s2.value as value from src s2 UNION DISTINCT  
+                                            select s3.key as key, s3.value as value from src s3) unionsrc;
+
+select unionsrc.key, unionsrc.value FROM (select s1.key as key, s1.value as value from src s1 UNION DISTINCT  
+                                          select s2.key as key, s2.value as value from src s2 UNION DISTINCT  
+                                          select s3.key as key, s3.value as value from src s3) unionsrc;
+
+-- union11.q
+
+ 
+-- union case: all subqueries are a map-reduce jobs, 3 way union, same input for all sub-queries, followed by reducesink
+
+explain 
+  select unionsrc.key, count(1) FROM (select 'tst1' as key, count(1) as value from src s1
+                                        UNION DISTINCT  
+                                            select 'tst2' as key, count(1) as value from src s2
+                                        UNION DISTINCT
+                                            select 'tst3' as key, count(1) as value from src s3) unionsrc group by unionsrc.key;
+
+
+  select unionsrc.key, count(1) FROM (select 'tst1' as key, count(1) as value from src s1
+                                        UNION DISTINCT  
+                                            select 'tst2' as key, count(1) as value from src s2
+                                        UNION DISTINCT
+                                            select 'tst3' as key, count(1) as value from src s3) unionsrc group by unionsrc.key;
+
+-- union14.q
+
+ 
+-- union case: 1 subquery is a map-reduce job, different inputs for sub-queries, followed by reducesink
+
+explain 
+  select unionsrc.key, count(1) FROM (select s2.key as key, s2.value as value from src1 s2
+                                        UNION DISTINCT  
+                                      select 'tst1' as key, cast(count(1) as string) as value from src s1) 
+  unionsrc group by unionsrc.key;
+
+
+
+  select unionsrc.key, count(1) FROM (select s2.key as key, s2.value as value from src1 s2
+                                        UNION DISTINCT  
+                                      select 'tst1' as key, cast(count(1) as string) as value from src s1) 
+  unionsrc group by unionsrc.key;
+-- union15.q
+
+ 
+-- union case: 1 subquery is a map-reduce job, different inputs for sub-queries, followed by reducesink
+
+explain 
+  select unionsrc.key, count(1) FROM (select 'tst1' as key, cast(count(1) as string) as value from src s1
+                                        UNION DISTINCT  
+                                            select s2.key as key, s2.value as value from src1 s2
+                                        UNION DISTINCT  
+                                            select s3.key as key, s3.value as value from src1 s3) unionsrc group by unionsrc.key;
+
+  select unionsrc.key, count(1) FROM (select 'tst1' as key, cast(count(1) as string) as value from src s1
+                                        UNION DISTINCT  
+                                            select s2.key as key, s2.value as value from src1 s2
+                                        UNION DISTINCT  
+                                            select s3.key as key, s3.value as value from src1 s3) unionsrc group by unionsrc.key;
+
+-- union16.q
+
+EXPLAIN
+SELECT count(1) FROM (
+  SELECT key, value FROM src UNION DISTINCT
+  SELECT key, value FROM src UNION DISTINCT
+  SELECT key, value FROM src UNION DISTINCT
+  SELECT key, value FROM src UNION DISTINCT
+  SELECT key, value FROM src) src;
+
+
+SELECT count(1) FROM (
+  SELECT key, value FROM src UNION DISTINCT
+  SELECT key, value FROM src UNION DISTINCT
+  SELECT key, value FROM src UNION DISTINCT
+  SELECT key, value FROM src UNION DISTINCT
+  SELECT key, value FROM src) src;
+
+-- union20.q
+
+-- union :map-reduce sub-queries followed by join
+
+explain 
+SELECT unionsrc1.key, unionsrc1.value, unionsrc2.key, unionsrc2.value
+FROM (select 'tst1' as key, cast(count(1) as string) as value from src s1
+                         UNION DISTINCT  
+      select s2.key as key, s2.value as value from src s2 where s2.key < 10) unionsrc1 
+JOIN 
+     (select 'tst1' as key, cast(count(1) as string) as value from src s3
+                         UNION DISTINCT  
+      select s4.key as key, s4.value as value from src s4 where s4.key < 10) unionsrc2
+ON (unionsrc1.key = unionsrc2.key);
+
+SELECT unionsrc1.key, unionsrc1.value, unionsrc2.key, unionsrc2.value
+FROM (select 'tst1' as key, cast(count(1) as string) as value from src s1
+                         UNION DISTINCT  
+      select s2.key as key, s2.value as value from src s2 where s2.key < 10) unionsrc1 
+JOIN 
+     (select 'tst1' as key, cast(count(1) as string) as value from src s3
+                         UNION DISTINCT  
+      select s4.key as key, s4.value as value from src s4 where s4.key < 10) unionsrc2
+ON (unionsrc1.key = unionsrc2.key);
+-- union21.q
+
+-- union of constants, udf outputs, and columns from text table and thrift table
+
+explain
+SELECT key, count(1)
+FROM (
+  SELECT '1' as key from src
+  UNION DISTINCT
+  SELECT reverse(key) as key from src
+  UNION DISTINCT
+  SELECT key as key from src
+  UNION DISTINCT
+  SELECT astring as key from src_thrift
+  UNION DISTINCT
+  SELECT lstring[0] as key from src_thrift
+) union_output
+GROUP BY key;
+
+SELECT key, count(1)
+FROM (
+  SELECT '1' as key from src
+  UNION DISTINCT
+  SELECT reverse(key) as key from src
+  UNION DISTINCT
+  SELECT key as key from src
+  UNION DISTINCT
+  SELECT astring as key from src_thrift
+  UNION DISTINCT
+  SELECT lstring[0] as key from src_thrift
+) union_output
+GROUP BY key;
+