You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by gu...@apache.org on 2014/09/16 00:46:49 UTC

svn commit: r1625176 [8/9] - in /hive/branches/cbo: ./ common/src/java/org/apache/hadoop/hive/common/ common/src/java/org/apache/hadoop/hive/conf/ contrib/src/test/results/clientpositive/ data/conf/tez/ data/files/ itests/hive-unit/src/test/java/org/ap...

Modified: hive/branches/cbo/ql/src/test/results/clientpositive/udf_case_thrift.q.out
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/test/results/clientpositive/udf_case_thrift.q.out?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/test/results/clientpositive/udf_case_thrift.q.out (original)
+++ hive/branches/cbo/ql/src/test/results/clientpositive/udf_case_thrift.q.out Mon Sep 15 22:46:44 2014
@@ -45,11 +45,11 @@ STAGE PLANS:
         TableScan
           alias: src_thrift
           Row Limit Per Split: 3
-          Statistics: Num rows: 11 Data size: 1606 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 11 Data size: 3070 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: CASE (lint[0]) WHEN (0) THEN ((lint[0] + 1)) WHEN (1) THEN ((lint[0] + 2)) WHEN (2) THEN (100) ELSE (5) END (type: int), CASE (lstring[0]) WHEN ('0') THEN ('zero') WHEN ('10') THEN (concat(lstring[0], ' is ten')) ELSE ('default') END (type: string), CASE (lstring[0]) WHEN ('0') THEN (lstring) ELSE (null) END[0] (type: string)
             outputColumnNames: _col0, _col1, _col2
-            Statistics: Num rows: 11 Data size: 1606 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 11 Data size: 3070 Basic stats: COMPLETE Column stats: NONE
             ListSink
 
 PREHOOK: query: SELECT CASE src_thrift.lint[0]

Modified: hive/branches/cbo/ql/src/test/results/clientpositive/udf_coalesce.q.out
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/test/results/clientpositive/udf_coalesce.q.out?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/test/results/clientpositive/udf_coalesce.q.out (original)
+++ hive/branches/cbo/ql/src/test/results/clientpositive/udf_coalesce.q.out Mon Sep 15 22:46:44 2014
@@ -138,11 +138,11 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: src_thrift
-          Statistics: Num rows: 11 Data size: 1606 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 11 Data size: 3070 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: COALESCE(lint[1],999) (type: int), COALESCE(lintstring[0].mystring,'999') (type: string), COALESCE(mstringstring['key_2'],'999') (type: string)
             outputColumnNames: _col0, _col1, _col2
-            Statistics: Num rows: 11 Data size: 1606 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 11 Data size: 3070 Basic stats: COMPLETE Column stats: NONE
             ListSink
 
 PREHOOK: query: SELECT COALESCE(src_thrift.lint[1], 999),

Modified: hive/branches/cbo/ql/src/test/results/clientpositive/udf_isnull_isnotnull.q.out
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/test/results/clientpositive/udf_isnull_isnotnull.q.out?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/test/results/clientpositive/udf_isnull_isnotnull.q.out (original)
+++ hive/branches/cbo/ql/src/test/results/clientpositive/udf_isnull_isnotnull.q.out Mon Sep 15 22:46:44 2014
@@ -95,17 +95,17 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: src_thrift
-          Statistics: Num rows: 11 Data size: 1606 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 11 Data size: 3070 Basic stats: COMPLETE Column stats: NONE
           Filter Operator
             predicate: (lint is not null and (not mstringstring is null)) (type: boolean)
-            Statistics: Num rows: 3 Data size: 437 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 3 Data size: 837 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: lint is not null (type: boolean), lintstring is not null (type: boolean), mstringstring is not null (type: boolean)
               outputColumnNames: _col0, _col1, _col2
-              Statistics: Num rows: 3 Data size: 437 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 3 Data size: 837 Basic stats: COMPLETE Column stats: NONE
               Limit
                 Number of rows: 1
-                Statistics: Num rows: 1 Data size: 145 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 1 Data size: 279 Basic stats: COMPLETE Column stats: NONE
                 ListSink
 
 PREHOOK: query: FROM src_thrift

Modified: hive/branches/cbo/ql/src/test/results/clientpositive/udf_size.q.out
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/test/results/clientpositive/udf_size.q.out?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/test/results/clientpositive/udf_size.q.out (original)
+++ hive/branches/cbo/ql/src/test/results/clientpositive/udf_size.q.out Mon Sep 15 22:46:44 2014
@@ -36,17 +36,17 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: src_thrift
-          Statistics: Num rows: 11 Data size: 1606 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 11 Data size: 3070 Basic stats: COMPLETE Column stats: NONE
           Filter Operator
             predicate: (lint is not null and (not mstringstring is null)) (type: boolean)
-            Statistics: Num rows: 3 Data size: 437 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 3 Data size: 837 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: size(lint) (type: int), size(lintstring) (type: int), size(mstringstring) (type: int), size(null) (type: int)
               outputColumnNames: _col0, _col1, _col2, _col3
-              Statistics: Num rows: 3 Data size: 437 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 3 Data size: 837 Basic stats: COMPLETE Column stats: NONE
               Limit
                 Number of rows: 1
-                Statistics: Num rows: 1 Data size: 145 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 1 Data size: 279 Basic stats: COMPLETE Column stats: NONE
                 ListSink
 
 PREHOOK: query: FROM src_thrift

Modified: hive/branches/cbo/ql/src/test/results/clientpositive/union21.q.out
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/test/results/clientpositive/union21.q.out?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/test/results/clientpositive/union21.q.out (original)
+++ hive/branches/cbo/ql/src/test/results/clientpositive/union21.q.out Mon Sep 15 22:46:44 2014
@@ -44,17 +44,17 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src_thrift
-            Statistics: Num rows: 11 Data size: 1606 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 11 Data size: 3070 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: astring (type: string)
               outputColumnNames: _col0
-              Statistics: Num rows: 11 Data size: 1606 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 11 Data size: 3070 Basic stats: COMPLETE Column stats: NONE
               Union
-                Statistics: Num rows: 1522 Data size: 56336 Basic stats: COMPLETE Column stats: PARTIAL
+                Statistics: Num rows: 1522 Data size: 59264 Basic stats: COMPLETE Column stats: PARTIAL
                 Select Operator
                   expressions: _col0 (type: string)
                   outputColumnNames: _col0
-                  Statistics: Num rows: 1522 Data size: 56336 Basic stats: COMPLETE Column stats: PARTIAL
+                  Statistics: Num rows: 1522 Data size: 59264 Basic stats: COMPLETE Column stats: PARTIAL
                   Group By Operator
                     aggregations: count(1)
                     keys: _col0 (type: string)
@@ -69,17 +69,17 @@ STAGE PLANS:
                       value expressions: _col1 (type: bigint)
           TableScan
             alias: src_thrift
-            Statistics: Num rows: 11 Data size: 1606 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 11 Data size: 3070 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: lstring[0] (type: string)
               outputColumnNames: _col0
-              Statistics: Num rows: 11 Data size: 1606 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 11 Data size: 3070 Basic stats: COMPLETE Column stats: NONE
               Union
-                Statistics: Num rows: 1522 Data size: 56336 Basic stats: COMPLETE Column stats: PARTIAL
+                Statistics: Num rows: 1522 Data size: 59264 Basic stats: COMPLETE Column stats: PARTIAL
                 Select Operator
                   expressions: _col0 (type: string)
                   outputColumnNames: _col0
-                  Statistics: Num rows: 1522 Data size: 56336 Basic stats: COMPLETE Column stats: PARTIAL
+                  Statistics: Num rows: 1522 Data size: 59264 Basic stats: COMPLETE Column stats: PARTIAL
                   Group By Operator
                     aggregations: count(1)
                     keys: _col0 (type: string)
@@ -100,11 +100,11 @@ STAGE PLANS:
               outputColumnNames: _col0
               Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
               Union
-                Statistics: Num rows: 1522 Data size: 56336 Basic stats: COMPLETE Column stats: PARTIAL
+                Statistics: Num rows: 1522 Data size: 59264 Basic stats: COMPLETE Column stats: PARTIAL
                 Select Operator
                   expressions: _col0 (type: string)
                   outputColumnNames: _col0
