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 2014/06/30 17:21:17 UTC

svn commit: r1606780 - in /hive/trunk/ql/src: java/org/apache/hadoop/hive/ql/ java/org/apache/hadoop/hive/ql/parse/ java/org/apache/hadoop/hive/ql/plan/ test/queries/clientpositive/ test/results/clientpositive/ test/results/compiler/plan/

Author: hashutosh
Date: Mon Jun 30 15:21:16 2014
New Revision: 1606780

URL: http://svn.apache.org/r1606780
Log:
HIVE-2597 : Repeated key in GROUP BY is erroneously displayed when using DISTINCT (Navis via Ashutosh Chauhan)

Added:
    hive/trunk/ql/src/test/queries/clientpositive/groupby_duplicate_key.q
    hive/trunk/ql/src/test/results/clientpositive/groupby_duplicate_key.q.out
Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java
    hive/trunk/ql/src/test/results/compiler/plan/groupby1.q.xml
    hive/trunk/ql/src/test/results/compiler/plan/groupby4.q.xml
    hive/trunk/ql/src/test/results/compiler/plan/groupby5.q.xml
    hive/trunk/ql/src/test/results/compiler/plan/groupby6.q.xml
    hive/trunk/ql/src/test/results/compiler/plan/join1.q.xml
    hive/trunk/ql/src/test/results/compiler/plan/join2.q.xml
    hive/trunk/ql/src/test/results/compiler/plan/join3.q.xml
    hive/trunk/ql/src/test/results/compiler/plan/join4.q.xml
    hive/trunk/ql/src/test/results/compiler/plan/join5.q.xml
    hive/trunk/ql/src/test/results/compiler/plan/join6.q.xml
    hive/trunk/ql/src/test/results/compiler/plan/join7.q.xml
    hive/trunk/ql/src/test/results/compiler/plan/join8.q.xml

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java?rev=1606780&r1=1606779&r2=1606780&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java Mon Jun 30 15:21:16 2014
@@ -19,6 +19,7 @@
 package org.apache.hadoop.hive.ql;
 
 import org.antlr.runtime.tree.Tree;
+import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.ql.metadata.HiveUtils;
 import org.apache.hadoop.hive.ql.parse.ASTNode;
 import org.apache.hadoop.hive.ql.parse.ASTNodeOrigin;
