You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by na...@apache.org on 2013/04/09 07:51:26 UTC

svn commit: r1465892 - in /hive/trunk/ql/src/test: queries/clientpositive/mapjoin_test_outer.q results/clientpositive/mapjoin_test_outer.q.out

Author: namit
Date: Tue Apr  9 05:51:25 2013
New Revision: 1465892

URL: http://svn.apache.org/r1465892
Log:
HIVE-4314 Result of mapjoin_test_outer.q is not deterministic
(Navis via namit)


Modified:
    hive/trunk/ql/src/test/queries/clientpositive/mapjoin_test_outer.q
    hive/trunk/ql/src/test/results/clientpositive/mapjoin_test_outer.q.out

Modified: hive/trunk/ql/src/test/queries/clientpositive/mapjoin_test_outer.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/mapjoin_test_outer.q?rev=1465892&r1=1465891&r2=1465892&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/mapjoin_test_outer.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/mapjoin_test_outer.q Tue Apr  9 05:51:25 2013
@@ -12,43 +12,43 @@ insert into table dest_2 select * from d
 SELECT * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key;
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;
 
 explain
 SELECT /*+ mapjoin(src1, src2) */ * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key;
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;
 
 SELECT /*+ mapjoin(src1, src2) */ * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key;
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;
 
 SELECT /*+ mapjoin(src1, src2) */ * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src1.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key;
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;
 
 set hive.auto.convert.join = true;
 
 SELECT * FROM src1
   LEFT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src1.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key;
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;
 
 SELECT * FROM src1
   LEFT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key;
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;
 
 explain
 SELECT * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key;
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;
 
 SELECT * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key;
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;

Modified: hive/trunk/ql/src/test/results/clientpositive/mapjoin_test_outer.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/mapjoin_test_outer.q.out?rev=1465892&r1=1465891&r2=1465892&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/mapjoin_test_outer.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/mapjoin_test_outer.q.out Tue Apr  9 05:51:25 2013
@@ -55,7 +55,7 @@ POSTHOOK: Lineage: dest_2.value SIMPLE [
 PREHOOK: query: SELECT * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
 PREHOOK: type: QUERY
 PREHOOK: Input: default@dest_1
 PREHOOK: Input: default@dest_2
@@ -64,7 +64,7 @@ PREHOOK: Input: default@src1
 POSTHOOK: query: SELECT * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@dest_1
 POSTHOOK: Input: default@dest_2
@@ -77,22 +77,6 @@ POSTHOOK: Lineage: dest_1.value SIMPLE [
 POSTHOOK: Lineage: dest_2.key SIMPLE [(dest_1)dest_1.FieldSchema(name:key, type:string, comment:null), ]
 POSTHOOK: Lineage: dest_2.value SIMPLE [(dest_1)dest_1.FieldSchema(name:value, type:string, comment:null), ]
 NULL	NULL	333444	555666	333444	555666
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
 					
 					
 					
@@ -125,54 +109,6 @@ NULL	NULL	333444	555666	333444	555666
 					
 					
 					
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
 					
 					
 					
@@ -205,22 +141,38 @@ NULL	NULL	333444	555666	333444	555666
 					
 					
 					
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
 	val_265				
 	val_265				
 	val_265				
@@ -237,6 +189,54 @@ NULL	NULL	333444	555666	333444	555666
 	val_265				
 	val_265				
 	val_265				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
 128		128		128	
 146	val_146	146	val_146	146	val_146
 224		224		224	
@@ -245,13 +245,13 @@ PREHOOK: query: explain
 SELECT /*+ mapjoin(src1, src2) */ * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
 PREHOOK: type: QUERY
 POSTHOOK: query: explain
 SELECT /*+ mapjoin(src1, src2) */ * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
 POSTHOOK: type: QUERY
 POSTHOOK: Lineage: dest_1.key SIMPLE [(src1)src1.FieldSchema(name:key, type:string, comment:default), ]
 POSTHOOK: Lineage: dest_1.key SIMPLE []
@@ -260,7 +260,7 @@ POSTHOOK: Lineage: dest_1.value SIMPLE [
 POSTHOOK: Lineage: dest_2.key SIMPLE [(dest_1)dest_1.FieldSchema(name:key, type:string, comment:null), ]
 POSTHOOK: Lineage: dest_2.value SIMPLE [(dest_1)dest_1.FieldSchema(name:value, type:string, comment:null), ]
 ABSTRACT SYNTAX TREE:
-  (TOK_QUERY (TOK_FROM (TOK_JOIN (TOK_RIGHTOUTERJOIN (TOK_TABREF (TOK_TABNAME src1)) (TOK_TABREF (TOK_TABNAME dest_1) src2) (= (. (TOK_TABLE_OR_COL src1) key) (. (TOK_TABLE_OR_COL src2) key))) (TOK_TABREF (TOK_TABNAME dest_2) src3) (= (. (TOK_TABLE_OR_COL src2) key) (. (TOK_TABLE_OR_COL src3) key)))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_HINTLIST (TOK_HINT TOK_MAPJOIN (TOK_HINTARGLIST src1 src2))) (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_SORTBY (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src1) key)) (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src2) key)) (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src3) key)))))
+  (TOK_QUERY (TOK_FROM (TOK_JOIN (TOK_RIGHTOUTERJOIN (TOK_TABREF (TOK_TABNAME src1)) (TOK_TABREF (TOK_TABNAME dest_1) src2) (= (. (TOK_TABLE_OR_COL src1) key) (. (TOK_TABLE_OR_COL src2) key))) (TOK_TABREF (TOK_TABNAME dest_2) src3) (= (. (TOK_TABLE_OR_COL src2) key) (. (TOK_TABLE_OR_COL src3) key)))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_HINTLIST (TOK_HINT TOK_MAPJOIN (TOK_HINTARGLIST src1 src2))) (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_SORTBY (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src1) key)) (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src1) value)) (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src2) key)) (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src2) value)) (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src3) key)) (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src3) value)))))
 
 STAGE DEPENDENCIES:
   Stage-4 is a root stage