-                  Statistics: Num rows: 1522 Data size: 56336 Basic stats: COMPLETE Column stats: PARTIAL
+                  Statistics: Num rows: 1522 Data size: 59264 Basic stats: COMPLETE Column stats: PARTIAL
                   Group By Operator
                     aggregations: count(1)
                     keys: _col0 (type: string)
@@ -125,11 +125,11 @@ STAGE PLANS:
               outputColumnNames: _col0
               Statistics: Num rows: 500 Data size: 42500 Basic stats: COMPLETE Column stats: COMPLETE
               Union
-                Statistics: Num rows: 1522 Data size: 56336 Basic stats: COMPLETE Column stats: PARTIAL
+                Statistics: Num rows: 1522 Data size: 59264 Basic stats: COMPLETE Column stats: PARTIAL
                 Select Operator
                   expressions: _col0 (type: string)
                   outputColumnNames: _col0
-                  Statistics: Num rows: 1522 Data size: 56336 Basic stats: COMPLETE Column stats: PARTIAL
+                  Statistics: Num rows: 1522 Data size: 59264 Basic stats: COMPLETE Column stats: PARTIAL
                   Group By Operator
                     aggregations: count(1)
                     keys: _col0 (type: string)
@@ -150,11 +150,11 @@ STAGE PLANS:
               outputColumnNames: _col0
               Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
               Union
-                Statistics: Num rows: 1522 Data size: 56336 Basic stats: COMPLETE Column stats: PARTIAL
+                Statistics: Num rows: 1522 Data size: 59264 Basic stats: COMPLETE Column stats: PARTIAL
                 Select Operator
                   expressions: _col0 (type: string)
                   outputColumnNames: _col0
-                  Statistics: Num rows: 1522 Data size: 56336 Basic stats: COMPLETE Column stats: PARTIAL
+                  Statistics: Num rows: 1522 Data size: 59264 Basic stats: COMPLETE Column stats: PARTIAL
                   Group By Operator
                     aggregations: count(1)
                     keys: _col0 (type: string)

Modified: hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_10.q.out
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_10.q.out?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_10.q.out (original)
+++ hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_10.q.out Mon Sep 15 22:46:44 2014
@@ -188,12 +188,16 @@ STAGE PLANS:
               name: default.outputtbl1
 
   Stage: Stage-3
-    Merge Work
+    Merge File Operator
+      Map Operator Tree:
+          RCFile Merge Operator
       merge level: block
       input format: org.apache.hadoop.hive.ql.io.RCFileInputFormat
 
   Stage: Stage-5
-    Merge Work
+    Merge File Operator
+      Map Operator Tree:
+          RCFile Merge Operator
       merge level: block
       input format: org.apache.hadoop.hive.ql.io.RCFileInputFormat
 

Modified: hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_11.q.out
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_11.q.out?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_11.q.out (original)
+++ hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_11.q.out Mon Sep 15 22:46:44 2014
@@ -185,12 +185,16 @@ STAGE PLANS:
               name: default.outputtbl1
 
   Stage: Stage-2
-    Merge Work
+    Merge File Operator
+      Map Operator Tree:
+          RCFile Merge Operator
       merge level: block
       input format: org.apache.hadoop.hive.ql.io.RCFileInputFormat
 
   Stage: Stage-4
-    Merge Work
+    Merge File Operator
+      Map Operator Tree:
+          RCFile Merge Operator
       merge level: block
       input format: org.apache.hadoop.hive.ql.io.RCFileInputFormat
 

Modified: hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_12.q.out
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_12.q.out?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_12.q.out (original)
+++ hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_12.q.out Mon Sep 15 22:46:44 2014
@@ -119,12 +119,16 @@ STAGE PLANS:
               name: default.outputtbl1
 
   Stage: Stage-2
-    Merge Work
+    Merge File Operator
+      Map Operator Tree:
+          RCFile Merge Operator
       merge level: block
       input format: org.apache.hadoop.hive.ql.io.RCFileInputFormat
 
   Stage: Stage-4
-    Merge Work
+    Merge File Operator
+      Map Operator Tree:
+          RCFile Merge Operator
       merge level: block
       input format: org.apache.hadoop.hive.ql.io.RCFileInputFormat
 

Modified: hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_13.q.out
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_13.q.out?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_13.q.out (original)
+++ hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_13.q.out Mon Sep 15 22:46:44 2014
@@ -142,12 +142,16 @@ STAGE PLANS:
               name: default.outputtbl1
 
   Stage: Stage-2
-    Merge Work
+    Merge File Operator
+      Map Operator Tree:
+          RCFile Merge Operator
       merge level: block
       input format: org.apache.hadoop.hive.ql.io.RCFileInputFormat
 
   Stage: Stage-4
-    Merge Work
+    Merge File Operator
+      Map Operator Tree:
+          RCFile Merge Operator
       merge level: block
       input format: org.apache.hadoop.hive.ql.io.RCFileInputFormat
 

Modified: hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_14.q.out
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_14.q.out?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_14.q.out (original)
+++ hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_14.q.out Mon Sep 15 22:46:44 2014
@@ -121,12 +121,16 @@ STAGE PLANS:
               name: default.outputtbl1
 
   Stage: Stage-2
-    Merge Work
+    Merge File Operator
+      Map Operator Tree:
+          RCFile Merge Operator
       merge level: block
       input format: org.apache.hadoop.hive.ql.io.RCFileInputFormat
 
   Stage: Stage-4
-    Merge Work
+    Merge File Operator
+      Map Operator Tree:
+          RCFile Merge Operator
       merge level: block
       input format: org.apache.hadoop.hive.ql.io.RCFileInputFormat
 

Modified: hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_16.q.out
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_16.q.out?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_16.q.out (original)
+++ hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_16.q.out Mon Sep 15 22:46:44 2014
@@ -139,12 +139,16 @@ STAGE PLANS:
               name: default.outputtbl1
 
   Stage: Stage-2
-    Merge Work
+    Merge File Operator
+      Map Operator Tree:
+          RCFile Merge Operator
       merge level: block
       input format: org.apache.hadoop.hive.ql.io.RCFileInputFormat
 
   Stage: Stage-4
-    Merge Work
+    Merge File Operator
+      Map Operator Tree:
+          RCFile Merge Operator
       merge level: block
       input format: org.apache.hadoop.hive.ql.io.RCFileInputFormat
 

Modified: hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_9.q.out
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_9.q.out?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_9.q.out (original)
+++ hive/branches/cbo/ql/src/test/results/clientpositive/union_remove_9.q.out Mon Sep 15 22:46:44 2014
@@ -149,12 +149,16 @@ STAGE PLANS:
               name: default.outputtbl1
 
   Stage: Stage-2
-    Merge Work
+    Merge File Operator
+      Map Operator Tree:
+          RCFile Merge Operator
       merge level: block
       input format: org.apache.hadoop.hive.ql.io.RCFileInputFormat
 
   Stage: Stage-4
-    Merge Work
+    Merge File Operator
+      Map Operator Tree:
+          RCFile Merge Operator
       merge level: block
       input format: org.apache.hadoop.hive.ql.io.RCFileInputFormat
 

Modified: hive/branches/cbo/ql/src/test/results/compiler/plan/case_sensitivity.q.xml
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/test/results/compiler/plan/case_sensitivity.q.xml?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/test/results/compiler/plan/case_sensitivity.q.xml (original)
+++ hive/branches/cbo/ql/src/test/results/compiler/plan/case_sensitivity.q.xml Mon Sep 15 22:46:44 2014
@@ -629,7 +629,7 @@
             </void> 
             <void method="put"> 
              <string>totalSize</string> 
-             <string>1606</string> 
+             <string>3070</string> 
             </void> 
             <void method="put"> 
              <string>bucket_count</string> 
@@ -983,7 +983,7 @@
                 <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPGreaterThan"/> 
                </void> 
                <void property="typeInfo"> 
-                <object class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
+                <object id="PrimitiveTypeInfo2" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
                  <void property="typeName"> 
                   <string>boolean</string> 
                  </void> 
@@ -1132,7 +1132,7 @@
               <string>src_thrift</string> 
              </void> 
              <void property="type"> 
-              <object class="org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo"> 
+              <object id="ListTypeInfo2" class="org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo"> 
                <void property="listElementTypeInfo"> 
                 <object idref="PrimitiveTypeInfo0"/> 
                </void> 
@@ -1155,7 +1155,7 @@
               <string>src_thrift</string> 
              </void> 
              <void property="type"> 