@@ -29,12 +30,6 @@ import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.antlr.runtime.tree.Tree;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.ql.metadata.HiveUtils;
-import org.apache.hadoop.hive.ql.parse.ASTNode;
-import org.apache.hadoop.hive.ql.parse.ASTNodeOrigin;
-
 /**
  * List of all error messages.
  * This list contains both compile time and run-time errors.
@@ -80,7 +75,6 @@ public enum ErrorMsg {
   INVALID_JOIN_CONDITION_2(10018, "Neither left nor right aliases encountered in JOIN"),
   INVALID_JOIN_CONDITION_3(10019, "OR not supported in JOIN currently"),
   INVALID_TRANSFORM(10020, "TRANSFORM with other SELECT columns not supported"),
-  DUPLICATE_GROUPBY_KEY(10021, "Repeated key in GROUP BY"),
   UNSUPPORTED_MULTIPLE_DISTINCTS(10022, "DISTINCT on different columns not supported" +
       " with skew in data"),
   NO_SUBQUERY_ALIAS(10023, "No alias for subquery"),

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java?rev=1606780&r1=1606779&r2=1606780&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java Mon Jun 30 15:21:16 2014
@@ -62,6 +62,7 @@ import org.apache.hadoop.hive.ql.QueryPr
 import org.apache.hadoop.hive.ql.exec.AbstractMapJoinOperator;
 import org.apache.hadoop.hive.ql.exec.ArchiveUtils;
 import org.apache.hadoop.hive.ql.exec.ColumnInfo;
+import org.apache.hadoop.hive.ql.exec.ExprNodeEvaluatorFactory;
 import org.apache.hadoop.hive.ql.exec.FetchTask;
 import org.apache.hadoop.hive.ql.exec.FileSinkOperator;
 import org.apache.hadoop.hive.ql.exec.FunctionInfo;
@@ -4131,6 +4132,8 @@ public class SemanticAnalyzer extends Ba
         reduceSinkInputRowResolver, reduceSinkOutputRowResolver, outputKeyColumnNames,
         colExprMap);
 
+    int keyLength = reduceKeys.size();
+
     // add a key for reduce sink
     if (groupingSetsPresent) {
       // Process grouping set for the reduce sink operator
@@ -4182,7 +4185,7 @@ public class SemanticAnalyzer extends Ba
     ReduceSinkOperator rsOp = (ReduceSinkOperator) putOpInsertMap(
         OperatorFactory.getAndMakeChild(
             PlanUtils.getReduceSinkDesc(reduceKeys,
-                groupingSetsPresent ? grpByExprs.size() + 1 : grpByExprs.size(),
+                groupingSetsPresent ? keyLength + 1 : keyLength,
                 reduceValues, distinctColIndices,
                 outputKeyColumnNames, outputValueColumnNames, true, -1, numPartitionFields,
                 numReducers),
@@ -4203,24 +4206,32 @@ public class SemanticAnalyzer extends Ba
       ASTNode grpbyExpr = grpByExprs.get(i);
       ExprNodeDesc inputExpr = genExprNodeDesc(grpbyExpr,
           reduceSinkInputRowResolver);
-      reduceKeys.add(inputExpr);
-      if (reduceSinkOutputRowResolver.getExpression(grpbyExpr) == null) {
-        outputKeyColumnNames.add(getColumnInternalName(reduceKeys.size() - 1));
-        String field = Utilities.ReduceField.KEY.toString() + "."
-            + getColumnInternalName(reduceKeys.size() - 1);
-        ColumnInfo colInfo = new ColumnInfo(field, reduceKeys.get(
-            reduceKeys.size() - 1).getTypeInfo(), null, false);
-        reduceSinkOutputRowResolver.putExpression(grpbyExpr, colInfo);
-        colExprMap.put(colInfo.getInternalName(), inputExpr);
-      } else {
-        throw new SemanticException(ErrorMsg.DUPLICATE_GROUPBY_KEY
-            .getMsg(grpbyExpr));
+      ColumnInfo prev = reduceSinkOutputRowResolver.getExpression(grpbyExpr);
+      if (prev != null && isDeterministic(inputExpr)) {
+        colExprMap.put(prev.getInternalName(), inputExpr);
+        continue;
       }
+      reduceKeys.add(inputExpr);
+      outputKeyColumnNames.add(getColumnInternalName(reduceKeys.size() - 1));
+      String field = Utilities.ReduceField.KEY.toString() + "."
+          + getColumnInternalName(reduceKeys.size() - 1);
+      ColumnInfo colInfo = new ColumnInfo(field, reduceKeys.get(
+          reduceKeys.size() - 1).getTypeInfo(), null, false);
+      reduceSinkOutputRowResolver.putExpression(grpbyExpr, colInfo);
+      colExprMap.put(colInfo.getInternalName(), inputExpr);
     }
 
     return reduceKeys;
   }
 
+  private boolean isDeterministic(ExprNodeDesc expr) throws SemanticException {
+    try {
+      return ExprNodeEvaluatorFactory.get(expr).isDeterministic();
+    } catch (Exception e) {
+      throw new SemanticException(e);
+    }
+  }
+
   private List<List<Integer>> getDistinctColIndicesForReduceSink(QBParseInfo parseInfo,
       String dest,
       List<ExprNodeDesc> reduceKeys, RowResolver reduceSinkInputRowResolver,
@@ -4326,6 +4337,8 @@ public class SemanticAnalyzer extends Ba
         reduceSinkInputRowResolver, reduceSinkOutputRowResolver, outputKeyColumnNames,
         colExprMap);
 
+    int keyLength = reduceKeys.size();
+
     List<List<Integer>> distinctColIndices = getDistinctColIndicesForReduceSink(parseInfo, dest,
         reduceKeys, reduceSinkInputRowResolver, reduceSinkOutputRowResolver, outputKeyColumnNames,
         colExprMap);
@@ -4373,8 +4386,8 @@ public class SemanticAnalyzer extends Ba
 
     ReduceSinkOperator rsOp = (ReduceSinkOperator) putOpInsertMap(
         OperatorFactory.getAndMakeChild(PlanUtils.getReduceSinkDesc(reduceKeys,
-            grpByExprs.size(), reduceValues, distinctColIndices,
-            outputKeyColumnNames, outputValueColumnNames, true, -1, grpByExprs.size(),
+            keyLength, reduceValues, distinctColIndices,
+            outputKeyColumnNames, outputValueColumnNames, true, -1, keyLength,
             -1), new RowSchema(reduceSinkOutputRowResolver
             .getColumnInfos()), inputOperatorInfo), reduceSinkOutputRowResolver);
     rsOp.setColumnExprMap(colExprMap);

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java?rev=1606780&r1=1606779&r2=1606780&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java Mon Jun 30 15:21:16 2014
@@ -739,20 +739,15 @@ public final class PlanUtils {
       List<String> outputKeyColumnNames, List<String> outputValueColumnNames,
       boolean includeKey, int tag,
       int numPartitionFields, int numReducers) throws SemanticException {
-    ArrayList<ExprNodeDesc> partitionCols = null;
 
+    ArrayList<ExprNodeDesc> partitionCols = new ArrayList<ExprNodeDesc>();
     if (numPartitionFields >= keyCols.size()) {
-      partitionCols = keyCols;
+      partitionCols.addAll(keyCols);
     } else if (numPartitionFields >= 0) {
-      partitionCols = new ArrayList<ExprNodeDesc>(numPartitionFields);
-      for (int i = 0; i < numPartitionFields; i++) {
-        partitionCols.add(keyCols.get(i));
-      }
+      partitionCols.addAll(keyCols.subList(0, numPartitionFields));
     } else {
       // numPartitionFields = -1 means random partitioning
-      partitionCols = new ArrayList<ExprNodeDesc>(1);
-      partitionCols.add(TypeCheckProcFactory.DefaultExprProcessor
-          .getFuncExprNodeDesc("rand"));
+      partitionCols.add(TypeCheckProcFactory.DefaultExprProcessor.getFuncExprNodeDesc("rand"));
     }
 
     StringBuilder order = new StringBuilder();

Added: hive/trunk/ql/src/test/queries/clientpositive/groupby_duplicate_key.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/groupby_duplicate_key.q?rev=1606780&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/groupby_duplicate_key.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/groupby_duplicate_key.q Mon Jun 30 15:21:16 2014
@@ -0,0 +1,13 @@
+explain
+select distinct key, "" as dummy1, "" as dummy2 from src tablesample (10 rows);
+
+select distinct key, "" as dummy1, "" as dummy2 from src tablesample (10 rows);
+
+explain
+create table dummy as
+select distinct key, "X" as dummy1, "X" as dummy2 from src tablesample (10 rows);
+
+create table dummy as
+select distinct key, "X" as dummy1, "X" as dummy2 from src tablesample (10 rows);
+
+select key,dummy1,dummy2 from dummy;

Added: hive/trunk/ql/src/test/results/clientpositive/groupby_duplicate_key.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/groupby_duplicate_key.q.out?rev=1606780&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/groupby_duplicate_key.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/groupby_duplicate_key.q.out Mon Jun 30 15:21:16 2014
@@ -0,0 +1,173 @@
+PREHOOK: query: explain
+select distinct key, "" as dummy1, "" as dummy2 from src tablesample (10 rows)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select distinct key, "" as dummy1, "" as dummy2 from src tablesample (10 rows)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Map Reduce
+      Map Operator Tree:
+          TableScan
+            alias: src
+            Row Limit Per Split: 10
+            Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
+            Select Operator
+              expressions: key (type: string)
+              outputColumnNames: key
+              Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
+              Group By Operator
+                keys: key (type: string), '' (type: string), '' (type: string)
+                mode: hash
+                outputColumnNames: _col0, _col1, _col2
+                Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
+                Reduce Output Operator
+                  key expressions: _col0 (type: string), _col2 (type: string)
+                  sort order: ++
+                  Map-reduce partition columns: _col0 (type: string), _col2 (type: string)
+                  Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
+      Reduce Operator Tree:
+        Group By Operator
+          keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col1 (type: string)
+          mode: mergepartial
+          outputColumnNames: _col0, _col1, _col2
+          Statistics: Num rows: 29 Data size: 2906 Basic stats: COMPLETE Column stats: NONE
+          Select Operator
+            expressions: _col0 (type: string), _col2 (type: string), _col2 (type: string)
+            outputColumnNames: _col0, _col1, _col2
+            Statistics: Num rows: 29 Data size: 2906 Basic stats: COMPLETE Column stats: NONE
+            File Output Operator
+              compressed: false
+              Statistics: Num rows: 29 Data size: 2906 Basic stats: COMPLETE Column stats: NONE
+              table:
+                  input format: org.apache.hadoop.mapred.TextInputFormat
+                  output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                  serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select distinct key, "" as dummy1, "" as dummy2 from src tablesample (10 rows)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select distinct key, "" as dummy1, "" as dummy2 from src tablesample (10 rows)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+165		
+238		
+255		
+27		
+278		
+311		
+409		
+484		
+86		
+98		
+PREHOOK: query: explain
+create table dummy as
+select distinct key, "X" as dummy1, "X" as dummy2 from src tablesample (10 rows)
+PREHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: query: explain
+create table dummy as
+select distinct key, "X" as dummy1, "X" as dummy2 from src tablesample (10 rows)
+POSTHOOK: type: CREATETABLE_AS_SELECT
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+  Stage-3 depends on stages: Stage-0
+  Stage-2 depends on stages: Stage-3
+
+STAGE PLANS:
+  Stage: Stage-1
+    Map Reduce
+      Map Operator Tree:
+          TableScan
+            alias: src
+            Row Limit Per Split: 10
+            Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
+            Select Operator
+              expressions: key (type: string)
+              outputColumnNames: key
+              Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
+              Group By Operator
+                keys: key (type: string), 'X' (type: string), 'X' (type: string)
+                mode: hash
+                outputColumnNames: _col0, _col1, _col2
+                Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
+                Reduce Output Operator
+                  key expressions: _col0 (type: string), _col2 (type: string)
+                  sort order: ++
+                  Map-reduce partition columns: _col0 (type: string), _col2 (type: string)
+                  Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
+      Reduce Operator Tree:
+        Group By Operator
+          keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col1 (type: string)
+          mode: mergepartial
+          outputColumnNames: _col0, _col1, _col2
+          Statistics: Num rows: 29 Data size: 2906 Basic stats: COMPLETE Column stats: NONE
+          Select Operator
+            expressions: _col0 (type: string), _col2 (type: string), _col2 (type: string)
+            outputColumnNames: _col0, _col1, _col2
+            Statistics: Num rows: 29 Data size: 2906 Basic stats: COMPLETE Column stats: NONE
+            File Output Operator
+              compressed: false
+              Statistics: Num rows: 29 Data size: 2906 Basic stats: COMPLETE Column stats: NONE
+              table:
+                  input format: org.apache.hadoop.mapred.TextInputFormat
+                  output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                  serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+                  name: default.dummy
+
+  Stage: Stage-0
+    Move Operator
+      files:
+          hdfs directory: true
+#### A masked pattern was here ####
+
+  Stage: Stage-3
+      Create Table Operator:
+        Create Table
+          columns: key string, dummy1 string, dummy2 string
+          input format: org.apache.hadoop.mapred.TextInputFormat
+          output format: org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat
+          name: dummy
+
+  Stage: Stage-2
+    Stats-Aggr Operator
+
+PREHOOK: query: create table dummy as
+select distinct key, "X" as dummy1, "X" as dummy2 from src tablesample (10 rows)
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src
+POSTHOOK: query: create table dummy as
+select distinct key, "X" as dummy1, "X" as dummy2 from src tablesample (10 rows)
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@dummy
+PREHOOK: query: select key,dummy1,dummy2 from dummy
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dummy
+#### A masked pattern was here ####
+POSTHOOK: query: select key,dummy1,dummy2 from dummy
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dummy
+#### A masked pattern was here ####
+165	X	X
+238	X	X
+255	X	X
+27	X	X
+278	X	X
+311	X	X
+409	X	X
+484	X	X
+86	X	X
+98	X	X

Modified: hive/trunk/ql/src/test/results/compiler/plan/groupby1.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/groupby1.q.xml?rev=1606780&r1=1606779&r2=1606780&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/groupby1.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/groupby1.q.xml Mon Jun 30 15:21:16 2014
@@ -363,7 +363,7 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="keyCols"> 
-                    <object id="ArrayList0" class="java.util.ArrayList"> 
+                    <object class="java.util.ArrayList"> 
                      <void method="add"> 
                       <object idref="ExprNodeColumnDesc0"/> 
                      </void> 
@@ -423,7 +423,11 @@
                     </object> 
                    </void> 
                    <void property="partitionCols"> 
-                    <object idref="ArrayList0"/> 
+                    <object class="java.util.ArrayList"> 
+                     <void method="add"> 
+                      <object idref="ExprNodeColumnDesc0"/> 
+                     </void> 
+                    </object> 
                    </void> 
                    <void property="tag"> 
                     <int>-1</int> 
@@ -615,7 +619,7 @@
                  </object> 
                 </void> 
                 <void property="listGroupingSets"> 
-                 <object id="ArrayList1" class="java.util.ArrayList"/> 
+                 <object id="ArrayList0" class="java.util.ArrayList"/> 
                 </void> 
                 <void property="memoryThreshold"> 
                  <float>0.9</float> 
@@ -1328,7 +1332,7 @@
            </object> 
           </void> 
           <void property="listGroupingSets"> 
-           <object idref="ArrayList1"/> 
+           <object idref="ArrayList0"/> 
           </void> 
           <void property="memoryThreshold"> 
            <float>0.9</float> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/groupby4.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/groupby4.q.xml?rev=1606780&r1=1606779&r2=1606780&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/groupby4.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/groupby4.q.xml Mon Jun 30 15:21:16 2014
@@ -197,7 +197,7 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="keyCols"> 
-                    <object id="ArrayList0" class="java.util.ArrayList"> 
+                    <object class="java.util.ArrayList"> 
                      <void method="add"> 
                       <object idref="ExprNodeColumnDesc0"/> 
                      </void> 
@@ -253,7 +253,11 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="partitionCols"> 
-                    <object idref="ArrayList0"/> 
+                    <object class="java.util.ArrayList"> 
+                     <void method="add"> 
+                      <object idref="ExprNodeColumnDesc0"/> 
+                     </void> 
+                    </object> 
                    </void> 
                    <void property="tag"> 
                     <int>-1</int> 
@@ -405,7 +409,7 @@
                  </object> 
                 </void> 
                 <void property="listGroupingSets"> 
-                 <object id="ArrayList1" class="java.util.ArrayList"/> 
+                 <object id="ArrayList0" class="java.util.ArrayList"/> 
                 </void> 
                 <void property="memoryThreshold"> 
                  <float>0.9</float> 
@@ -1009,7 +1013,7 @@
            </object> 
           </void> 
           <void property="listGroupingSets"> 
-           <object idref="ArrayList1"/> 
+           <object idref="ArrayList0"/> 
           </void> 
           <void property="memoryThreshold"> 
            <float>0.9</float> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/groupby5.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/groupby5.q.xml?rev=1606780&r1=1606779&r2=1606780&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/groupby5.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/groupby5.q.xml Mon Jun 30 15:21:16 2014
@@ -215,7 +215,7 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="keyCols"> 
-                    <object id="ArrayList0" class="java.util.ArrayList"> 
+                    <object class="java.util.ArrayList"> 
                      <void method="add"> 
                       <object idref="ExprNodeColumnDesc0"/> 
                      </void> 
@@ -275,7 +275,11 @@
                     </object> 
                    </void> 
                    <void property="partitionCols"> 
-                    <object idref="ArrayList0"/> 
+                    <object class="java.util.ArrayList"> 
+                     <void method="add"> 
+                      <object idref="ExprNodeColumnDesc0"/> 
+                     </void> 
+                    </object> 
                    </void> 
                    <void property="tag"> 
                     <int>-1</int> 
@@ -467,7 +471,7 @@
                  </object> 
                 </void> 
                 <void property="listGroupingSets"> 
-                 <object id="ArrayList1" class="java.util.ArrayList"/> 
+                 <object id="ArrayList0" class="java.util.ArrayList"/> 
                 </void> 
                 <void property="memoryThreshold"> 
                  <float>0.9</float> 
@@ -1203,7 +1207,7 @@
            </object> 
           </void> 
           <void property="listGroupingSets"> 
-           <object idref="ArrayList1"/> 
+           <object idref="ArrayList0"/> 
           </void> 
           <void property="memoryThreshold"> 
            <float>0.9</float> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/groupby6.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/groupby6.q.xml?rev=1606780&r1=1606779&r2=1606780&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/groupby6.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/groupby6.q.xml Mon Jun 30 15:21:16 2014
@@ -197,7 +197,7 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="keyCols"> 
-                    <object id="ArrayList0" class="java.util.ArrayList"> 
+                    <object class="java.util.ArrayList"> 
                      <void method="add"> 
                       <object idref="ExprNodeColumnDesc0"/> 
                      </void> 
@@ -253,7 +253,11 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="partitionCols"> 
-                    <object idref="ArrayList0"/> 
+                    <object class="java.util.ArrayList"> 
+                     <void method="add"> 
+                      <object idref="ExprNodeColumnDesc0"/> 
+                     </void> 
+                    </object> 
                    </void> 
                    <void property="tag"> 
                     <int>-1</int> 
@@ -405,7 +409,7 @@
                  </object> 
                 </void> 
                 <void property="listGroupingSets"> 
-                 <object id="ArrayList1" class="java.util.ArrayList"/> 
+                 <object id="ArrayList0" class="java.util.ArrayList"/> 
                 </void> 
                 <void property="memoryThreshold"> 
                  <float>0.9</float> 
@@ -1009,7 +1013,7 @@
            </object> 
           </void> 
           <void property="listGroupingSets"> 
-           <object idref="ArrayList1"/> 
+           <object idref="ArrayList0"/> 
           </void> 
           <void property="memoryThreshold"> 
            <float>0.9</float> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/join1.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/join1.q.xml?rev=1606780&r1=1606779&r2=1606780&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/join1.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/join1.q.xml Mon Jun 30 15:21:16 2014
@@ -421,7 +421,7 @@
                  <object class="java.util.ArrayList"/> 
                 </void> 
                 <void property="keyCols"> 
-                 <object id="ArrayList0" class="java.util.ArrayList"> 
+                 <object class="java.util.ArrayList"> 
                   <void method="add"> 
                    <object idref="ExprNodeColumnDesc1"/> 
                   </void> 
@@ -481,7 +481,11 @@
                  </object> 
                 </void> 
                 <void property="partitionCols"> 
-                 <object idref="ArrayList0"/> 
+                 <object class="java.util.ArrayList"> 
+                  <void method="add"> 
+                   <object idref="ExprNodeColumnDesc1"/> 
+                  </void> 
+                 </object> 
                 </void> 
                 <void property="tag"> 
                  <int>1</int> 
@@ -774,7 +778,7 @@
                  <object class="java.util.ArrayList"/> 
                 </void> 
                 <void property="keyCols"> 
-                 <object id="ArrayList1" class="java.util.ArrayList"> 
+                 <object class="java.util.ArrayList"> 
                   <void method="add"> 
                    <object idref="ExprNodeColumnDesc2"/> 
                   </void> 
@@ -830,7 +834,11 @@
                  <object class="java.util.ArrayList"/> 
                 </void> 
                 <void property="partitionCols"> 
-                 <object idref="ArrayList1"/> 
+                 <object class="java.util.ArrayList"> 
+                  <void method="add"> 
+                   <object idref="ExprNodeColumnDesc2"/> 
+                  </void> 
+                 </object> 
                 </void> 
                 <void property="valueCols"> 
                  <object class="java.util.ArrayList"/> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/join2.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/join2.q.xml?rev=1606780&r1=1606779&r2=1606780&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/join2.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/join2.q.xml Mon Jun 30 15:21:16 2014
@@ -399,7 +399,7 @@
                   <object class="java.util.ArrayList"/> 
                  </void> 
                  <void property="keyCols"> 
-                  <object id="ArrayList0" class="java.util.ArrayList"> 
+                  <object class="java.util.ArrayList"> 
                    <void method="add"> 
                     <object idref="ExprNodeGenericFuncDesc0"/> 
                    </void> 
@@ -459,7 +459,11 @@
                   </object> 
                  </void> 
                  <void property="partitionCols"> 
-                  <object idref="ArrayList0"/> 
+                  <object class="java.util.ArrayList"> 
+                   <void method="add"> 
+                    <object idref="ExprNodeGenericFuncDesc0"/> 
+                   </void> 
+                  </object> 
                  </void> 
                  <void property="valueCols"> 
                   <object class="java.util.ArrayList"> 
@@ -546,7 +550,7 @@
                </object> 
               </void> 
               <void property="neededColumns"> 
-               <object id="ArrayList1" class="java.util.ArrayList"> 
+               <object id="ArrayList0" class="java.util.ArrayList"> 
                 <void method="add"> 
                  <string>_col0</string> 
                 </void> 
@@ -561,7 +565,7 @@
              <string>TS_19</string> 
             </void> 
             <void property="referencedColumns"> 
-             <object idref="ArrayList1"/> 
+             <object idref="ArrayList0"/> 
             </void> 
             <void property="schema"> 
              <object id="RowSchema0" class="org.apache.hadoop.hive.ql.exec.RowSchema"> 
@@ -671,7 +675,7 @@
                      <object class="java.util.ArrayList"/> 
                     </void> 
                     <void property="keyCols"> 
-                     <object id="ArrayList2" class="java.util.ArrayList"> 
+                     <object class="java.util.ArrayList"> 
                       <void method="add"> 
                        <object idref="ExprNodeGenericFuncDesc1"/> 
                       </void> 
@@ -731,7 +735,11 @@
                      </object> 
                     </void> 
                     <void property="partitionCols"> 
-                     <object idref="ArrayList2"/> 
+                     <object class="java.util.ArrayList"> 
+                      <void method="add"> 
+                       <object idref="ExprNodeGenericFuncDesc1"/> 
+                      </void> 
+                     </object> 
                     </void> 
                     <void property="tag"> 
                      <int>1</int> 
@@ -1815,7 +1823,7 @@
                  <object class="java.util.ArrayList"/> 
                 </void> 
                 <void property="keyCols"> 
-                 <object id="ArrayList3" class="java.util.ArrayList"> 
+                 <object class="java.util.ArrayList"> 
                   <void method="add"> 
                    <object idref="ExprNodeColumnDesc6"/> 
                   </void> 
@@ -1871,7 +1879,11 @@
                  <object class="java.util.ArrayList"/> 
                 </void> 
                 <void property="partitionCols"> 
-                 <object idref="ArrayList3"/> 
+                 <object class="java.util.ArrayList"> 
+                  <void method="add"> 
+                   <object idref="ExprNodeColumnDesc6"/> 
+                  </void> 
+                 </object> 
                 </void> 
                 <void property="tag"> 
                  <int>1</int> 
@@ -2121,7 +2133,7 @@
                  <object class="java.util.ArrayList"/> 
                 </void> 
                 <void property="keyCols"> 
-                 <object id="ArrayList4" class="java.util.ArrayList"> 
+                 <object class="java.util.ArrayList"> 
                   <void method="add"> 
                    <object idref="ExprNodeColumnDesc7"/> 
                   </void> 
@@ -2177,7 +2189,11 @@
                  <object class="java.util.ArrayList"/> 
                 </void> 
                 <void property="partitionCols"> 
-                 <object idref="ArrayList4"/> 
+                 <object class="java.util.ArrayList"> 
+                  <void method="add"> 
+                   <object idref="ExprNodeColumnDesc7"/> 
+                  </void> 
+                 </object> 
                 </void> 
                 <void property="valueCols"> 
                  <object class="java.util.ArrayList"/> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/join3.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/join3.q.xml?rev=1606780&r1=1606779&r2=1606780&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/join3.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/join3.q.xml Mon Jun 30 15:21:16 2014
@@ -472,7 +472,7 @@
                  <object class="java.util.ArrayList"/> 
                 </void> 
                 <void property="keyCols"> 
-                 <object id="ArrayList0" class="java.util.ArrayList"> 
+                 <object class="java.util.ArrayList"> 
                   <void method="add"> 
                    <object idref="ExprNodeColumnDesc0"/> 
                   </void> 
@@ -528,7 +528,11 @@
                  <object class="java.util.ArrayList"/> 
                 </void> 
                 <void property="partitionCols"> 
-                 <object idref="ArrayList0"/> 
+                 <object class="java.util.ArrayList"> 
+                  <void method="add"> 
+                   <object idref="ExprNodeColumnDesc0"/> 
+                  </void> 
+                 </object> 
                 </void> 
                 <void property="tag"> 
                  <int>1</int> 
@@ -800,7 +804,7 @@
                  <object class="java.util.ArrayList"/> 
                 </void> 
                 <void property="keyCols"> 
-                 <object id="ArrayList1" class="java.util.ArrayList"> 
+                 <object class="java.util.ArrayList"> 
                   <void method="add"> 
                    <object idref="ExprNodeColumnDesc2"/> 
                   </void> 
@@ -860,7 +864,11 @@
                  </object> 
                 </void> 
                 <void property="partitionCols"> 
-                 <object idref="ArrayList1"/> 
+                 <object class="java.util.ArrayList"> 
+                  <void method="add"> 
+                   <object idref="ExprNodeColumnDesc2"/> 
+                  </void> 
+                 </object> 
                 </void> 
                 <void property="tag"> 
                  <int>2</int> 
@@ -1145,7 +1153,7 @@
                  <object class="java.util.ArrayList"/> 
                 </void> 
                 <void property="keyCols"> 
-                 <object id="ArrayList2" class="java.util.ArrayList"> 
+                 <object class="java.util.ArrayList"> 
                   <void method="add"> 
                    <object idref="ExprNodeColumnDesc3"/> 
                   </void> 
@@ -1201,7 +1209,11 @@
                  <object class="java.util.ArrayList"/> 
                 </void> 
                 <void property="partitionCols"> 
-                 <object idref="ArrayList2"/> 
+                 <object class="java.util.ArrayList"> 
+                  <void method="add"> 
+                   <object idref="ExprNodeColumnDesc3"/> 
+                  </void> 
+                 </object> 
                 </void> 
                 <void property="valueCols"> 
                  <object class="java.util.ArrayList"/> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/join4.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/join4.q.xml?rev=1606780&r1=1606779&r2=1606780&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/join4.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/join4.q.xml Mon Jun 30 15:21:16 2014
@@ -270,7 +270,7 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="keyCols"> 
-                    <object id="ArrayList0" class="java.util.ArrayList"> 
+                    <object class="java.util.ArrayList"> 
                      <void method="add"> 
                       <object idref="ExprNodeColumnDesc1"/> 
                      </void> 
@@ -330,7 +330,11 @@
                     </object> 
                    </void> 
                    <void property="partitionCols"> 
-                    <object idref="ArrayList0"/> 
+                    <object class="java.util.ArrayList"> 
+                     <void method="add"> 
+                      <object idref="ExprNodeColumnDesc1"/> 
+                     </void> 
+                    </object> 
                    </void> 
                    <void property="valueCols"> 
                     <object class="java.util.ArrayList"> 
@@ -795,7 +799,7 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="keyCols"> 
-                    <object id="ArrayList1" class="java.util.ArrayList"> 
+                    <object class="java.util.ArrayList"> 
                      <void method="add"> 
                       <object idref="ExprNodeColumnDesc5"/> 
                      </void> 
@@ -855,7 +859,11 @@
                     </object> 
                    </void> 
                    <void property="partitionCols"> 
-                    <object idref="ArrayList1"/> 
+                    <object class="java.util.ArrayList"> 
+                     <void method="add"> 
+                      <object idref="ExprNodeColumnDesc5"/> 
+                     </void> 
+                    </object> 
                    </void> 
                    <void property="tag"> 
                     <int>1</int> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/join5.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/join5.q.xml?rev=1606780&r1=1606779&r2=1606780&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/join5.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/join5.q.xml Mon Jun 30 15:21:16 2014
@@ -270,7 +270,7 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="keyCols"> 
-                    <object id="ArrayList0" class="java.util.ArrayList"> 
+                    <object class="java.util.ArrayList"> 
                      <void method="add"> 
                       <object idref="ExprNodeColumnDesc1"/> 
                      </void> 
@@ -330,7 +330,11 @@
                     </object> 
                    </void> 
                    <void property="partitionCols"> 
-                    <object idref="ArrayList0"/> 
+                    <object class="java.util.ArrayList"> 
+                     <void method="add"> 
+                      <object idref="ExprNodeColumnDesc1"/> 
+                     </void> 
+                    </object> 
                    </void> 
                    <void property="valueCols"> 
                     <object class="java.util.ArrayList"> 
@@ -795,7 +799,7 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="keyCols"> 
-                    <object id="ArrayList1" class="java.util.ArrayList"> 
+                    <object class="java.util.ArrayList"> 
                      <void method="add"> 
                       <object idref="ExprNodeColumnDesc5"/> 
                      </void> 
@@ -855,7 +859,11 @@
                     </object> 
                    </void> 
                    <void property="partitionCols"> 
-                    <object idref="ArrayList1"/> 
+                    <object class="java.util.ArrayList"> 
+                     <void method="add"> 
+                      <object idref="ExprNodeColumnDesc5"/> 
+                     </void> 
+                    </object> 
                    </void> 
                    <void property="tag"> 
                     <int>1</int> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/join6.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/join6.q.xml?rev=1606780&r1=1606779&r2=1606780&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/join6.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/join6.q.xml Mon Jun 30 15:21:16 2014
@@ -270,7 +270,7 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="keyCols"> 
-                    <object id="ArrayList0" class="java.util.ArrayList"> 
+                    <object class="java.util.ArrayList"> 
                      <void method="add"> 
                       <object idref="ExprNodeColumnDesc1"/> 
                      </void> 
@@ -330,7 +330,11 @@
                     </object> 
                    </void> 
                    <void property="partitionCols"> 
-                    <object idref="ArrayList0"/> 
+                    <object class="java.util.ArrayList"> 
+                     <void method="add"> 
+                      <object idref="ExprNodeColumnDesc1"/> 
+                     </void> 
+                    </object> 
                    </void> 
                    <void property="valueCols"> 
                     <object class="java.util.ArrayList"> 
@@ -795,7 +799,7 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="keyCols"> 
-                    <object id="ArrayList1" class="java.util.ArrayList"> 
+                    <object class="java.util.ArrayList"> 
                      <void method="add"> 
                       <object idref="ExprNodeColumnDesc5"/> 
                      </void> 
@@ -855,7 +859,11 @@
                     </object> 
                    </void> 
                    <void property="partitionCols"> 
-                    <object idref="ArrayList1"/> 
+                    <object class="java.util.ArrayList"> 
+                     <void method="add"> 
+                      <object idref="ExprNodeColumnDesc5"/> 
+                     </void> 
+                    </object> 
                    </void> 
                    <void property="tag"> 
                     <int>1</int> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/join7.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/join7.q.xml?rev=1606780&r1=1606779&r2=1606780&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/join7.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/join7.q.xml Mon Jun 30 15:21:16 2014
@@ -335,7 +335,7 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="keyCols"> 
-                    <object id="ArrayList0" class="java.util.ArrayList"> 
+                    <object class="java.util.ArrayList"> 
                      <void method="add"> 
                       <object idref="ExprNodeColumnDesc1"/> 
                      </void> 
@@ -395,7 +395,11 @@
                     </object> 
                    </void> 
                    <void property="partitionCols"> 
-                    <object idref="ArrayList0"/> 
+                    <object class="java.util.ArrayList"> 
+                     <void method="add"> 
+                      <object idref="ExprNodeColumnDesc1"/> 
+                     </void> 
+                    </object> 
                    </void> 
                    <void property="valueCols"> 
                     <object class="java.util.ArrayList"> 
@@ -860,7 +864,7 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="keyCols"> 
-                    <object id="ArrayList1" class="java.util.ArrayList"> 
+                    <object class="java.util.ArrayList"> 
                      <void method="add"> 
                       <object idref="ExprNodeColumnDesc5"/> 
                      </void> 
@@ -920,7 +924,11 @@
                     </object> 
                    </void> 
                    <void property="partitionCols"> 
-                    <object idref="ArrayList1"/> 
+                    <object class="java.util.ArrayList"> 
+                     <void method="add"> 
+                      <object idref="ExprNodeColumnDesc5"/> 
+                     </void> 
+                    </object> 
                    </void> 
                    <void property="tag"> 
                     <int>1</int> 
@@ -1376,7 +1384,7 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="keyCols"> 
-                    <object id="ArrayList2" class="java.util.ArrayList"> 
+                    <object class="java.util.ArrayList"> 
                      <void method="add"> 
                       <object idref="ExprNodeColumnDesc9"/> 
                      </void> 
@@ -1436,7 +1444,11 @@
                     </object> 
                    </void> 
                    <void property="partitionCols"> 
-                    <object idref="ArrayList2"/> 
+                    <object class="java.util.ArrayList"> 
+                     <void method="add"> 
+                      <object idref="ExprNodeColumnDesc9"/> 
+                     </void> 
+                    </object> 
                    </void> 
                    <void property="tag"> 
                     <int>2</int> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/join8.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/join8.q.xml?rev=1606780&r1=1606779&r2=1606780&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/join8.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/join8.q.xml Mon Jun 30 15:21:16 2014
@@ -270,7 +270,7 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="keyCols"> 
-                    <object id="ArrayList0" class="java.util.ArrayList"> 
+                    <object class="java.util.ArrayList"> 
                      <void method="add"> 
                       <object idref="ExprNodeColumnDesc1"/> 
                      </void> 
@@ -330,7 +330,11 @@
                     </object> 
                    </void> 
                    <void property="partitionCols"> 
-                    <object idref="ArrayList0"/> 
+                    <object class="java.util.ArrayList"> 
+                     <void method="add"> 
+                      <object idref="ExprNodeColumnDesc1"/> 
+                     </void> 
+                    </object> 
                    </void> 
                    <void property="valueCols"> 
                     <object class="java.util.ArrayList"> 
@@ -836,7 +840,7 @@
                     <object class="java.util.ArrayList"/> 
                    </void> 
                    <void property="keyCols"> 
-                    <object id="ArrayList1" class="java.util.ArrayList"> 
+                    <object class="java.util.ArrayList"> 
                      <void method="add"> 
                       <object idref="ExprNodeColumnDesc5"/> 
                      </void> 
@@ -896,7 +900,11 @@
                     </object> 
                    </void> 
                    <void property="partitionCols"> 
-                    <object idref="ArrayList1"/> 
+                    <object class="java.util.ArrayList"> 
+                     <void method="add"> 
+                      <object idref="ExprNodeColumnDesc5"/> 
+                     </void> 
+                    </object> 
                    </void> 
                    <void property="tag"> 
                     <int>1</int>