@@ -347,11 +347,17 @@ STAGE PLANS:
                   key expressions:
                         expr: _col0
                         type: string
+                        expr: _col1
+                        type: string
                         expr: _col2
                         type: string
+                        expr: _col3
+                        type: string
                         expr: _col4
                         type: string
-                  sort order: +++
+                        expr: _col5
+                        type: string
+                  sort order: ++++++
                   tag: -1
                   value expressions:
                         expr: _col0
@@ -385,7 +391,7 @@ STAGE PLANS:
 PREHOOK: query: SELECT /*+ mapjoin(src1, src2) */ * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
 PREHOOK: type: QUERY
 PREHOOK: Input: default@dest_1
 PREHOOK: Input: default@dest_2
@@ -394,7 +400,7 @@ PREHOOK: Input: default@src1
 POSTHOOK: query: SELECT /*+ mapjoin(src1, src2) */ * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@dest_1
 POSTHOOK: Input: default@dest_2
@@ -411,30 +417,6 @@ NULL	NULL	333444	555666	333444	555666
 					
 					
 					
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
 					
 					
 					
@@ -451,30 +433,6 @@ NULL	NULL	333444	555666	333444	555666
 					
 					
 					
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
 					
 					
 					
@@ -490,30 +448,6 @@ NULL	NULL	333444	555666	333444	555666
 					
 					
 					
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
 					
 					
 					
@@ -530,43 +464,115 @@ NULL	NULL	333444	555666	333444	555666
 					
 					
 					
-	val_27				
-	val_27				
-	val_27				
-	val_27				
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
 	val_165				
 	val_165				
 	val_165				
 	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
 	val_409				
 	val_409				
 	val_409				
-	val_409				
 	val_484				
 	val_484				
 	val_484				
 	val_484				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-					
-					
-					
-					
-					
-					
-					
-					
-					
-					
-					
-					
-					
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
 128		128		128	
 146	val_146	146	val_146	146	val_146
 224		224		224	