-              <object class="org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo"> 
+              <object id="MapTypeInfo0" class="org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo"> 
                <void property="mapKeyTypeInfo"> 
                 <object idref="PrimitiveTypeInfo0"/> 
                </void> 
@@ -1171,6 +1171,125 @@
            </void> 
            <void method="add"> 
             <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
+             <void property="internalName"> 
+              <string>attributes</string> 
+             </void> 
+             <void property="tabAlias"> 
+              <string>src_thrift</string> 
+             </void> 
+             <void property="type"> 
+              <object class="org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo"> 
+               <void property="mapKeyTypeInfo"> 
+                <object idref="PrimitiveTypeInfo0"/> 
+               </void> 
+               <void property="mapValueTypeInfo"> 
+                <object class="org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo"> 
+                 <void property="mapKeyTypeInfo"> 
+                  <object idref="PrimitiveTypeInfo0"/> 
+                 </void> 
+                 <void property="mapValueTypeInfo"> 
+                  <object class="org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo"> 
+                   <void property="mapKeyTypeInfo"> 
+                    <object idref="PrimitiveTypeInfo0"/> 
+                   </void> 
+                   <void property="mapValueTypeInfo"> 
+                    <object id="UnionTypeInfo0" class="org.apache.hadoop.hive.serde2.typeinfo.UnionTypeInfo"> 
+                     <void property="allUnionObjectTypeInfos"> 
+                      <object class="java.util.ArrayList"> 
+                       <void method="add"> 
+                        <object idref="PrimitiveTypeInfo1"/> 
+                       </void> 
+                       <void method="add"> 
+                        <object id="PrimitiveTypeInfo3" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
+                         <void property="typeName"> 
+                          <string>bigint</string> 
+                         </void> 
+                        </object> 
+                       </void> 
+                       <void method="add"> 
+                        <object idref="PrimitiveTypeInfo0"/> 
+                       </void> 
+                       <void method="add"> 
+                        <object class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
+                         <void property="typeName"> 
+                          <string>double</string> 
+                         </void> 
+                        </object> 
+                       </void> 
+                       <void method="add"> 
+                        <object idref="PrimitiveTypeInfo2"/> 
+                       </void> 
+                       <void method="add"> 
+                        <object idref="ListTypeInfo2"/> 
+                       </void> 
+                       <void method="add"> 
+                        <object idref="MapTypeInfo0"/> 
+                       </void> 
+                      </object> 
+                     </void> 
+                    </object> 
+                   </void> 
+                  </object> 
+                 </void> 
+                </object> 
+               </void> 
+              </object> 
+             </void> 
+             <void property="typeName"> 
+              <string>map&lt;string,map&lt;string,map&lt;string,uniontype&lt;int,bigint,string,double,boolean,array&lt;string&gt;,map&lt;string,string&gt;&gt;&gt;&gt;&gt;</string> 
+             </void> 
+            </object> 
+           </void> 
+           <void method="add"> 
+            <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
+             <void property="internalName"> 
+              <string>unionfield1</string> 
+             </void> 
+             <void property="tabAlias"> 
+              <string>src_thrift</string> 
+             </void> 
+             <void property="type"> 
+              <object idref="UnionTypeInfo0"/> 
+             </void> 
+             <void property="typeName"> 
+              <string>uniontype&lt;int,bigint,string,double,boolean,array&lt;string&gt;,map&lt;string,string&gt;&gt;</string> 
+             </void> 
+            </object> 
+           </void> 
+           <void method="add"> 
+            <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
+             <void property="internalName"> 
+              <string>unionfield2</string> 
+             </void> 
+             <void property="tabAlias"> 
+              <string>src_thrift</string> 
+             </void> 
+             <void property="type"> 
+              <object idref="UnionTypeInfo0"/> 
+             </void> 
+             <void property="typeName"> 
+              <string>uniontype&lt;int,bigint,string,double,boolean,array&lt;string&gt;,map&lt;string,string&gt;&gt;</string> 
+             </void> 
+            </object> 
+           </void> 
+           <void method="add"> 
+            <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
+             <void property="internalName"> 
+              <string>unionfield3</string> 
+             </void> 
+             <void property="tabAlias"> 
+              <string>src_thrift</string> 
+             </void> 
+             <void property="type"> 
+              <object idref="UnionTypeInfo0"/> 
+             </void> 
+             <void property="typeName"> 
+              <string>uniontype&lt;int,bigint,string,double,boolean,array&lt;string&gt;,map&lt;string,string&gt;&gt;</string> 
+             </void> 
+            </object> 
+           </void> 
+           <void method="add"> 
+            <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
              <void property="hiddenVirtualCol"> 
               <boolean>true</boolean> 
              </void> 
@@ -1181,11 +1300,7 @@
               <string>src_thrift</string> 
              </void> 
              <void property="type"> 
-              <object id="PrimitiveTypeInfo2" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
-               <void property="typeName"> 
-                <string>bigint</string> 
-               </void> 
-              </object> 
+              <object idref="PrimitiveTypeInfo3"/> 
              </void> 
              <void property="typeName"> 
               <string>bigint</string> 
@@ -1240,13 +1355,13 @@
                <void property="allStructFieldTypeInfos"> 
                 <object class="java.util.ArrayList"> 
                  <void method="add"> 
-                  <object idref="PrimitiveTypeInfo2"/> 
+                  <object idref="PrimitiveTypeInfo3"/> 
                  </void> 
                  <void method="add"> 
                   <object idref="PrimitiveTypeInfo1"/> 
                  </void> 
                  <void method="add"> 
-                  <object idref="PrimitiveTypeInfo2"/> 
+                  <object idref="PrimitiveTypeInfo3"/> 
                  </void> 
                 </object> 
                </void> 
@@ -1340,7 +1455,7 @@
           </void> 
           <void method="put"> 
            <string>totalSize</string> 
-           <string>1606</string> 
+           <string>3070</string> 
           </void> 
           <void method="put"> 
            <string>bucket_count</string> 

Modified: hive/branches/cbo/ql/src/test/results/compiler/plan/input5.q.xml
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/test/results/compiler/plan/input5.q.xml?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/test/results/compiler/plan/input5.q.xml (original)
+++ hive/branches/cbo/ql/src/test/results/compiler/plan/input5.q.xml Mon Sep 15 22:46:44 2014
@@ -279,7 +279,7 @@
             </void> 
             <void method="put"> 
              <string>totalSize</string> 
-             <string>1606</string> 
+             <string>3070</string> 
             </void> 
             <void method="put"> 
              <string>bucket_count</string> 
@@ -955,7 +955,7 @@
               <string>src_thrift</string> 
              </void> 
              <void property="type"> 
-              <object class="org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo"> 
+              <object id="ListTypeInfo2" class="org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo"> 
                <void property="listElementTypeInfo"> 
                 <object idref="PrimitiveTypeInfo0"/> 
                </void> 
@@ -991,7 +991,7 @@
               <string>src_thrift</string> 
              </void> 
              <void property="type"> 
-              <object class="org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo"> 
+              <object id="MapTypeInfo0" class="org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo"> 
                <void property="mapKeyTypeInfo"> 
                 <object idref="PrimitiveTypeInfo0"/> 
                </void> 
@@ -1007,6 +1007,129 @@
            </void> 
            <void method="add"> 
             <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
