You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by na...@apache.org on 2009/08/14 09:48:09 UTC
svn commit: r804106 [23/24] - in /hadoop/hive/trunk: ./
contrib/src/java/org/apache/hadoop/hive/contrib/udaf/
contrib/src/java/org/apache/hadoop/hive/contrib/udaf/example/
contrib/src/java/org/apache/hadoop/hive/contrib/udf/
contrib/src/java/org/apache...
Modified: hadoop/hive/trunk/ql/src/test/results/compiler/plan/union.q.xml
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/results/compiler/plan/union.q.xml?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/test/results/compiler/plan/union.q.xml (original)
+++ hadoop/hive/trunk/ql/src/test/results/compiler/plan/union.q.xml Fri Aug 14 07:48:02 2009
@@ -33,7 +33,7 @@
<boolean>true</boolean>
</void>
<void property="sourceDir">
- <string>file:/data/users/athusoo/commits/hive_trunk_ws1/build/ql/tmp/629731800/10000</string>
+ <string>file:/data/users/zshao/tools/699-trunk-apache-hive/.ptest_3/build/ql/tmp/190958347/10000</string>
</void>
<void property="targetDir">
<string>../build/ql/test/data/warehouse/union.out</string>
@@ -64,10 +64,10 @@
<boolean>true</boolean>
</void>
<void property="sourceDir">
- <string>file:/data/users/athusoo/commits/hive_trunk_ws1/build/ql/tmp/1806940690/10001</string>
+ <string>file:/data/users/zshao/tools/699-trunk-apache-hive/.ptest_3/build/ql/tmp/547267680/10001</string>
</void>
<void property="targetDir">
- <string>file:/data/users/athusoo/commits/hive_trunk_ws1/build/ql/tmp/629731800/10000</string>
+ <string>file:/data/users/zshao/tools/699-trunk-apache-hive/.ptest_3/build/ql/tmp/190958347/10000</string>
</void>
</object>
</void>
@@ -85,7 +85,7 @@
<void property="aliasToWork">
<object class="java.util.LinkedHashMap">
<void method="put">
- <string>file:/data/users/athusoo/commits/hive_trunk_ws1/build/ql/tmp/1806940690/10001</string>
+ <string>file:/data/users/zshao/tools/699-trunk-apache-hive/.ptest_3/build/ql/tmp/547267680/10001</string>
<object id="TableScanOperator0" class="org.apache.hadoop.hive.ql.exec.TableScanOperator">
<void property="childOperators">
<object class="java.util.ArrayList">
@@ -144,24 +144,22 @@
<void property="partitionCols">
<object class="java.util.ArrayList">
<void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeFuncDesc">
- <void property="UDFClass">
- <class>org.apache.hadoop.hive.ql.udf.UDFRand</class>
- </void>
- <void property="UDFMethod">
- <object class="org.apache.hadoop.hive.ql.udf.UDFRand" method="getMethod">
- <string>evaluate</string>
- <array class="java.lang.Class" length="0"/>
- </object>
- </void>
+ <object class="org.apache.hadoop.hive.ql.plan.exprNodeGenericFuncDesc">
<void property="childExprs">
<object class="java.util.ArrayList"/>
</void>
- <void property="methodName">
- <string>rand</string>
+ <void property="genericUDF">
+ <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge">
+ <void property="udfClass">
+ <class>org.apache.hadoop.hive.ql.udf.UDFRand</class>
+ </void>
+ <void property="udfName">
+ <string>rand</string>
+ </void>
+ </object>
</void>
<void property="typeInfo">
- <object id="PrimitiveTypeInfo0" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo">
+ <object class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo">
<void property="typeName">
<string>double</string>
</void>
@@ -185,7 +183,7 @@
<string></string>
</void>
<void property="typeInfo">
- <object id="PrimitiveTypeInfo1" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo">
+ <object id="PrimitiveTypeInfo0" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo">
<void property="typeName">
<string>string</string>
</void>
@@ -202,7 +200,7 @@
<string></string>
</void>
<void property="typeInfo">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -256,7 +254,7 @@
<string>_col0</string>
</void>
<void property="type">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -266,7 +264,7 @@
<string>_col1</string>
</void>
<void property="type">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -294,10 +292,10 @@
<void property="pathToAliases">
<object class="java.util.LinkedHashMap">
<void method="put">
- <string>file:/data/users/athusoo/commits/hive_trunk_ws1/build/ql/tmp/1806940690/10001</string>
+ <string>file:/data/users/zshao/tools/699-trunk-apache-hive/.ptest_3/build/ql/tmp/547267680/10001</string>
<object class="java.util.ArrayList">
<void method="add">
- <string>file:/data/users/athusoo/commits/hive_trunk_ws1/build/ql/tmp/1806940690/10001</string>
+ <string>file:/data/users/zshao/tools/699-trunk-apache-hive/.ptest_3/build/ql/tmp/547267680/10001</string>
</void>
</object>
</void>
@@ -306,7 +304,7 @@
<void property="pathToPartitionInfo">
<object class="java.util.LinkedHashMap">
<void method="put">
- <string>file:/data/users/athusoo/commits/hive_trunk_ws1/build/ql/tmp/1806940690/10001</string>
+ <string>file:/data/users/zshao/tools/699-trunk-apache-hive/.ptest_3/build/ql/tmp/547267680/10001</string>
<object class="org.apache.hadoop.hive.ql.plan.partitionDesc">
<void property="tableDesc">
<object id="tableDesc2" class="org.apache.hadoop.hive.ql.plan.tableDesc">
@@ -350,7 +348,7 @@
<void property="conf">
<object class="org.apache.hadoop.hive.ql.plan.fileSinkDesc">
<void property="dirName">
- <string>file:/data/users/athusoo/commits/hive_trunk_ws1/build/ql/tmp/629731800/10000</string>
+ <string>file:/data/users/zshao/tools/699-trunk-apache-hive/.ptest_3/build/ql/tmp/190958347/10000</string>
</void>
<void property="tableInfo">
<object class="org.apache.hadoop.hive.ql.plan.tableDesc">
@@ -408,7 +406,7 @@
<string></string>
</void>
<void property="typeInfo">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -424,7 +422,7 @@
<string>0</string>
</void>
<void property="type">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -434,7 +432,7 @@
<string>1</string>
</void>
<void property="type">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -470,7 +468,7 @@
<void property="resolverCtx">
<object class="org.apache.hadoop.hive.ql.plan.ConditionalResolverMergeFiles$ConditionalResolverMergeFilesCtx">
<void property="dir">
- <string>file:/data/users/athusoo/commits/hive_trunk_ws1/build/ql/tmp/1806940690/10001</string>
+ <string>file:/data/users/zshao/tools/699-trunk-apache-hive/.ptest_3/build/ql/tmp/547267680/10001</string>
</void>
<void property="listTasks">
<object idref="ArrayList0"/>
@@ -558,7 +556,7 @@
</void>
<void method="put">
<string>location</string>
- <string>file:/data/users/athusoo/commits/hive_trunk_ws1/build/ql/test/data/warehouse/src</string>
+ <string>file:/data/users/zshao/tools/699-trunk-apache-hive/.ptest_3/build/ql/test/data/warehouse/src</string>
</void>
</object>
</void>
@@ -626,7 +624,7 @@
</void>
<void method="put">
<string>location</string>
- <string>file:/data/users/athusoo/commits/hive_trunk_ws1/build/ql/test/data/warehouse/src</string>
+ <string>file:/data/users/zshao/tools/699-trunk-apache-hive/.ptest_3/build/ql/test/data/warehouse/src</string>
</void>
</object>
</void>
@@ -673,7 +671,7 @@
<int>1</int>
</void>
<void property="dirName">
- <string>file:/data/users/athusoo/commits/hive_trunk_ws1/build/ql/tmp/1806940690/10001</string>
+ <string>file:/data/users/zshao/tools/699-trunk-apache-hive/.ptest_3/build/ql/tmp/547267680/10001</string>
</void>
<void property="tableInfo">
<object idref="tableDesc2"/>
@@ -706,7 +704,7 @@
<string>src</string>
</void>
<void property="typeInfo">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -720,7 +718,7 @@
<string>src</string>
</void>
<void property="typeInfo">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -770,7 +768,7 @@
<string>_col0</string>
</void>
<void property="type">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -780,7 +778,7 @@
<string>_col1</string>
</void>
<void property="type">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -821,7 +819,7 @@
<string>src</string>
</void>
<void property="typeInfo">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -835,7 +833,7 @@
<string>src</string>
</void>
<void property="typeInfo">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -882,59 +880,16 @@
<void property="conf">
<object class="org.apache.hadoop.hive.ql.plan.filterDesc">
<void property="predicate">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeFuncDesc">
- <void property="UDFClass">
- <class>org.apache.hadoop.hive.ql.udf.UDFOPGreaterThan</class>
- </void>
- <void property="UDFMethod">
- <object id="Method0" class="org.apache.hadoop.hive.ql.udf.UDFOPGreaterThan" method="getMethod">
- <string>evaluate</string>
- <array class="java.lang.Class" length="2">
- <void index="0">
- <class>org.apache.hadoop.hive.serde2.io.DoubleWritable</class>
- </void>
- <void index="1">
- <class>org.apache.hadoop.hive.serde2.io.DoubleWritable</class>
- </void>
- </array>
- </object>
- </void>
+ <object class="org.apache.hadoop.hive.ql.plan.exprNodeGenericFuncDesc">
<void property="childExprs">
<object class="java.util.ArrayList">
<void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeFuncDesc">
- <void property="UDFClass">
- <class>org.apache.hadoop.hive.ql.udf.UDFToDouble</class>
- </void>
- <void property="UDFMethod">
- <object id="Method1" class="org.apache.hadoop.hive.ql.udf.UDFToDouble" method="getMethod">
- <string>evaluate</string>
- <array class="java.lang.Class" length="1">
- <void index="0">
- <class>org.apache.hadoop.io.Text</class>
- </void>
- </array>
- </object>
- </void>
- <void property="childExprs">
- <object class="java.util.ArrayList">
- <void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeColumnDesc">
- <void property="column">
- <string>key</string>
- </void>
- <void property="tabAlias">
- <string>src</string>
- </void>
- <void property="typeInfo">
- <object idref="PrimitiveTypeInfo1"/>
- </void>
- </object>
- </void>
- </object>
+ <object class="org.apache.hadoop.hive.ql.plan.exprNodeColumnDesc">
+ <void property="column">
+ <string>key</string>
</void>
- <void property="methodName">
- <string>double</string>
+ <void property="tabAlias">
+ <string>src</string>
</void>
<void property="typeInfo">
<object idref="PrimitiveTypeInfo0"/>
@@ -942,53 +897,36 @@
</object>
</void>
<void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeFuncDesc">
- <void property="UDFClass">
- <class>org.apache.hadoop.hive.ql.udf.UDFToDouble</class>
- </void>
- <void property="UDFMethod">
- <object id="Method2" class="org.apache.hadoop.hive.ql.udf.UDFToDouble" method="getMethod">
- <string>evaluate</string>
- <array class="java.lang.Class" length="1">
- <void index="0">
- <class>org.apache.hadoop.io.IntWritable</class>
- </void>
- </array>
- </object>
- </void>
- <void property="childExprs">
- <object class="java.util.ArrayList">
- <void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeConstantDesc">
- <void property="typeInfo">
- <object id="PrimitiveTypeInfo2" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo">
- <void property="typeName">
- <string>int</string>
- </void>
- </object>
- </void>
- <void property="value">
- <int>100</int>
- </void>
- </object>
+ <object class="org.apache.hadoop.hive.ql.plan.exprNodeConstantDesc">
+ <void property="typeInfo">
+ <object id="PrimitiveTypeInfo1" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo">
+ <void property="typeName">
+ <string>int</string>
</void>
</object>
</void>
- <void property="methodName">
- <string>double</string>
- </void>
- <void property="typeInfo">
- <object idref="PrimitiveTypeInfo0"/>
+ <void property="value">
+ <int>100</int>
</void>
</object>
</void>
</object>
</void>
- <void property="methodName">
- <string>></string>
+ <void property="genericUDF">
+ <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge">
+ <void property="operator">
+ <boolean>true</boolean>
+ </void>
+ <void property="udfClass">
+ <class>org.apache.hadoop.hive.ql.udf.UDFOPGreaterThan</class>
+ </void>
+ <void property="udfName">
+ <string>></string>
+ </void>
+ </object>
</void>
<void property="typeInfo">
- <object id="PrimitiveTypeInfo3" 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>
@@ -1012,42 +950,16 @@
<void property="conf">
<object class="org.apache.hadoop.hive.ql.plan.filterDesc">
<void property="predicate">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeFuncDesc">
- <void property="UDFClass">
- <class>org.apache.hadoop.hive.ql.udf.UDFOPGreaterThan</class>
- </void>
- <void property="UDFMethod">
- <object idref="Method0"/>
- </void>
+ <object class="org.apache.hadoop.hive.ql.plan.exprNodeGenericFuncDesc">
<void property="childExprs">
<object class="java.util.ArrayList">
<void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeFuncDesc">
- <void property="UDFClass">
- <class>org.apache.hadoop.hive.ql.udf.UDFToDouble</class>
- </void>
- <void property="UDFMethod">
- <object idref="Method1"/>
- </void>
- <void property="childExprs">
- <object class="java.util.ArrayList">
- <void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeColumnDesc">
- <void property="column">
- <string>key</string>
- </void>
- <void property="tabAlias">
- <string>src</string>
- </void>
- <void property="typeInfo">
- <object idref="PrimitiveTypeInfo1"/>
- </void>
- </object>
- </void>
- </object>
+ <object class="org.apache.hadoop.hive.ql.plan.exprNodeColumnDesc">
+ <void property="column">
+ <string>key</string>
</void>
- <void property="methodName">
- <string>double</string>
+ <void property="tabAlias">
+ <string>src</string>
</void>
<void property="typeInfo">
<object idref="PrimitiveTypeInfo0"/>
@@ -1055,42 +967,32 @@
</object>
</void>
<void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeFuncDesc">
- <void property="UDFClass">
- <class>org.apache.hadoop.hive.ql.udf.UDFToDouble</class>
- </void>
- <void property="UDFMethod">
- <object idref="Method2"/>
- </void>
- <void property="childExprs">
- <object class="java.util.ArrayList">
- <void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeConstantDesc">
- <void property="typeInfo">
- <object idref="PrimitiveTypeInfo2"/>
- </void>
- <void property="value">
- <int>100</int>
- </void>
- </object>
- </void>
- </object>
- </void>
- <void property="methodName">
- <string>double</string>
- </void>
+ <object class="org.apache.hadoop.hive.ql.plan.exprNodeConstantDesc">
<void property="typeInfo">
- <object idref="PrimitiveTypeInfo0"/>
+ <object idref="PrimitiveTypeInfo1"/>
+ </void>
+ <void property="value">
+ <int>100</int>
</void>
</object>
</void>
</object>
</void>
- <void property="methodName">
- <string>></string>
+ <void property="genericUDF">
+ <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge">
+ <void property="operator">
+ <boolean>true</boolean>
+ </void>
+ <void property="udfClass">
+ <class>org.apache.hadoop.hive.ql.udf.UDFOPGreaterThan</class>
+ </void>
+ <void property="udfName">
+ <string>></string>
+ </void>
+ </object>
</void>
<void property="typeInfo">
- <object idref="PrimitiveTypeInfo3"/>
+ <object idref="PrimitiveTypeInfo2"/>
</void>
</object>
</void>
@@ -1134,7 +1036,7 @@
<string>key</string>
</void>
<void property="type">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -1144,7 +1046,7 @@
<string>value</string>
</void>
<void property="type">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -1188,7 +1090,7 @@
<string>_col0</string>
</void>
<void property="type">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -1198,7 +1100,7 @@
<string>_col1</string>
</void>
<void property="type">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -1220,7 +1122,7 @@
<string>_col0</string>
</void>
<void property="type">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -1230,7 +1132,7 @@
<string>_col1</string>
</void>
<void property="type">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -1254,7 +1156,7 @@
<string>src</string>
</void>
<void property="typeInfo">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -1268,7 +1170,7 @@
<string>src</string>
</void>
<void property="typeInfo">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -1326,59 +1228,16 @@
<void property="conf">
<object class="org.apache.hadoop.hive.ql.plan.filterDesc">
<void property="predicate">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeFuncDesc">
- <void property="UDFClass">
- <class>org.apache.hadoop.hive.ql.udf.UDFOPLessThan</class>
- </void>
- <void property="UDFMethod">
- <object id="Method3" class="org.apache.hadoop.hive.ql.udf.UDFOPLessThan" method="getMethod">
- <string>evaluate</string>
- <array class="java.lang.Class" length="2">
- <void index="0">
- <class>org.apache.hadoop.hive.serde2.io.DoubleWritable</class>
- </void>
- <void index="1">
- <class>org.apache.hadoop.hive.serde2.io.DoubleWritable</class>
- </void>
- </array>
- </object>
- </void>
+ <object class="org.apache.hadoop.hive.ql.plan.exprNodeGenericFuncDesc">
<void property="childExprs">
<object class="java.util.ArrayList">
<void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeFuncDesc">
- <void property="UDFClass">
- <class>org.apache.hadoop.hive.ql.udf.UDFToDouble</class>
- </void>
- <void property="UDFMethod">
- <object id="Method4" class="org.apache.hadoop.hive.ql.udf.UDFToDouble" method="getMethod">
- <string>evaluate</string>
- <array class="java.lang.Class" length="1">
- <void index="0">
- <class>org.apache.hadoop.io.Text</class>
- </void>
- </array>
- </object>
- </void>
- <void property="childExprs">
- <object class="java.util.ArrayList">
- <void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeColumnDesc">
- <void property="column">
- <string>key</string>
- </void>
- <void property="tabAlias">
- <string>src</string>
- </void>
- <void property="typeInfo">
- <object idref="PrimitiveTypeInfo1"/>
- </void>
- </object>
- </void>
- </object>
+ <object class="org.apache.hadoop.hive.ql.plan.exprNodeColumnDesc">
+ <void property="column">
+ <string>key</string>
</void>
- <void property="methodName">
- <string>double</string>
+ <void property="tabAlias">
+ <string>src</string>
</void>
<void property="typeInfo">
<object idref="PrimitiveTypeInfo0"/>
@@ -1386,49 +1245,32 @@
</object>
</void>
<void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeFuncDesc">
- <void property="UDFClass">
- <class>org.apache.hadoop.hive.ql.udf.UDFToDouble</class>
- </void>
- <void property="UDFMethod">
- <object id="Method5" class="org.apache.hadoop.hive.ql.udf.UDFToDouble" method="getMethod">
- <string>evaluate</string>
- <array class="java.lang.Class" length="1">
- <void index="0">
- <class>org.apache.hadoop.io.IntWritable</class>
- </void>
- </array>
- </object>
- </void>
- <void property="childExprs">
- <object class="java.util.ArrayList">
- <void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeConstantDesc">
- <void property="typeInfo">
- <object idref="PrimitiveTypeInfo2"/>
- </void>
- <void property="value">
- <int>100</int>
- </void>
- </object>
- </void>
- </object>
- </void>
- <void property="methodName">
- <string>double</string>
- </void>
+ <object class="org.apache.hadoop.hive.ql.plan.exprNodeConstantDesc">
<void property="typeInfo">
- <object idref="PrimitiveTypeInfo0"/>
+ <object idref="PrimitiveTypeInfo1"/>
+ </void>
+ <void property="value">
+ <int>100</int>
</void>
</object>
</void>
</object>
</void>
- <void property="methodName">
- <string><</string>
+ <void property="genericUDF">
+ <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge">
+ <void property="operator">
+ <boolean>true</boolean>
+ </void>
+ <void property="udfClass">
+ <class>org.apache.hadoop.hive.ql.udf.UDFOPLessThan</class>
+ </void>
+ <void property="udfName">
+ <string><</string>
+ </void>
+ </object>
</void>
<void property="typeInfo">
- <object idref="PrimitiveTypeInfo3"/>
+ <object idref="PrimitiveTypeInfo2"/>
</void>
</object>
</void>
@@ -1451,7 +1293,7 @@
<string>key</string>
</void>
<void property="type">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -1461,7 +1303,7 @@
<string>value</string>
</void>
<void property="type">
- <object idref="PrimitiveTypeInfo1"/>
+ <object idref="PrimitiveTypeInfo0"/>
</void>
</object>
</void>
@@ -1476,42 +1318,16 @@
<void property="conf">
<object class="org.apache.hadoop.hive.ql.plan.filterDesc">
<void property="predicate">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeFuncDesc">
- <void property="UDFClass">
- <class>org.apache.hadoop.hive.ql.udf.UDFOPLessThan</class>
- </void>
- <void property="UDFMethod">
- <object idref="Method3"/>
- </void>
+ <object class="org.apache.hadoop.hive.ql.plan.exprNodeGenericFuncDesc">
<void property="childExprs">
<object class="java.util.ArrayList">
<void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeFuncDesc">
- <void property="UDFClass">
- <class>org.apache.hadoop.hive.ql.udf.UDFToDouble</class>
+ <object class="org.apache.hadoop.hive.ql.plan.exprNodeColumnDesc">
+ <void property="column">
+ <string>key</string>
</void>
- <void property="UDFMethod">
- <object idref="Method4"/>
- </void>
- <void property="childExprs">
- <object class="java.util.ArrayList">
- <void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeColumnDesc">
- <void property="column">
- <string>key</string>
- </void>
- <void property="tabAlias">
- <string>src</string>
- </void>
- <void property="typeInfo">
- <object idref="PrimitiveTypeInfo1"/>
- </void>
- </object>
- </void>
- </object>
- </void>
- <void property="methodName">
- <string>double</string>
+ <void property="tabAlias">
+ <string>src</string>
</void>
<void property="typeInfo">
<object idref="PrimitiveTypeInfo0"/>
@@ -1519,42 +1335,32 @@
</object>
</void>
<void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeFuncDesc">
- <void property="UDFClass">
- <class>org.apache.hadoop.hive.ql.udf.UDFToDouble</class>
- </void>
- <void property="UDFMethod">
- <object idref="Method5"/>
- </void>
- <void property="childExprs">
- <object class="java.util.ArrayList">
- <void method="add">
- <object class="org.apache.hadoop.hive.ql.plan.exprNodeConstantDesc">
- <void property="typeInfo">
- <object idref="PrimitiveTypeInfo2"/>
- </void>
- <void property="value">
- <int>100</int>
- </void>
- </object>
- </void>
- </object>
- </void>
- <void property="methodName">
- <string>double</string>
- </void>
+ <object class="org.apache.hadoop.hive.ql.plan.exprNodeConstantDesc">
<void property="typeInfo">
- <object idref="PrimitiveTypeInfo0"/>
+ <object idref="PrimitiveTypeInfo1"/>
+ </void>
+ <void property="value">
+ <int>100</int>
</void>
</object>
</void>
</object>
</void>
- <void property="methodName">
- <string><</string>
+ <void property="genericUDF">
+ <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge">
+ <void property="operator">
+ <boolean>true</boolean>
+ </void>
+ <void property="udfClass">
+ <class>org.apache.hadoop.hive.ql.udf.UDFOPLessThan</class>
+ </void>
+ <void property="udfName">
+ <string><</string>
+ </void>
+ </object>
</void>
<void property="typeInfo">
- <object idref="PrimitiveTypeInfo3"/>
+ <object idref="PrimitiveTypeInfo2"/>
</void>
</object>
</void>
@@ -1613,7 +1419,7 @@
<void property="pathToAliases">
<object class="java.util.LinkedHashMap">
<void method="put">
- <string>file:/data/users/athusoo/commits/hive_trunk_ws1/build/ql/test/data/warehouse/src</string>
+ <string>file:/data/users/zshao/tools/699-trunk-apache-hive/.ptest_3/build/ql/test/data/warehouse/src</string>
<object class="java.util.ArrayList">
<void method="add">
<string>null-subquery1:unioninput-subquery1:src</string>
@@ -1628,7 +1434,7 @@
<void property="pathToPartitionInfo">
<object class="java.util.LinkedHashMap">
<void method="put">
- <string>file:/data/users/athusoo/commits/hive_trunk_ws1/build/ql/test/data/warehouse/src</string>
+ <string>file:/data/users/zshao/tools/699-trunk-apache-hive/.ptest_3/build/ql/test/data/warehouse/src</string>
<object class="org.apache.hadoop.hive.ql.plan.partitionDesc">
<void property="partSpec">
<object idref="LinkedHashMap0"/>
Modified: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyNonPrimitive.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyNonPrimitive.java?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyNonPrimitive.java (original)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyNonPrimitive.java Fri Aug 14 07:48:02 2009
@@ -52,6 +52,8 @@
this.bytes = bytes;
this.start = start;
this.length = length;
+ assert start >= 0;
+ assert start + length <= bytes.getData().length;
}
@Override
Modified: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorConverters.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorConverters.java?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorConverters.java (original)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorConverters.java Fri Aug 14 07:48:02 2009
@@ -18,6 +18,11 @@
package org.apache.hadoop.hive.serde2.objectinspector;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaStringObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorConverter;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.SettableBooleanObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.SettableByteObjectInspector;
@@ -35,7 +40,13 @@
* A converter which will convert objects with one ObjectInspector to another.
*/
public static interface Converter {
- public Object convert(Object o);
+ public Object convert(Object input);
+ }
+
+ public static class IdentityConverter implements Converter {
+ public Object convert(Object input) {
+ return input;
+ }
}
/**
@@ -44,6 +55,10 @@
* across different calls.
*/
public static Converter getConverter(ObjectInspector inputOI, ObjectInspector outputOI) {
+ // If the inputOI is the same as the outputOI, just return an IdentityConverter.
+ if (inputOI == outputOI) {
+ return new IdentityConverter();
+ }
switch (outputOI.getCategory()) {
case PRIMITIVE:
switch (((PrimitiveObjectInspector)outputOI).getPrimitiveCategory()) {
@@ -79,22 +94,207 @@
if (outputOI instanceof WritableStringObjectInspector) {
return new PrimitiveObjectInspectorConverter.TextConverter(
(PrimitiveObjectInspector)inputOI);
- } else if (outputOI instanceof WritableStringObjectInspector) {
- return new PrimitiveObjectInspectorConverter.TextConverter(
+ } else if (outputOI instanceof JavaStringObjectInspector) {
+ return new PrimitiveObjectInspectorConverter.StringConverter(
(PrimitiveObjectInspector)inputOI);
}
default:
throw new RuntimeException("Hive internal error: conversion of "
+ inputOI.getTypeName() + " to " + outputOI.getTypeName() + " not supported yet.");
}
- case STRUCT:
- case LIST:
- case MAP:
+ case STRUCT: {
+ return new StructConverter((StructObjectInspector)inputOI,
+ (SettableStructObjectInspector)outputOI);
+ }
+ case LIST: {
+ return new ListConverter((ListObjectInspector)inputOI,
+ (SettableListObjectInspector)outputOI);
+ }
+ case MAP: {
+ return new MapConverter((MapObjectInspector)inputOI,
+ (SettableMapObjectInspector)outputOI);
+ }
default:
throw new RuntimeException("Hive internal error: conversion of "
+ inputOI.getTypeName() + " to " + outputOI.getTypeName() + " not supported yet.");
}
}
+ /**
+ * A converter class for List.
+ */
+ public static class ListConverter implements Converter {
+
+ ListObjectInspector inputOI;
+ SettableListObjectInspector outputOI;
+
+ ObjectInspector inputElementOI;
+ ObjectInspector outputElementOI;
+
+ ArrayList<Converter> elementConverters;
+
+ Object output;
+
+ public ListConverter(ListObjectInspector inputOI, SettableListObjectInspector outputOI) {
+ this.inputOI = inputOI;
+ this.outputOI = outputOI;
+ inputElementOI = inputOI.getListElementObjectInspector();
+ outputElementOI = outputOI.getListElementObjectInspector();
+ output = outputOI.create(0);
+ elementConverters = new ArrayList<Converter>();
+ }
+
+ @Override
+ public Object convert(Object input) {
+ if (input == null) {
+ return null;
+ }
+ // Create enough elementConverters
+ // NOTE: we have to have a separate elementConverter for each element,
+ // because the elementConverters can reuse the internal object.
+ // So it's not safe to use the same elementConverter to convert multiple
+ // elements.
+ int size = inputOI.getListLength(input);
+ while (elementConverters.size() < size) {
+ elementConverters.add(getConverter(inputElementOI, outputElementOI));
+ }
+
+ // Convert the elements
+ outputOI.resize(output, size);
+ for (int index = 0; index < size; index++) {
+ Object inputElement = inputOI.getListElement(input, index);
+ Object outputElement = elementConverters.get(index).convert(inputElement);
+ outputOI.set(output, index, outputElement);
+ }
+ return output;
+ }
+
+ }
+
+
+ /**
+ * A converter class for Struct.
+ */
+ public static class StructConverter implements Converter {
+
+ StructObjectInspector inputOI;
+ SettableStructObjectInspector outputOI;
+
+ List<? extends StructField> inputFields;
+ List<? extends StructField> outputFields;
+
+ ArrayList<Converter> fieldConverters;
+
+ Object output;
+
+ public StructConverter(StructObjectInspector inputOI, SettableStructObjectInspector outputOI) {
+
+ this.inputOI = inputOI;
+ this.outputOI = outputOI;
+ inputFields = inputOI.getAllStructFieldRefs();
+ outputFields = outputOI.getAllStructFieldRefs();
+ assert(inputFields.size() == outputFields.size());
+
+ fieldConverters = new ArrayList<Converter>(inputFields.size());
+ for (int f = 0; f < inputFields.size(); f++) {
+ fieldConverters.add(getConverter(
+ inputFields.get(f).getFieldObjectInspector(),
+ outputFields.get(f).getFieldObjectInspector()));
+ }
+ output = outputOI.create();
+ }
+
+ @Override
+ public Object convert(Object input) {
+ if (input == null) {
+ return null;
+ }
+
+ // Convert the fields
+ for (int f = 0; f < inputFields.size(); f++) {
+ Object inputFieldValue = inputOI.getStructFieldData(input,
+ inputFields.get(f));
+ Object outputFieldValue = fieldConverters.get(f)
+ .convert(inputFieldValue);
+ outputOI.setStructFieldData(output, outputFields.get(f),
+ outputFieldValue);
+ }
+ return output;
+ }
+ }
+
+ /**
+ * A converter class for Map.
+ */
+ public static class MapConverter implements Converter {
+
+ MapObjectInspector inputOI;
+ SettableMapObjectInspector outputOI;
+
+ ObjectInspector inputKeyOI;
+ ObjectInspector outputKeyOI;
+
+ ObjectInspector inputValueOI;
+ ObjectInspector outputValueOI;
+
+ ArrayList<Converter> keyConverters;
+ ArrayList<Converter> valueConverters;
+
+ Object output;
+
+ public MapConverter(MapObjectInspector inputOI, SettableMapObjectInspector outputOI) {
+ this.inputOI = inputOI;
+ this.outputOI = outputOI;
+ inputKeyOI = inputOI.getMapKeyObjectInspector();
+ outputKeyOI = outputOI.getMapKeyObjectInspector();
+ inputValueOI = inputOI.getMapValueObjectInspector();
+ outputValueOI = outputOI.getMapValueObjectInspector();
+ keyConverters = new ArrayList<Converter>();
+ valueConverters = new ArrayList<Converter>();
+ output = outputOI.create();
+ }
+
+ @Override
+ public Object convert(Object input) {
+ if (input == null) {
+ return null;
+ }
+ // Create enough keyConverters/valueConverters
+ // NOTE: we have to have a separate key/valueConverter for each key/value,
+ // because the key/valueConverters can reuse the internal object.
+ // So it's not safe to use the same key/valueConverter to convert multiple
+ // key/values.
+
+ // NOTE: This code tries to get all key-value pairs out of the map.
+ // It's not very efficient. The more efficient way should be to let MapOI
+ // return an Iterator. This is currently not supported by MapOI yet.
+
+ Map<?, ?> map = inputOI.getMap(input);
+ int size = map.size();
+
+ while (keyConverters.size() < size) {
+ keyConverters.add(getConverter(inputKeyOI, outputKeyOI));
+ valueConverters.add(getConverter(inputValueOI, outputValueOI));
+ }
+
+ // CLear the output
+ outputOI.clear(output);
+
+ // Convert the key/value pairs
+ int entryID = 0;
+ for (Map.Entry<?, ?> entry: map.entrySet()) {
+ Object inputKey = entry.getKey();
+ Object inputValue = entry.getValue();
+ Object outputKey = keyConverters.get(entryID).convert(inputKey);
+ Object outputValue = valueConverters.get(entryID).convert(inputValue);
+ entryID ++;
+ outputOI.put(output, outputKey, outputValue);
+ }
+ return output;
+ }
+
+ }
+
+
}
Modified: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorFactory.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorFactory.java?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorFactory.java (original)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorFactory.java Fri Aug 14 07:48:02 2009
@@ -103,7 +103,8 @@
// Must be a class.
if (!(t instanceof Class)) {
- throw new RuntimeException(ObjectInspectorFactory.class.getName() + ": internal error.");
+ throw new RuntimeException(ObjectInspectorFactory.class.getName() + " internal error:"
+ + t);
}
Class<?> c = (Class<?>)t;
Modified: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ReflectionStructObjectInspector.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ReflectionStructObjectInspector.java?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ReflectionStructObjectInspector.java (original)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ReflectionStructObjectInspector.java Fri Aug 14 07:48:02 2009
@@ -23,6 +23,8 @@
import java.util.List;
import java.util.Map;
+import org.apache.hadoop.util.ReflectionUtils;
+
/**
* ReflectionStructObjectInspector works on struct data that is stored as a native Java object.
* It will drill down into the Java class to get the fields and construct ObjectInspectors for
@@ -32,7 +34,7 @@
* of directly creating an instance of this class.
*
*/
-public class ReflectionStructObjectInspector extends StructObjectInspector {
+public class ReflectionStructObjectInspector extends SettableStructObjectInspector {
public static class MyField implements StructField {
protected Field field;
@@ -56,10 +58,6 @@
Class<?> objectClass;
List<MyField> fields;
- public ReflectionStructObjectInspector(Class<?> objectClass, List<ObjectInspector> structFieldObjectInspectors) {
- init(objectClass, structFieldObjectInspectors);
- }
-
public Category getCategory() {
return Category.STRUCT;
}
@@ -144,4 +142,22 @@
}
}
+ @Override
+ public Object create() {
+ return ReflectionUtils.newInstance(objectClass, null);
+ }
+
+ @Override
+ public Object setStructFieldData(Object struct, StructField field,
+ Object fieldValue) {
+ MyField myField = (MyField)field;
+ try {
+ myField.field.set(struct, fieldValue);
+ } catch (Exception e) {
+ throw new RuntimeException("cannot set field " + myField.field + " of "
+ + struct.getClass() + " " + struct, e);
+ }
+ return struct;
+ }
+
}
Added: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/SettableListObjectInspector.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/SettableListObjectInspector.java?rev=804106&view=auto
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/SettableListObjectInspector.java (added)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/SettableListObjectInspector.java Fri Aug 14 07:48:02 2009
@@ -0,0 +1,44 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.serde2.objectinspector;
+
+
+public interface SettableListObjectInspector extends ListObjectInspector {
+
+ /**
+ * Create a list with the given size. All elements will be null.
+ *
+ * NOTE: This is different from ArrayList constructor where the argument
+ * is capacity. We decided to have size here to allow creation of Java
+ * array.
+ */
+ Object create(int size);
+
+ /**
+ * Set the element at index. Returns the list.
+ */
+ Object set(Object list, int index, Object element);
+
+ /**
+ * Resize the list. Returns the list.
+ * If the new size is bigger than the current size, new elements will
+ * be null. If the new size is smaller than the current size, elements
+ * at the end are truncated.
+ */
+ Object resize(Object list, int newSize);
+}
Added: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/SettableMapObjectInspector.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/SettableMapObjectInspector.java?rev=804106&view=auto
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/SettableMapObjectInspector.java (added)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/SettableMapObjectInspector.java Fri Aug 14 07:48:02 2009
@@ -0,0 +1,41 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.serde2.objectinspector;
+
+public interface SettableMapObjectInspector extends MapObjectInspector {
+
+ /**
+ * Create an empty map.
+ */
+ public Object create();
+
+ /**
+ * Add a key-value pair to the map. Return the map.
+ */
+ public Object put(Object map, Object key, Object value);
+
+ /**
+ * Remove a key-value pair from the map. Return the map.
+ */
+ public Object remove(Object map, Object key);
+
+ /**
+ * Clear the map. Return the map.
+ */
+ public Object clear(Object map);
+}
Added: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/SettableStructObjectInspector.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/SettableStructObjectInspector.java?rev=804106&view=auto
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/SettableStructObjectInspector.java (added)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/SettableStructObjectInspector.java Fri Aug 14 07:48:02 2009
@@ -0,0 +1,31 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.serde2.objectinspector;
+
+public abstract class SettableStructObjectInspector extends StructObjectInspector {
+
+ /**
+ * Create a struct which is not null, but all its fields are null.
+ */
+ public abstract Object create();
+
+ /**
+ * Modify the value of a field. Returns the struct.
+ */
+ public abstract Object setStructFieldData(Object struct, StructField field, Object fieldValue);
+}
Modified: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardListObjectInspector.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardListObjectInspector.java?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardListObjectInspector.java (original)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardListObjectInspector.java Fri Aug 14 07:48:02 2009
@@ -18,6 +18,7 @@
package org.apache.hadoop.hive.serde2.objectinspector;
+import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
@@ -27,7 +28,7 @@
* Always use the ObjectInspectorFactory to create new ObjectInspector objects, instead
* of directly creating an instance of this class.
*/
-public class StandardListObjectInspector implements ListObjectInspector {
+public class StandardListObjectInspector implements SettableListObjectInspector {
ObjectInspector listElementObjectInspector;
@@ -101,4 +102,34 @@
+ "<" + listElementObjectInspector.getTypeName() + ">";
}
+ ///////////////////////////////
+ // SettableListObjectInspector
+ @Override
+ public Object create(int size) {
+ List<Object> a = new ArrayList<Object>(size);
+ for (int i=0; i<size; i++) {
+ a.add(null);
+ }
+ return a;
+ }
+
+ @Override
+ public Object resize(Object list, int newSize) {
+ List<Object> a = (List<Object>)list;
+ while (a.size() < newSize) {
+ a.add(null);
+ }
+ while (a.size() > newSize) {
+ a.remove(a.size()-1);
+ }
+ return a;
+ }
+
+ @Override
+ public Object set(Object list, int index, Object element) {
+ List<Object> a = (List<Object>)list;
+ a.set(index, element);
+ return a;
+ }
+
}
Modified: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardMapObjectInspector.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardMapObjectInspector.java?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardMapObjectInspector.java (original)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardMapObjectInspector.java Fri Aug 14 07:48:02 2009
@@ -18,6 +18,7 @@
package org.apache.hadoop.hive.serde2.objectinspector;
+import java.util.HashMap;
import java.util.Map;
/**
@@ -32,7 +33,7 @@
* Always use the ObjectInspectorFactory to create new ObjectInspector objects, instead
* of directly creating an instance of this class.
*/
-public class StandardMapObjectInspector implements MapObjectInspector {
+public class StandardMapObjectInspector implements SettableMapObjectInspector {
ObjectInspector mapKeyObjectInspector;
ObjectInspector mapValueObjectInspector;
@@ -81,4 +82,33 @@
+ mapValueObjectInspector.getTypeName() + ">";
}
+ ///////////////////////////////
+ // SettableMapObjectInspector
+ @Override
+ public Object create() {
+ Map<Object, Object> m = new HashMap<Object, Object>();
+ return m;
+ }
+
+ @Override
+ public Object clear(Object map) {
+ Map<Object, Object> m = (HashMap<Object, Object>)map;
+ m.clear();
+ return m;
+ }
+
+ @Override
+ public Object put(Object map, Object key, Object value) {
+ Map<Object, Object> m = (HashMap<Object, Object>)map;
+ m.put(key, value);
+ return m;
+ }
+
+ @Override
+ public Object remove(Object map, Object key) {
+ Map<Object, Object> m = (HashMap<Object, Object>)map;
+ m.remove(key);
+ return m;
+ }
+
}
Modified: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardStructObjectInspector.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardStructObjectInspector.java?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardStructObjectInspector.java (original)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardStructObjectInspector.java Fri Aug 14 07:48:02 2009
@@ -35,7 +35,7 @@
* Always use the ObjectInspectorFactory to create new ObjectInspector objects, instead
* of directly creating an instance of this class.
*/
-public class StandardStructObjectInspector extends StructObjectInspector {
+public class StandardStructObjectInspector extends SettableStructObjectInspector {
public static final Log LOG = LogFactory.getLog(StandardStructObjectInspector.class.getName());
@@ -159,5 +159,23 @@
return list;
}
+ ///////////////////////////////
+ // SettableStructObjectInspector
+ @Override
+ public Object create() {
+ ArrayList<Object> a = new ArrayList<Object>(fields.size());
+ for (int i=0; i<fields.size(); i++) {
+ a.add(null);
+ }
+ return a;
+ }
+
+ @Override
+ public Object setStructFieldData(Object struct, StructField field, Object fieldValue) {
+ ArrayList<Object> a = (ArrayList<Object>)struct;
+ MyField myField = (MyField)field;
+ a.set(myField.fieldID, fieldValue);
+ return a;
+ }
}
Modified: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ThriftStructObjectInspector.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ThriftStructObjectInspector.java?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ThriftStructObjectInspector.java (original)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ThriftStructObjectInspector.java Fri Aug 14 07:48:02 2009
@@ -30,17 +30,4 @@
return "__isset".equals(name);
}
- public boolean equals(Object b) {
- if (this == b) return true;
- if (!b.getClass().equals(this.getClass())) {
- return false;
- }
- ThriftStructObjectInspector bInspector = (ThriftStructObjectInspector)b;
- return objectClass.equals(bInspector.objectClass);
- }
-
- public int hashCode() {
- return 7 * objectClass.hashCode();
- }
-
}
Modified: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaBooleanObjectInspector.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaBooleanObjectInspector.java?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaBooleanObjectInspector.java (original)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaBooleanObjectInspector.java Fri Aug 14 07:48:02 2009
@@ -24,7 +24,7 @@
* A JavaBooleanObjectInspector inspects a Java Boolean Object.
*/
public class JavaBooleanObjectInspector extends AbstractPrimitiveJavaObjectInspector
-implements BooleanObjectInspector{
+implements SettableBooleanObjectInspector{
JavaBooleanObjectInspector() {
super(PrimitiveObjectInspectorUtils.booleanTypeEntry);
@@ -39,4 +39,14 @@
public boolean get(Object o) {
return ((Boolean)o).booleanValue();
}
+
+ @Override
+ public Object create(boolean value) {
+ return value ? Boolean.TRUE : Boolean.FALSE;
+ }
+
+ @Override
+ public Object set(Object o, boolean value) {
+ return value ? Boolean.TRUE : Boolean.FALSE;
+ }
}
Modified: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaByteObjectInspector.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaByteObjectInspector.java?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaByteObjectInspector.java (original)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaByteObjectInspector.java Fri Aug 14 07:48:02 2009
@@ -24,7 +24,7 @@
* A JavaByteObjectInspector inspects a Java Byte Object.
*/
public class JavaByteObjectInspector extends AbstractPrimitiveJavaObjectInspector
-implements ByteObjectInspector{
+implements SettableByteObjectInspector{
JavaByteObjectInspector() {
super(PrimitiveObjectInspectorUtils.byteTypeEntry);
@@ -39,4 +39,14 @@
public byte get(Object o) {
return ((Byte)o).byteValue();
}
+
+ @Override
+ public Object create(byte value) {
+ return Byte.valueOf(value);
+ }
+
+ @Override
+ public Object set(Object o, byte value) {
+ return Byte.valueOf(value);
+ }
}
Modified: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaDoubleObjectInspector.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaDoubleObjectInspector.java?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaDoubleObjectInspector.java (original)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaDoubleObjectInspector.java Fri Aug 14 07:48:02 2009
@@ -24,7 +24,7 @@
* A JavaDoubleObjectInspector inspects a Java Double Object.
*/
public class JavaDoubleObjectInspector extends AbstractPrimitiveJavaObjectInspector
-implements DoubleObjectInspector{
+implements SettableDoubleObjectInspector{
JavaDoubleObjectInspector() {
super(PrimitiveObjectInspectorUtils.doubleTypeEntry);
@@ -39,4 +39,14 @@
public double get(Object o) {
return ((Double)o).doubleValue();
}
+
+ @Override
+ public Object create(double value) {
+ return Double.valueOf(value);
+ }
+
+ @Override
+ public Object set(Object o, double value) {
+ return Double.valueOf(value);
+ }
}
Modified: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaFloatObjectInspector.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaFloatObjectInspector.java?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaFloatObjectInspector.java (original)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaFloatObjectInspector.java Fri Aug 14 07:48:02 2009
@@ -24,7 +24,7 @@
* A JavaFloatObjectInspector inspects a Java Float Object.
*/
public class JavaFloatObjectInspector extends AbstractPrimitiveJavaObjectInspector
-implements FloatObjectInspector{
+implements SettableFloatObjectInspector{
JavaFloatObjectInspector() {
super(PrimitiveObjectInspectorUtils.floatTypeEntry);
@@ -39,4 +39,14 @@
public float get(Object o) {
return ((Float)o).floatValue();
}
+
+ @Override
+ public Object create(float value) {
+ return Float.valueOf(value);
+ }
+
+ @Override
+ public Object set(Object o, float value) {
+ return Float.valueOf(value);
+ }
}
Modified: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaIntObjectInspector.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaIntObjectInspector.java?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaIntObjectInspector.java (original)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaIntObjectInspector.java Fri Aug 14 07:48:02 2009
@@ -24,7 +24,7 @@
* A JavaIntObjectInspector inspects a Java Integer Object.
*/
public class JavaIntObjectInspector extends AbstractPrimitiveJavaObjectInspector
-implements IntObjectInspector{
+implements SettableIntObjectInspector{
JavaIntObjectInspector() {
super(PrimitiveObjectInspectorUtils.intTypeEntry);
@@ -39,4 +39,14 @@
public int get(Object o) {
return ((Integer)o).intValue();
}
+
+ @Override
+ public Object create(int value) {
+ return Integer.valueOf(value);
+ }
+
+ @Override
+ public Object set(Object o, int value) {
+ return Integer.valueOf(value);
+ }
}
Modified: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaLongObjectInspector.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaLongObjectInspector.java?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaLongObjectInspector.java (original)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaLongObjectInspector.java Fri Aug 14 07:48:02 2009
@@ -24,7 +24,7 @@
* A JavaLongObjectInspector inspects a Java Long Object.
*/
public class JavaLongObjectInspector extends AbstractPrimitiveJavaObjectInspector
-implements LongObjectInspector{
+implements SettableLongObjectInspector{
JavaLongObjectInspector() {
super(PrimitiveObjectInspectorUtils.longTypeEntry);
@@ -39,4 +39,14 @@
public long get(Object o) {
return ((Long)o).longValue();
}
+
+ @Override
+ public Object create(long value) {
+ return Long.valueOf(value);
+ }
+
+ @Override
+ public Object set(Object o, long value) {
+ return Long.valueOf(value);
+ }
}
Modified: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaShortObjectInspector.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaShortObjectInspector.java?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaShortObjectInspector.java (original)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaShortObjectInspector.java Fri Aug 14 07:48:02 2009
@@ -24,7 +24,7 @@
* A JavaShortObjectInspector inspects a Java Short Object.
*/
public class JavaShortObjectInspector extends AbstractPrimitiveJavaObjectInspector
-implements ShortObjectInspector{
+implements SettableShortObjectInspector{
JavaShortObjectInspector() {
super(PrimitiveObjectInspectorUtils.shortTypeEntry);
@@ -39,4 +39,14 @@
public short get(Object o) {
return ((Short)o).shortValue();
}
+
+ @Override
+ public Object create(short value) {
+ return Short.valueOf(value);
+ }
+
+ @Override
+ public Object set(Object o, short value) {
+ return Short.valueOf(value);
+ }
}
Modified: hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaStringObjectInspector.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaStringObjectInspector.java?rev=804106&r1=804105&r2=804106&view=diff
==============================================================================
--- hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaStringObjectInspector.java (original)
+++ hadoop/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaStringObjectInspector.java Fri Aug 14 07:48:02 2009
@@ -24,7 +24,7 @@
* A JavaStringObjectInspector inspects a Java String Object.
*/
public class JavaStringObjectInspector extends AbstractPrimitiveJavaObjectInspector
-implements StringObjectInspector{
+implements SettableStringObjectInspector{
JavaStringObjectInspector() {
super(PrimitiveObjectInspectorUtils.stringTypeEntry);
@@ -39,4 +39,24 @@
public String getPrimitiveJavaObject(Object o) {
return (String)o;
}
+
+ @Override
+ public Object create(Text value) {
+ return value == null ? null : value.toString();
+ }
+
+ @Override
+ public Object set(Object o, Text value) {
+ return value == null ? null : value.toString();
+ }
+
+ @Override
+ public Object create(String value) {
+ return value;
+ }
+
+ @Override
+ public Object set(Object o, String value) {
+ return value;
+ }
}