@@ -574,7 +580,7 @@ NULL	NULL	333444	555666	333444	555666
 PREHOOK: query: SELECT /*+ mapjoin(src1, src2) */ * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src1.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
 PREHOOK: type: QUERY
 PREHOOK: Input: default@dest_1
 PREHOOK: Input: default@dest_2
@@ -583,7 +589,7 @@ PREHOOK: Input: default@src1
 POSTHOOK: query: SELECT /*+ mapjoin(src1, src2) */ * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src1.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@dest_1
 POSTHOOK: Input: default@dest_2
@@ -599,34 +605,6 @@ POSTHOOK: Lineage: dest_2.value SIMPLE [
 					
 					
 					
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-					
-					
-					
-					
 					
 					
 					
@@ -639,34 +617,6 @@ POSTHOOK: Lineage: dest_2.value SIMPLE [
 					
 					
 					
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-					
-					
-					
-					
 					
 					
 					
@@ -679,38 +629,6 @@ POSTHOOK: Lineage: dest_2.value SIMPLE [
 					
 					
 					
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-					
-					
-					
-					
-					
-					
-					
-					
 					
 					
 					
@@ -719,30 +637,6 @@ POSTHOOK: Lineage: dest_2.value SIMPLE [
 					
 					
 					
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
 					
 					
 					
@@ -755,34 +649,6 @@ POSTHOOK: Lineage: dest_2.value SIMPLE [
 					
 					
 					
-128		128		128	
-146	val_146	146	val_146	146	val_146
-224		224		224	
-369		369		369	
-PREHOOK: query: SELECT * FROM src1
-  LEFT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
-  JOIN dest_2 src3 ON (src1.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dest_1
-PREHOOK: Input: default@dest_2
-PREHOOK: Input: default@src1
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT * FROM src1
-  LEFT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
-  JOIN dest_2 src3 ON (src1.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dest_1
-POSTHOOK: Input: default@dest_2
-POSTHOOK: Input: default@src1
-#### A masked pattern was here ####
-POSTHOOK: Lineage: dest_1.key SIMPLE [(src1)src1.FieldSchema(name:key, type:string, comment:default), ]
-POSTHOOK: Lineage: dest_1.key SIMPLE []
-POSTHOOK: Lineage: dest_1.value SIMPLE [(src1)src1.FieldSchema(name:value, type:string, comment:default), ]
-POSTHOOK: Lineage: dest_1.value SIMPLE []
-POSTHOOK: Lineage: dest_2.key SIMPLE [(dest_1)dest_1.FieldSchema(name:key, type:string, comment:null), ]
-POSTHOOK: Lineage: dest_2.value SIMPLE [(dest_1)dest_1.FieldSchema(name:value, type:string, comment:null), ]
 					
 					
 					
@@ -799,22 +665,6 @@ POSTHOOK: Lineage: dest_2.value SIMPLE [
 					
 					
 					
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
 	val_165				
 	val_165				
 	val_165				
@@ -831,54 +681,6 @@ POSTHOOK: Lineage: dest_2.value SIMPLE [
 	val_165				
 	val_165				
 	val_165				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
 	val_193				
 	val_193				
 	val_193				
@@ -895,6 +697,98 @@ POSTHOOK: Lineage: dest_2.value SIMPLE [
 	val_193				
 	val_193				
 	val_193				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+128		128		128	
+146	val_146	146	val_146	146	val_146
+224		224		224	
+369		369		369	
+PREHOOK: query: SELECT * FROM src1
+  LEFT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src1.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dest_1
+PREHOOK: Input: default@dest_2
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM src1
+  LEFT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src1.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dest_1
+POSTHOOK: Input: default@dest_2
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: Lineage: dest_1.key SIMPLE [(src1)src1.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: dest_1.key SIMPLE []
+POSTHOOK: Lineage: dest_1.value SIMPLE [(src1)src1.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: dest_1.value SIMPLE []
+POSTHOOK: Lineage: dest_2.key SIMPLE [(dest_1)dest_1.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: dest_2.value SIMPLE [(dest_1)dest_1.FieldSchema(name:value, type:string, comment:null), ]
 					
 					
 					
@@ -943,34 +837,6 @@ POSTHOOK: Lineage: dest_2.value SIMPLE [
 					
 					
 					
-128		128		128	
-146	val_146	146	val_146	146	val_146
-224		224		224	
-369		369		369	
-PREHOOK: query: SELECT * FROM src1
-  LEFT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
-  JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key
-PREHOOK: type: QUERY
-PREHOOK: Input: default@dest_1
-PREHOOK: Input: default@dest_2
-PREHOOK: Input: default@src1
-#### A masked pattern was here ####
-POSTHOOK: query: SELECT * FROM src1
-  LEFT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
-  JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@dest_1
-POSTHOOK: Input: default@dest_2
-POSTHOOK: Input: default@src1
-#### A masked pattern was here ####
-POSTHOOK: Lineage: dest_1.key SIMPLE [(src1)src1.FieldSchema(name:key, type:string, comment:default), ]
-POSTHOOK: Lineage: dest_1.key SIMPLE []
-POSTHOOK: Lineage: dest_1.value SIMPLE [(src1)src1.FieldSchema(name:value, type:string, comment:default), ]
-POSTHOOK: Lineage: dest_1.value SIMPLE []
-POSTHOOK: Lineage: dest_2.key SIMPLE [(dest_1)dest_1.FieldSchema(name:key, type:string, comment:null), ]
-POSTHOOK: Lineage: dest_2.value SIMPLE [(dest_1)dest_1.FieldSchema(name:value, type:string, comment:null), ]
 					
 					
 					
@@ -987,22 +853,6 @@ POSTHOOK: Lineage: dest_2.value SIMPLE [
 					
 					
 					
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_27				
 	val_165				
 	val_165				
 	val_165				
@@ -1019,6 +869,54 @@ POSTHOOK: Lineage: dest_2.value SIMPLE [
 	val_165				
 	val_165				
 	val_165				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
 	val_409				
 	val_409				
 	val_409				
@@ -1051,38 +949,40 @@ POSTHOOK: Lineage: dest_2.value SIMPLE [
 	val_484				
 	val_484				
 	val_484				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
+128		128		128	
+146	val_146	146	val_146	146	val_146
+224		224		224	
+369		369		369	
+PREHOOK: query: SELECT * FROM src1
+  LEFT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src2.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dest_1
+PREHOOK: Input: default@dest_2
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM src1
+  LEFT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src2.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dest_1
+POSTHOOK: Input: default@dest_2
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: Lineage: dest_1.key SIMPLE [(src1)src1.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: dest_1.key SIMPLE []
+POSTHOOK: Lineage: dest_1.value SIMPLE [(src1)src1.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: dest_1.value SIMPLE []
+POSTHOOK: Lineage: dest_2.key SIMPLE [(dest_1)dest_1.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: dest_2.value SIMPLE [(dest_1)dest_1.FieldSchema(name:value, type:string, comment:null), ]
+					
+					
+					
+					
+					
+					
 					
 					
 					
@@ -1131,6 +1031,112 @@ POSTHOOK: Lineage: dest_2.value SIMPLE [
 					
 					
 					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
 128		128		128	
 146	val_146	146	val_146	146	val_146
 224		224		224	
@@ -1139,13 +1145,13 @@ PREHOOK: query: explain
 SELECT * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
 PREHOOK: type: QUERY
 POSTHOOK: query: explain
 SELECT * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
 POSTHOOK: type: QUERY
 POSTHOOK: Lineage: dest_1.key SIMPLE [(src1)src1.FieldSchema(name:key, type:string, comment:default), ]
 POSTHOOK: Lineage: dest_1.key SIMPLE []
@@ -1154,7 +1160,7 @@ POSTHOOK: Lineage: dest_1.value SIMPLE [
 POSTHOOK: Lineage: dest_2.key SIMPLE [(dest_1)dest_1.FieldSchema(name:key, type:string, comment:null), ]
 POSTHOOK: Lineage: dest_2.value SIMPLE [(dest_1)dest_1.FieldSchema(name:value, type:string, comment:null), ]
 ABSTRACT SYNTAX TREE:
-  (TOK_QUERY (TOK_FROM (TOK_JOIN (TOK_RIGHTOUTERJOIN (TOK_TABREF (TOK_TABNAME src1)) (TOK_TABREF (TOK_TABNAME dest_1) src2) (= (. (TOK_TABLE_OR_COL src1) key) (. (TOK_TABLE_OR_COL src2) key))) (TOK_TABREF (TOK_TABNAME dest_2) src3) (= (. (TOK_TABLE_OR_COL src2) key) (. (TOK_TABLE_OR_COL src3) key)))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_SORTBY (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src1) key)) (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src2) key)) (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src3) key)))))
+  (TOK_QUERY (TOK_FROM (TOK_JOIN (TOK_RIGHTOUTERJOIN (TOK_TABREF (TOK_TABNAME src1)) (TOK_TABREF (TOK_TABNAME dest_1) src2) (= (. (TOK_TABLE_OR_COL src1) key) (. (TOK_TABLE_OR_COL src2) key))) (TOK_TABREF (TOK_TABNAME dest_2) src3) (= (. (TOK_TABLE_OR_COL src2) key) (. (TOK_TABLE_OR_COL src3) key)))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_SORTBY (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src1) key)) (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src1) value)) (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src2) key)) (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src2) value)) (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src3) key)) (TOK_TABSORTCOLNAMEASC (. (TOK_TABLE_OR_COL src3) value)))))
 
 STAGE DEPENDENCIES:
   Stage-6 is a root stage
@@ -1255,11 +1261,17 @@ STAGE PLANS:
               key expressions:
                     expr: _col0
                     type: string
+                    expr: _col1
+                    type: string
                     expr: _col2
                     type: string
+                    expr: _col3
+                    type: string
                     expr: _col4
                     type: string
-              sort order: +++
+                    expr: _col5
+                    type: string
+              sort order: ++++++
               tag: -1
               value expressions:
                     expr: _col0
@@ -1291,7 +1303,7 @@ STAGE PLANS:
 PREHOOK: query: SELECT * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
 PREHOOK: type: QUERY
 PREHOOK: Input: default@dest_1
 PREHOOK: Input: default@dest_2
@@ -1300,7 +1312,7 @@ PREHOOK: Input: default@src1
 POSTHOOK: query: SELECT * FROM src1
   RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
   JOIN dest_2 src3 ON (src2.key = src3.key)
-  SORT BY src1.key, src2.key, src3.key
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@dest_1
 POSTHOOK: Input: default@dest_2
@@ -1317,30 +1329,6 @@ NULL	NULL	333444	555666	333444	555666
 					
 					
 					
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
 					
 					
 					
@@ -1357,30 +1345,6 @@ NULL	NULL	333444	555666	333444	555666
 					
 					
 					
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
 					
 					
 					
@@ -1396,30 +1360,6 @@ NULL	NULL	333444	555666	333444	555666
 					
 					
 					
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
 					
 					
 					
@@ -1436,30 +1376,6 @@ NULL	NULL	333444	555666	333444	555666
 					
 					
 					
-	val_27				
-	val_27				
-	val_27				
-	val_27				
-	val_165				
-	val_165				
-	val_165				
-	val_165				
-	val_409				
-	val_409				
-	val_409				
-	val_409				
-	val_484				
-	val_484				
-	val_484				
-	val_484				
-	val_265				
-	val_265				
-	val_265				
-	val_265				
-	val_193				
-	val_193				
-	val_193				
-	val_193				
 					
 					
 					
@@ -1473,6 +1389,102 @@ NULL	NULL	333444	555666	333444	555666
 					
 					
 					
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
 128		128		128	
 146	val_146	146	val_146	146	val_146
 224		224		224