+             <void property="internalName"> 
+              <string>attributes</string> 
+             </void> 
+             <void property="tabAlias"> 
+              <string>src_thrift</string> 
+             </void> 
+             <void property="type"> 
+              <object class="org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo"> 
+               <void property="mapKeyTypeInfo"> 
+                <object idref="PrimitiveTypeInfo0"/> 
+               </void> 
+               <void property="mapValueTypeInfo"> 
+                <object class="org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo"> 
+                 <void property="mapKeyTypeInfo"> 
+                  <object idref="PrimitiveTypeInfo0"/> 
+                 </void> 
+                 <void property="mapValueTypeInfo"> 
+                  <object class="org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo"> 
+                   <void property="mapKeyTypeInfo"> 
+                    <object idref="PrimitiveTypeInfo0"/> 
+                   </void> 
+                   <void property="mapValueTypeInfo"> 
+                    <object id="UnionTypeInfo0" class="org.apache.hadoop.hive.serde2.typeinfo.UnionTypeInfo"> 
+                     <void property="allUnionObjectTypeInfos"> 
+                      <object class="java.util.ArrayList"> 
+                       <void method="add"> 
+                        <object idref="PrimitiveTypeInfo1"/> 
+                       </void> 
+                       <void method="add"> 
+                        <object id="PrimitiveTypeInfo2" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
+                         <void property="typeName"> 
+                          <string>bigint</string> 
+                         </void> 
+                        </object> 
+                       </void> 
+                       <void method="add"> 
+                        <object idref="PrimitiveTypeInfo0"/> 
+                       </void> 
+                       <void method="add"> 
+                        <object class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
+                         <void property="typeName"> 
+                          <string>double</string> 
+                         </void> 
+                        </object> 
+                       </void> 
+                       <void method="add"> 
+                        <object class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
+                         <void property="typeName"> 
+                          <string>boolean</string> 
+                         </void> 
+                        </object> 
+                       </void> 
+                       <void method="add"> 
+                        <object idref="ListTypeInfo2"/> 
+                       </void> 
+                       <void method="add"> 
+                        <object idref="MapTypeInfo0"/> 
+                       </void> 
+                      </object> 
+                     </void> 
+                    </object> 
+                   </void> 
+                  </object> 
+                 </void> 
+                </object> 
+               </void> 
+              </object> 
+             </void> 
+             <void property="typeName"> 
+              <string>map&lt;string,map&lt;string,map&lt;string,uniontype&lt;int,bigint,string,double,boolean,array&lt;string&gt;,map&lt;string,string&gt;&gt;&gt;&gt;&gt;</string> 
+             </void> 
+            </object> 
+           </void> 
+           <void method="add"> 
+            <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
+             <void property="internalName"> 
+              <string>unionfield1</string> 
+             </void> 
+             <void property="tabAlias"> 
+              <string>src_thrift</string> 
+             </void> 
+             <void property="type"> 
+              <object idref="UnionTypeInfo0"/> 
+             </void> 
+             <void property="typeName"> 
+              <string>uniontype&lt;int,bigint,string,double,boolean,array&lt;string&gt;,map&lt;string,string&gt;&gt;</string> 
+             </void> 
+            </object> 
+           </void> 
+           <void method="add"> 
+            <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
+             <void property="internalName"> 
+              <string>unionfield2</string> 
+             </void> 
+             <void property="tabAlias"> 
+              <string>src_thrift</string> 
+             </void> 
+             <void property="type"> 
+              <object idref="UnionTypeInfo0"/> 
+             </void> 
+             <void property="typeName"> 
+              <string>uniontype&lt;int,bigint,string,double,boolean,array&lt;string&gt;,map&lt;string,string&gt;&gt;</string> 
+             </void> 
+            </object> 
+           </void> 
+           <void method="add"> 
+            <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
+             <void property="internalName"> 
+              <string>unionfield3</string> 
+             </void> 
+             <void property="tabAlias"> 
+              <string>src_thrift</string> 
+             </void> 
+             <void property="type"> 
+              <object idref="UnionTypeInfo0"/> 
+             </void> 
+             <void property="typeName"> 
+              <string>uniontype&lt;int,bigint,string,double,boolean,array&lt;string&gt;,map&lt;string,string&gt;&gt;</string> 
+             </void> 
+            </object> 
+           </void> 
+           <void method="add"> 
+            <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
              <void property="hiddenVirtualCol"> 
               <boolean>true</boolean> 
              </void> 
@@ -1017,11 +1140,7 @@
               <string>src_thrift</string> 
              </void> 
              <void property="type"> 
-              <object id="PrimitiveTypeInfo2" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
-               <void property="typeName"> 
-                <string>bigint</string> 
-               </void> 
-              </object> 
+              <object idref="PrimitiveTypeInfo2"/> 
              </void> 
              <void property="typeName"> 
               <string>bigint</string> 
@@ -1176,7 +1295,7 @@
           </void> 
           <void method="put"> 
            <string>totalSize</string> 
-           <string>1606</string> 
+           <string>3070</string> 
           </void> 
           <void method="put"> 
            <string>bucket_count</string> 

Modified: hive/branches/cbo/ql/src/test/results/compiler/plan/input_testxpath.q.xml
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/test/results/compiler/plan/input_testxpath.q.xml?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/test/results/compiler/plan/input_testxpath.q.xml (original)
+++ hive/branches/cbo/ql/src/test/results/compiler/plan/input_testxpath.q.xml Mon Sep 15 22:46:44 2014
@@ -131,7 +131,7 @@
             </void> 
             <void method="put"> 
              <string>totalSize</string> 
-             <string>1606</string> 
+             <string>3070</string> 
             </void> 
             <void method="put"> 
              <string>bucket_count</string> 
@@ -691,7 +691,7 @@
               <string>src_thrift</string> 
              </void> 
              <void property="type"> 
-              <object class="org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo"> 
+              <object id="ListTypeInfo2" class="org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo"> 
                <void property="listElementTypeInfo"> 
                 <object idref="PrimitiveTypeInfo1"/> 
                </void> 
@@ -736,6 +736,129 @@
            </void> 
            <void method="add"> 
             <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
+             <void property="internalName"> 
+              <string>attributes</string> 
+             </void> 
+             <void property="tabAlias"> 
+              <string>src_thrift</string> 
+             </void> 
+             <void property="type"> 
+              <object class="org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo"> 
+               <void property="mapKeyTypeInfo"> 
+                <object idref="PrimitiveTypeInfo1"/> 
+               </void> 
+               <void property="mapValueTypeInfo"> 
+                <object class="org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo"> 
+                 <void property="mapKeyTypeInfo"> 
+                  <object idref="PrimitiveTypeInfo1"/> 
+                 </void> 
+                 <void property="mapValueTypeInfo"> 
+                  <object class="org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo"> 
+                   <void property="mapKeyTypeInfo"> 
+                    <object idref="PrimitiveTypeInfo1"/> 
+                   </void> 
+                   <void property="mapValueTypeInfo"> 
+                    <object id="UnionTypeInfo0" class="org.apache.hadoop.hive.serde2.typeinfo.UnionTypeInfo"> 
+                     <void property="allUnionObjectTypeInfos"> 
+                      <object class="java.util.ArrayList"> 
+                       <void method="add"> 
+                        <object idref="PrimitiveTypeInfo0"/> 
+                       </void> 
+                       <void method="add"> 
+                        <object id="PrimitiveTypeInfo2" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
+                         <void property="typeName"> 
+                          <string>bigint</string> 
+                         </void> 
+                        </object> 
+                       </void> 
+                       <void method="add"> 
+                        <object idref="PrimitiveTypeInfo1"/> 
+                       </void> 
+                       <void method="add"> 
+                        <object class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
+                         <void property="typeName"> 
+                          <string>double</string> 
+                         </void> 
+                        </object> 
+                       </void> 
+                       <void method="add"> 
+                        <object class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
+                         <void property="typeName"> 
+                          <string>boolean</string> 
+                         </void> 
+                        </object> 
+                       </void> 
+                       <void method="add"> 
+                        <object idref="ListTypeInfo2"/> 
+                       </void> 
+                       <void method="add"> 
+                        <object idref="MapTypeInfo0"/> 
+                       </void> 
+                      </object> 
+                     </void> 
+                    </object> 
+                   </void> 
+                  </object> 
+                 </void> 
+                </object> 
+               </void> 
+              </object> 
+             </void> 
+             <void property="typeName"> 
+              <string>map&lt;string,map&lt;string,map&lt;string,uniontype&lt;int,bigint,string,double,boolean,array&lt;string&gt;,map&lt;string,string&gt;&gt;&gt;&gt;&gt;</string> 
+             </void> 
+            </object> 
+           </void> 
+           <void method="add"> 
+            <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
+             <void property="internalName"> 
+              <string>unionfield1</string> 
+             </void> 
+             <void property="tabAlias"> 
+              <string>src_thrift</string> 
+             </void> 
+             <void property="type"> 
+              <object idref="UnionTypeInfo0"/> 
+             </void> 
+             <void property="typeName"> 
+              <string>uniontype&lt;int,bigint,string,double,boolean,array&lt;string&gt;,map&lt;string,string&gt;&gt;</string> 
+             </void> 
+            </object> 
+           </void> 
+           <void method="add"> 
+            <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
+             <void property="internalName"> 
+              <string>unionfield2</string> 
+             </void> 
+             <void property="tabAlias"> 
+              <string>src_thrift</string> 
+             </void> 
+             <void property="type"> 
+              <object idref="UnionTypeInfo0"/> 
+             </void> 
+             <void property="typeName"> 
+              <string>uniontype&lt;int,bigint,string,double,boolean,array&lt;string&gt;,map&lt;string,string&gt;&gt;</string> 
+             </void> 
+            </object> 
+           </void> 
+           <void method="add"> 
+            <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
+             <void property="internalName"> 
+              <string>unionfield3</string> 
+             </void> 
+             <void property="tabAlias"> 
+              <string>src_thrift</string> 
+             </void> 
+             <void property="type"> 
+              <object idref="UnionTypeInfo0"/> 
+             </void> 
+             <void property="typeName"> 
+              <string>uniontype&lt;int,bigint,string,double,boolean,array&lt;string&gt;,map&lt;string,string&gt;&gt;</string> 
+             </void> 
+            </object> 
+           </void> 
+           <void method="add"> 
+            <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
              <void property="hiddenVirtualCol"> 
               <boolean>true</boolean> 
              </void> 
@@ -746,11 +869,7 @@
               <string>src_thrift</string> 
              </void> 
              <void property="type"> 
-              <object id="PrimitiveTypeInfo2" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
-               <void property="typeName"> 
-                <string>bigint</string> 
-               </void> 
-              </object> 
+              <object idref="PrimitiveTypeInfo2"/> 
              </void> 
              <void property="typeName"> 
               <string>bigint</string> 
@@ -902,7 +1021,7 @@
           </void> 
           <void method="put"> 
            <string>totalSize</string> 
-           <string>1606</string> 
+           <string>3070</string> 
           </void> 
           <void method="put"> 
            <string>bucket_count</string> 

Modified: hive/branches/cbo/ql/src/test/results/compiler/plan/input_testxpath2.q.xml
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/test/results/compiler/plan/input_testxpath2.q.xml?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/test/results/compiler/plan/input_testxpath2.q.xml (original)
+++ hive/branches/cbo/ql/src/test/results/compiler/plan/input_testxpath2.q.xml Mon Sep 15 22:46:44 2014
@@ -131,7 +131,7 @@
             </void> 
             <void method="put"> 
              <string>totalSize</string> 
-             <string>1606</string> 
+             <string>3070</string> 
             </void> 
             <void method="put"> 
              <string>bucket_count</string> 
@@ -793,7 +793,7 @@
               <string>src_thrift</string> 
              </void> 
              <void property="type"> 
-              <object class="org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo"> 
+              <object id="ListTypeInfo2" class="org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo"> 
                <void property="listElementTypeInfo"> 
                 <object idref="PrimitiveTypeInfo1"/> 
                </void> 
@@ -812,6 +812,125 @@
            </void> 
            <void method="add"> 
             <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
+             <void property="internalName"> 
+              <string>attributes</string> 
+             </void> 
+             <void property="tabAlias"> 
+              <string>src_thrift</string> 
+             </void> 
+             <void property="type"> 
+              <object class="org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo"> 
+               <void property="mapKeyTypeInfo"> 
+                <object idref="PrimitiveTypeInfo1"/> 
+               </void> 
+               <void property="mapValueTypeInfo"> 
+                <object class="org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo"> 
+                 <void property="mapKeyTypeInfo"> 
+                  <object idref="PrimitiveTypeInfo1"/> 
+                 </void> 
+                 <void property="mapValueTypeInfo"> 
+                  <object class="org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo"> 
+                   <void property="mapKeyTypeInfo"> 
+                    <object idref="PrimitiveTypeInfo1"/> 
+                   </void> 
+                   <void property="mapValueTypeInfo"> 
+                    <object id="UnionTypeInfo0" class="org.apache.hadoop.hive.serde2.typeinfo.UnionTypeInfo"> 
+                     <void property="allUnionObjectTypeInfos"> 
+                      <object class="java.util.ArrayList"> 
+                       <void method="add"> 
+                        <object idref="PrimitiveTypeInfo0"/> 
+                       </void> 
+                       <void method="add"> 
+                        <object id="PrimitiveTypeInfo3" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
+                         <void property="typeName"> 
+                          <string>bigint</string> 
+                         </void> 
+                        </object> 
+                       </void> 
+                       <void method="add"> 
+                        <object idref="PrimitiveTypeInfo1"/> 
+                       </void> 
+                       <void method="add"> 
+                        <object class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
+                         <void property="typeName"> 
+                          <string>double</string> 
+                         </void> 
+                        </object> 
+                       </void> 
+                       <void method="add"> 
+                        <object idref="PrimitiveTypeInfo2"/> 
+                       </void> 
+                       <void method="add"> 
+                        <object idref="ListTypeInfo2"/> 
+                       </void> 
+                       <void method="add"> 
+                        <object idref="MapTypeInfo0"/> 
+                       </void> 
+                      </object> 
+                     </void> 
+                    </object> 
+                   </void> 
+                  </object> 
+                 </void> 
+                </object> 
+               </void> 
+              </object> 
+             </void> 
+             <void property="typeName"> 
+              <string>map&lt;string,map&lt;string,map&lt;string,uniontype&lt;int,bigint,string,double,boolean,array&lt;string&gt;,map&lt;string,string&gt;&gt;&gt;&gt;&gt;</string> 
+             </void> 
+            </object> 
+           </void> 
+           <void method="add"> 
+            <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
+             <void property="internalName"> 
+              <string>unionfield1</string> 
+             </void> 
+             <void property="tabAlias"> 
+              <string>src_thrift</string> 
+             </void> 
+             <void property="type"> 
+              <object idref="UnionTypeInfo0"/> 
+             </void> 
+             <void property="typeName"> 
+              <string>uniontype&lt;int,bigint,string,double,boolean,array&lt;string&gt;,map&lt;string,string&gt;&gt;</string> 
+             </void> 
+            </object> 
+           </void> 
+           <void method="add"> 
+            <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
+             <void property="internalName"> 
+              <string>unionfield2</string> 
+             </void> 
+             <void property="tabAlias"> 
+              <string>src_thrift</string> 
+             </void> 
+             <void property="type"> 
+              <object idref="UnionTypeInfo0"/> 
+             </void> 
+             <void property="typeName"> 
+              <string>uniontype&lt;int,bigint,string,double,boolean,array&lt;string&gt;,map&lt;string,string&gt;&gt;</string> 
+             </void> 
+            </object> 
+           </void> 
+           <void method="add"> 
+            <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
+             <void property="internalName"> 
+              <string>unionfield3</string> 
+             </void> 
+             <void property="tabAlias"> 
+              <string>src_thrift</string> 
+             </void> 
+             <void property="type"> 
+              <object idref="UnionTypeInfo0"/> 
+             </void> 
+             <void property="typeName"> 
+              <string>uniontype&lt;int,bigint,string,double,boolean,array&lt;string&gt;,map&lt;string,string&gt;&gt;</string> 
+             </void> 
+            </object> 
+           </void> 
+           <void method="add"> 
+            <object class="org.apache.hadoop.hive.ql.exec.ColumnInfo"> 
              <void property="hiddenVirtualCol"> 
               <boolean>true</boolean> 
              </void> 
@@ -822,11 +941,7 @@
               <string>src_thrift</string> 
              </void> 
              <void property="type"> 
-              <object id="PrimitiveTypeInfo3" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
-               <void property="typeName"> 
-                <string>bigint</string> 
-               </void> 
-              </object> 
+              <object idref="PrimitiveTypeInfo3"/> 
              </void> 
              <void property="typeName"> 
               <string>bigint</string> 
@@ -978,7 +1093,7 @@
           </void> 
           <void method="put"> 
            <string>totalSize</string> 
-           <string>1606</string> 
+           <string>3070</string> 
           </void> 
           <void method="put"> 
            <string>bucket_count</string> 

Modified: hive/branches/cbo/serde/if/test/complex.thrift
URL: http://svn.apache.org/viewvc/hive/branches/cbo/serde/if/test/complex.thrift?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/serde/if/test/complex.thrift (original)
+++ hive/branches/cbo/serde/if/test/complex.thrift Mon Sep 15 22:46:44 2014
@@ -18,6 +18,16 @@
 
 namespace java org.apache.hadoop.hive.serde2.thrift.test
 
+union PropValueUnion {
+	1: optional i32 intValue;
+	2: optional i64 longValue;
+	3: optional string stringValue;
+	4: optional double doubleValue;
+	5: optional bool flag;
+	6: list<string> lString;
+	7: map<string, string> unionMStringString;
+}
+
 struct IntString {
   1: i32  myint;
   2: string myString;
@@ -31,4 +41,13 @@ struct Complex {
   4: list<string> lString;
   5: list<IntString> lintString;
   6: map<string, string> mStringString;
+  7: map<string,map<string,map<string,PropValueUnion>>> attributes;
+  8: PropValueUnion unionField1;
+  9: PropValueUnion unionField2;
+  10: PropValueUnion unionField3;
+}
+
+struct SetIntString {
+  1: set<IntString> sIntString;
+  2: string aString;
 }

Modified: hive/branches/cbo/serde/src/gen/thrift/gen-cpp/complex_types.cpp
URL: http://svn.apache.org/viewvc/hive/branches/cbo/serde/src/gen/thrift/gen-cpp/complex_types.cpp?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/serde/src/gen/thrift/gen-cpp/complex_types.cpp (original)
+++ hive/branches/cbo/serde/src/gen/thrift/gen-cpp/complex_types.cpp Mon Sep 15 22:46:44 2014
@@ -10,6 +10,195 @@
 
 
 
+const char* PropValueUnion::ascii_fingerprint = "123CD9D82D5B5054B5054EFD63FC8590";
+const uint8_t PropValueUnion::binary_fingerprint[16] = {0x12,0x3C,0xD9,0xD8,0x2D,0x5B,0x50,0x54,0xB5,0x05,0x4E,0xFD,0x63,0xFC,0x85,0x90};
+
+uint32_t PropValueUnion::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          xfer += iprot->readI32(this->intValue);
+          this->__isset.intValue = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->longValue);
+          this->__isset.longValue = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->stringValue);
+          this->__isset.stringValue = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_DOUBLE) {
+          xfer += iprot->readDouble(this->doubleValue);
+          this->__isset.doubleValue = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->flag);
+          this->__isset.flag = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 6:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->lString.clear();
+            uint32_t _size0;
+            ::apache::thrift::protocol::TType _etype3;
+            xfer += iprot->readListBegin(_etype3, _size0);
+            this->lString.resize(_size0);
+            uint32_t _i4;
+            for (_i4 = 0; _i4 < _size0; ++_i4)
+            {
+              xfer += iprot->readString(this->lString[_i4]);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.lString = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 7:
+        if (ftype == ::apache::thrift::protocol::T_MAP) {
+          {
+            this->unionMStringString.clear();
+            uint32_t _size5;
+            ::apache::thrift::protocol::TType _ktype6;
+            ::apache::thrift::protocol::TType _vtype7;
+            xfer += iprot->readMapBegin(_ktype6, _vtype7, _size5);
+            uint32_t _i9;
+            for (_i9 = 0; _i9 < _size5; ++_i9)
+            {
+              std::string _key10;
+              xfer += iprot->readString(_key10);
+              std::string& _val11 = this->unionMStringString[_key10];
+              xfer += iprot->readString(_val11);
+            }
+            xfer += iprot->readMapEnd();
+          }
+          this->__isset.unionMStringString = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t PropValueUnion::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("PropValueUnion");
+
+  if (this->__isset.intValue) {
+    xfer += oprot->writeFieldBegin("intValue", ::apache::thrift::protocol::T_I32, 1);
+    xfer += oprot->writeI32(this->intValue);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.longValue) {
+    xfer += oprot->writeFieldBegin("longValue", ::apache::thrift::protocol::T_I64, 2);
+    xfer += oprot->writeI64(this->longValue);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.stringValue) {
+    xfer += oprot->writeFieldBegin("stringValue", ::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeString(this->stringValue);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.doubleValue) {
+    xfer += oprot->writeFieldBegin("doubleValue", ::apache::thrift::protocol::T_DOUBLE, 4);
+    xfer += oprot->writeDouble(this->doubleValue);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.flag) {
+    xfer += oprot->writeFieldBegin("flag", ::apache::thrift::protocol::T_BOOL, 5);
+    xfer += oprot->writeBool(this->flag);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldBegin("lString", ::apache::thrift::protocol::T_LIST, 6);
+  {
+    xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->lString.size()));
+    std::vector<std::string> ::const_iterator _iter12;
+    for (_iter12 = this->lString.begin(); _iter12 != this->lString.end(); ++_iter12)
+    {
+      xfer += oprot->writeString((*_iter12));
+    }
+    xfer += oprot->writeListEnd();
+  }
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("unionMStringString", ::apache::thrift::protocol::T_MAP, 7);
+  {
+    xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->unionMStringString.size()));
+    std::map<std::string, std::string> ::const_iterator _iter13;
+    for (_iter13 = this->unionMStringString.begin(); _iter13 != this->unionMStringString.end(); ++_iter13)
+    {
+      xfer += oprot->writeString(_iter13->first);
+      xfer += oprot->writeString(_iter13->second);
+    }
+    xfer += oprot->writeMapEnd();
+  }
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(PropValueUnion &a, PropValueUnion &b) {
+  using ::std::swap;
+  swap(a.intValue, b.intValue);
+  swap(a.longValue, b.longValue);
+  swap(a.stringValue, b.stringValue);
+  swap(a.doubleValue, b.doubleValue);
+  swap(a.flag, b.flag);
+  swap(a.lString, b.lString);
+  swap(a.unionMStringString, b.unionMStringString);
+  swap(a.__isset, b.__isset);
+}
+
 const char* IntString::ascii_fingerprint = "52C6DAB6CF51AF617111F6D3964C6503";
 const uint8_t IntString::binary_fingerprint[16] = {0x52,0xC6,0xDA,0xB6,0xCF,0x51,0xAF,0x61,0x71,0x11,0xF6,0xD3,0x96,0x4C,0x65,0x03};
 
@@ -98,8 +287,8 @@ void swap(IntString &a, IntString &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* Complex::ascii_fingerprint = "B6556501F2F746F0BF83D55B0A9824DE";
-const uint8_t Complex::binary_fingerprint[16] = {0xB6,0x55,0x65,0x01,0xF2,0xF7,0x46,0xF0,0xBF,0x83,0xD5,0x5B,0x0A,0x98,0x24,0xDE};
+const char* Complex::ascii_fingerprint = "FFA84FEA7037F5858F2BFEDA73AD679A";
+const uint8_t Complex::binary_fingerprint[16] = {0xFF,0xA8,0x4F,0xEA,0x70,0x37,0xF5,0x85,0x8F,0x2B,0xFE,0xDA,0x73,0xAD,0x67,0x9A};
 
 uint32_t Complex::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -141,14 +330,14 @@ uint32_t Complex::read(::apache::thrift:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->lint.clear();
-            uint32_t _size0;
-            ::apache::thrift::protocol::TType _etype3;
-            xfer += iprot->readListBegin(_etype3, _size0);
-            this->lint.resize(_size0);
-            uint32_t _i4;
-            for (_i4 = 0; _i4 < _size0; ++_i4)
+            uint32_t _size14;
+            ::apache::thrift::protocol::TType _etype17;
+            xfer += iprot->readListBegin(_etype17, _size14);
+            this->lint.resize(_size14);
+            uint32_t _i18;
+            for (_i18 = 0; _i18 < _size14; ++_i18)
             {
-              xfer += iprot->readI32(this->lint[_i4]);
+              xfer += iprot->readI32(this->lint[_i18]);
             }
             xfer += iprot->readListEnd();
           }
@@ -161,14 +350,14 @@ uint32_t Complex::read(::apache::thrift:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->lString.clear();
-            uint32_t _size5;
-            ::apache::thrift::protocol::TType _etype8;
-            xfer += iprot->readListBegin(_etype8, _size5);
-            this->lString.resize(_size5);
-            uint32_t _i9;
-            for (_i9 = 0; _i9 < _size5; ++_i9)
+            uint32_t _size19;
+            ::apache::thrift::protocol::TType _etype22;
+            xfer += iprot->readListBegin(_etype22, _size19);
+            this->lString.resize(_size19);
+            uint32_t _i23;
+            for (_i23 = 0; _i23 < _size19; ++_i23)
             {
-              xfer += iprot->readString(this->lString[_i9]);
+              xfer += iprot->readString(this->lString[_i23]);
             }
             xfer += iprot->readListEnd();
           }
@@ -181,14 +370,14 @@ uint32_t Complex::read(::apache::thrift:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->lintString.clear();
-            uint32_t _size10;
-            ::apache::thrift::protocol::TType _etype13;
-            xfer += iprot->readListBegin(_etype13, _size10);
-            this->lintString.resize(_size10);
-            uint32_t _i14;
-            for (_i14 = 0; _i14 < _size10; ++_i14)
+            uint32_t _size24;
+            ::apache::thrift::protocol::TType _etype27;
+            xfer += iprot->readListBegin(_etype27, _size24);
+            this->lintString.resize(_size24);
+            uint32_t _i28;
+            for (_i28 = 0; _i28 < _size24; ++_i28)
             {
-              xfer += this->lintString[_i14].read(iprot);
+              xfer += this->lintString[_i28].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -201,17 +390,17 @@ uint32_t Complex::read(::apache::thrift:
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->mStringString.clear();
-            uint32_t _size15;
-            ::apache::thrift::protocol::TType _ktype16;
-            ::apache::thrift::protocol::TType _vtype17;
-            xfer += iprot->readMapBegin(_ktype16, _vtype17, _size15);
-            uint32_t _i19;
-            for (_i19 = 0; _i19 < _size15; ++_i19)
+            uint32_t _size29;
+            ::apache::thrift::protocol::TType _ktype30;
+            ::apache::thrift::protocol::TType _vtype31;
+            xfer += iprot->readMapBegin(_ktype30, _vtype31, _size29);
+            uint32_t _i33;
+            for (_i33 = 0; _i33 < _size29; ++_i33)
             {
-              std::string _key20;
-              xfer += iprot->readString(_key20);
-              std::string& _val21 = this->mStringString[_key20];
-              xfer += iprot->readString(_val21);
+              std::string _key34;
+              xfer += iprot->readString(_key34);
+              std::string& _val35 = this->mStringString[_key34];
+              xfer += iprot->readString(_val35);
             }
             xfer += iprot->readMapEnd();
           }
@@ -220,6 +409,83 @@ uint32_t Complex::read(::apache::thrift:
           xfer += iprot->skip(ftype);
         }
         break;
+      case 7:
+        if (ftype == ::apache::thrift::protocol::T_MAP) {
+          {
+            this->attributes.clear();
+            uint32_t _size36;
+            ::apache::thrift::protocol::TType _ktype37;
+            ::apache::thrift::protocol::TType _vtype38;
+            xfer += iprot->readMapBegin(_ktype37, _vtype38, _size36);
+            uint32_t _i40;
+            for (_i40 = 0; _i40 < _size36; ++_i40)
+            {
+              std::string _key41;
+              xfer += iprot->readString(_key41);
+              std::map<std::string, std::map<std::string, PropValueUnion> > & _val42 = this->attributes[_key41];
+              {
+                _val42.clear();
+                uint32_t _size43;
+                ::apache::thrift::protocol::TType _ktype44;
+                ::apache::thrift::protocol::TType _vtype45;
+                xfer += iprot->readMapBegin(_ktype44, _vtype45, _size43);
+                uint32_t _i47;
+                for (_i47 = 0; _i47 < _size43; ++_i47)
+                {
+                  std::string _key48;
+                  xfer += iprot->readString(_key48);
+                  std::map<std::string, PropValueUnion> & _val49 = _val42[_key48];
+                  {
+                    _val49.clear();
+                    uint32_t _size50;
+                    ::apache::thrift::protocol::TType _ktype51;
+                    ::apache::thrift::protocol::TType _vtype52;
+                    xfer += iprot->readMapBegin(_ktype51, _vtype52, _size50);
+                    uint32_t _i54;
+                    for (_i54 = 0; _i54 < _size50; ++_i54)
+                    {
+                      std::string _key55;
+                      xfer += iprot->readString(_key55);
+                      PropValueUnion& _val56 = _val49[_key55];
+                      xfer += _val56.read(iprot);
+                    }
+                    xfer += iprot->readMapEnd();
+                  }
+                }
+                xfer += iprot->readMapEnd();
+              }
+            }
+            xfer += iprot->readMapEnd();
+          }
+          this->__isset.attributes = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 8:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->unionField1.read(iprot);
+          this->__isset.unionField1 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 9:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->unionField2.read(iprot);
+          this->__isset.unionField2 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 10:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->unionField3.read(iprot);
+          this->__isset.unionField3 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -247,10 +513,10 @@ uint32_t Complex::write(::apache::thrift
   xfer += oprot->writeFieldBegin("lint", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I32, static_cast<uint32_t>(this->lint.size()));
-    std::vector<int32_t> ::const_iterator _iter22;
-    for (_iter22 = this->lint.begin(); _iter22 != this->lint.end(); ++_iter22)
+    std::vector<int32_t> ::const_iterator _iter57;
+    for (_iter57 = this->lint.begin(); _iter57 != this->lint.end(); ++_iter57)
     {
-      xfer += oprot->writeI32((*_iter22));
+      xfer += oprot->writeI32((*_iter57));
     }
     xfer += oprot->writeListEnd();
   }
@@ -259,10 +525,10 @@ uint32_t Complex::write(::apache::thrift
   xfer += oprot->writeFieldBegin("lString", ::apache::thrift::protocol::T_LIST, 4);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->lString.size()));
-    std::vector<std::string> ::const_iterator _iter23;
-    for (_iter23 = this->lString.begin(); _iter23 != this->lString.end(); ++_iter23)
+    std::vector<std::string> ::const_iterator _iter58;
+    for (_iter58 = this->lString.begin(); _iter58 != this->lString.end(); ++_iter58)
     {
-      xfer += oprot->writeString((*_iter23));
+      xfer += oprot->writeString((*_iter58));
     }
     xfer += oprot->writeListEnd();
   }
@@ -271,10 +537,10 @@ uint32_t Complex::write(::apache::thrift
   xfer += oprot->writeFieldBegin("lintString", ::apache::thrift::protocol::T_LIST, 5);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->lintString.size()));
-    std::vector<IntString> ::const_iterator _iter24;
-    for (_iter24 = this->lintString.begin(); _iter24 != this->lintString.end(); ++_iter24)
+    std::vector<IntString> ::const_iterator _iter59;
+    for (_iter59 = this->lintString.begin(); _iter59 != this->lintString.end(); ++_iter59)
     {
-      xfer += (*_iter24).write(oprot);
+      xfer += (*_iter59).write(oprot);
     }
     xfer += oprot->writeListEnd();
   }
@@ -283,16 +549,59 @@ uint32_t Complex::write(::apache::thrift
   xfer += oprot->writeFieldBegin("mStringString", ::apache::thrift::protocol::T_MAP, 6);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->mStringString.size()));
-    std::map<std::string, std::string> ::const_iterator _iter25;
-    for (_iter25 = this->mStringString.begin(); _iter25 != this->mStringString.end(); ++_iter25)
+    std::map<std::string, std::string> ::const_iterator _iter60;
+    for (_iter60 = this->mStringString.begin(); _iter60 != this->mStringString.end(); ++_iter60)
     {
-      xfer += oprot->writeString(_iter25->first);
-      xfer += oprot->writeString(_iter25->second);
+      xfer += oprot->writeString(_iter60->first);
+      xfer += oprot->writeString(_iter60->second);
     }
     xfer += oprot->writeMapEnd();
   }
   xfer += oprot->writeFieldEnd();
 
+  xfer += oprot->writeFieldBegin("attributes", ::apache::thrift::protocol::T_MAP, 7);
+  {
+    xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_MAP, static_cast<uint32_t>(this->attributes.size()));
+    std::map<std::string, std::map<std::string, std::map<std::string, PropValueUnion> > > ::const_iterator _iter61;
+    for (_iter61 = this->attributes.begin(); _iter61 != this->attributes.end(); ++_iter61)
+    {
+      xfer += oprot->writeString(_iter61->first);
+      {
+        xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_MAP, static_cast<uint32_t>(_iter61->second.size()));
+        std::map<std::string, std::map<std::string, PropValueUnion> > ::const_iterator _iter62;
+        for (_iter62 = _iter61->second.begin(); _iter62 != _iter61->second.end(); ++_iter62)
+        {
+          xfer += oprot->writeString(_iter62->first);
+          {
+            xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(_iter62->second.size()));
+            std::map<std::string, PropValueUnion> ::const_iterator _iter63;
+            for (_iter63 = _iter62->second.begin(); _iter63 != _iter62->second.end(); ++_iter63)
+            {
+              xfer += oprot->writeString(_iter63->first);
+              xfer += _iter63->second.write(oprot);
+            }
+            xfer += oprot->writeMapEnd();
+          }
+        }
+        xfer += oprot->writeMapEnd();
+      }
+    }
+    xfer += oprot->writeMapEnd();
+  }
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("unionField1", ::apache::thrift::protocol::T_STRUCT, 8);
+  xfer += this->unionField1.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("unionField2", ::apache::thrift::protocol::T_STRUCT, 9);
+  xfer += this->unionField2.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("unionField3", ::apache::thrift::protocol::T_STRUCT, 10);
+  xfer += this->unionField3.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -306,6 +615,10 @@ void swap(Complex &a, Complex &b) {
   swap(a.lString, b.lString);
   swap(a.lintString, b.lintString);
   swap(a.mStringString, b.mStringString);
+  swap(a.attributes, b.attributes);
+  swap(a.unionField1, b.unionField1);
+  swap(a.unionField2, b.unionField2);
+  swap(a.unionField3, b.unionField3);
   swap(a.__isset, b.__isset);
 }
 

Modified: hive/branches/cbo/serde/src/gen/thrift/gen-cpp/complex_types.h
URL: http://svn.apache.org/viewvc/hive/branches/cbo/serde/src/gen/thrift/gen-cpp/complex_types.h?rev=1625176&r1=1625175&r2=1625176&view=diff
==============================================================================
--- hive/branches/cbo/serde/src/gen/thrift/gen-cpp/complex_types.h (original)
+++ hive/branches/cbo/serde/src/gen/thrift/gen-cpp/complex_types.h Mon Sep 15 22:46:44 2014
@@ -16,6 +16,112 @@
 
 
 
+typedef struct _PropValueUnion__isset {
+  _PropValueUnion__isset() : intValue(false), longValue(false), stringValue(false), doubleValue(false), flag(false), lString(false), unionMStringString(false) {}
+  bool intValue;
+  bool longValue;
+  bool stringValue;
+  bool doubleValue;
+  bool flag;
+  bool lString;
+  bool unionMStringString;
+} _PropValueUnion__isset;
+
+class PropValueUnion {
+ public:
+
+  static const char* ascii_fingerprint; // = "123CD9D82D5B5054B5054EFD63FC8590";
+  static const uint8_t binary_fingerprint[16]; // = {0x12,0x3C,0xD9,0xD8,0x2D,0x5B,0x50,0x54,0xB5,0x05,0x4E,0xFD,0x63,0xFC,0x85,0x90};
+
+  PropValueUnion() : intValue(0), longValue(0), stringValue(), doubleValue(0), flag(0) {
+  }
+
+  virtual ~PropValueUnion() throw() {}
+
+  int32_t intValue;
+  int64_t longValue;
+  std::string stringValue;
+  double doubleValue;
+  bool flag;
+  std::vector<std::string>  lString;
+  std::map<std::string, std::string>  unionMStringString;
+
+  _PropValueUnion__isset __isset;
+
+  void __set_intValue(const int32_t val) {
+    intValue = val;
+    __isset.intValue = true;
+  }
+
+  void __set_longValue(const int64_t val) {
+    longValue = val;
+    __isset.longValue = true;
+  }
+
+  void __set_stringValue(const std::string& val) {
+    stringValue = val;
+    __isset.stringValue = true;
+  }
+
+  void __set_doubleValue(const double val) {
+    doubleValue = val;
+    __isset.doubleValue = true;
+  }
+
+  void __set_flag(const bool val) {
+    flag = val;
+    __isset.flag = true;
+  }
+
+  void __set_lString(const std::vector<std::string> & val) {
+    lString = val;
+  }
+
+  void __set_unionMStringString(const std::map<std::string, std::string> & val) {
+    unionMStringString = val;
+  }
+
+  bool operator == (const PropValueUnion & rhs) const
+  {
+    if (__isset.intValue != rhs.__isset.intValue)
+      return false;
+    else if (__isset.intValue && !(intValue == rhs.intValue))
+      return false;
+    if (__isset.longValue != rhs.__isset.longValue)
+      return false;
+    else if (__isset.longValue && !(longValue == rhs.longValue))
+      return false;
+    if (__isset.stringValue != rhs.__isset.stringValue)
+      return false;
+    else if (__isset.stringValue && !(stringValue == rhs.stringValue))
+      return false;
+    if (__isset.doubleValue != rhs.__isset.doubleValue)
+      return false;
+    else if (__isset.doubleValue && !(doubleValue == rhs.doubleValue))
+      return false;
+    if (__isset.flag != rhs.__isset.flag)
+      return false;
+    else if (__isset.flag && !(flag == rhs.flag))
+      return false;
+    if (!(lString == rhs.lString))
+      return false;
+    if (!(unionMStringString == rhs.unionMStringString))
+      return false;
+    return true;
+  }
+  bool operator != (const PropValueUnion &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const PropValueUnion & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+void swap(PropValueUnion &a, PropValueUnion &b);
+
 typedef struct _IntString__isset {
   _IntString__isset() : myint(false), myString(false), underscore_int(false) {}
   bool myint;
@@ -76,20 +182,24 @@ class IntString {
 void swap(IntString &a, IntString &b);
 
 typedef struct _Complex__isset {
-  _Complex__isset() : aint(false), aString(false), lint(false), lString(false), lintString(false), mStringString(false) {}
+  _Complex__isset() : aint(false), aString(false), lint(false), lString(false), lintString(false), mStringString(false), attributes(false), unionField1(false), unionField2(false), unionField3(false) {}
   bool aint;
   bool aString;
   bool lint;
   bool lString;
   bool lintString;
   bool mStringString;
+  bool attributes;
+  bool unionField1;
+  bool unionField2;
+  bool unionField3;
 } _Complex__isset;
 
 class Complex {
  public:
 
-  static const char* ascii_fingerprint; // = "B6556501F2F746F0BF83D55B0A9824DE";
-  static const uint8_t binary_fingerprint[16]; // = {0xB6,0x55,0x65,0x01,0xF2,0xF7,0x46,0xF0,0xBF,0x83,0xD5,0x5B,0x0A,0x98,0x24,0xDE};
+  static const char* ascii_fingerprint; // = "FFA84FEA7037F5858F2BFEDA73AD679A";
+  static const uint8_t binary_fingerprint[16]; // = {0xFF,0xA8,0x4F,0xEA,0x70,0x37,0xF5,0x85,0x8F,0x2B,0xFE,0xDA,0x73,0xAD,0x67,0x9A};
 
   Complex() : aint(0), aString() {
   }
@@ -102,6 +212,10 @@ class Complex {
   std::vector<std::string>  lString;
   std::vector<IntString>  lintString;
   std::map<std::string, std::string>  mStringString;
+  std::map<std::string, std::map<std::string, std::map<std::string, PropValueUnion> > >  attributes;
+  PropValueUnion unionField1;
+  PropValueUnion unionField2;
+  PropValueUnion unionField3;
 
   _Complex__isset __isset;
 
@@ -129,6 +243,22 @@ class Complex {
     mStringString = val;
   }
 
+  void __set_attributes(const std::map<std::string, std::map<std::string, std::map<std::string, PropValueUnion> > > & val) {
+    attributes = val;
+  }
+
+  void __set_unionField1(const PropValueUnion& val) {
+    unionField1 = val;
+  }
+
+  void __set_unionField2(const PropValueUnion& val) {
+    unionField2 = val;
+  }
+
+  void __set_unionField3(const PropValueUnion& val) {
+    unionField3 = val;
+  }
+
   bool operator == (const Complex & rhs) const
   {
     if (!(aint == rhs.aint))
@@ -143,6 +273,14 @@ class Complex {
       return false;
     if (!(mStringString == rhs.mStringString))
       return false;
+    if (!(attributes == rhs.attributes))
+      return false;
+    if (!(unionField1 == rhs.unionField1))
+      return false;
+    if (!(unionField2 == rhs.unionField2))
+      return false;
+    if (!(unionField3 == rhs.unionField3))
+      return false;
     return true;
   }
   bool operator != (const Complex &rhs) const {