You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2013/06/11 23:43:12 UTC

svn commit: r1491979 - in /hive/branches/vectorization/ql/src: java/org/apache/hadoop/hive/ql/exec/vector/VectorSelectOperator.java test/org/apache/hadoop/hive/ql/exec/vector/TestVectorSelectOperator.java

Author: hashutosh
Date: Tue Jun 11 21:43:11 2013
New Revision: 1491979

URL: http://svn.apache.org/r1491979
Log:
HIVE-4702 : Unit test failure TestVectorSelectOperator (Jitendra Nath Pandey via Ashutosh Chauhan)

Modified:
    hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSelectOperator.java
    hive/branches/vectorization/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorSelectOperator.java

Modified: hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSelectOperator.java
URL: http://svn.apache.org/viewvc/hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSelectOperator.java?rev=1491979&r1=1491978&r2=1491979&view=diff
==============================================================================
--- hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSelectOperator.java (original)
+++ hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSelectOperator.java Tue Jun 11 21:43:11 2013
@@ -91,10 +91,6 @@ public class VectorSelectOperator extend
     }
   }
 
-  public void setSelectExpressions(VectorExpression[] exprs) {
-    this.vExpressions = exprs;
-  }
-
   @Override
   public void processOp(Object row, int tag) throws HiveException {
 

Modified: hive/branches/vectorization/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorSelectOperator.java
URL: http://svn.apache.org/viewvc/hive/branches/vectorization/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorSelectOperator.java?rev=1491979&r1=1491978&r2=1491979&view=diff
==============================================================================
--- hive/branches/vectorization/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorSelectOperator.java (original)
+++ hive/branches/vectorization/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorSelectOperator.java Tue Jun 11 21:43:11 2013
@@ -20,14 +20,23 @@ package org.apache.hadoop.hive.ql.exec.v
 
 import static org.junit.Assert.assertEquals;
 
-import org.apache.hadoop.hive.ql.exec.vector.expressions.IdentityExpression;
-import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
-import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColAddLongColumn;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.hadoop.hive.ql.exec.vector.util.VectorizedRowGroupGenUtil;
 import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc;
+import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
+import org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc;
 import org.apache.hadoop.hive.ql.plan.OperatorDesc;
 import org.apache.hadoop.hive.ql.plan.SelectDesc;
+import org.apache.hadoop.hive.ql.udf.UDFOPPlus;
+import org.apache.hadoop.hive.ql.udf.generic.GenericUDF;
+import org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge;
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 import org.junit.Test;
 
 public class TestVectorSelectOperator {
@@ -36,8 +45,10 @@ public class TestVectorSelectOperator {
 
     private static final long serialVersionUID = 1L;
 
-    public ValidatorVectorSelectOperator(VectorizationContext ctxt, OperatorDesc conf) {
+    public ValidatorVectorSelectOperator(VectorizationContext ctxt, OperatorDesc conf)
+        throws HiveException {
       super(ctxt, conf);
+      initializeOp(null);
     }
 
     /**
@@ -49,8 +60,8 @@ public class TestVectorSelectOperator {
 
       int[] projections = vrg.projectedColumns;
       assertEquals(2, vrg.projectionSize);
-      assertEquals(2, projections[0]);
-      assertEquals(3, projections[1]);
+      assertEquals(3, projections[0]);
+      assertEquals(2, projections[1]);
 
       LongColumnVector out0 = (LongColumnVector) vrg.cols[projections[0]];
       LongColumnVector out1 = (LongColumnVector) vrg.cols[projections[1]];
@@ -62,8 +73,8 @@ public class TestVectorSelectOperator {
 
       for (int i = 0; i < VectorizedRowBatch.DEFAULT_SIZE; i++) {
         assertEquals(in0.vector[i] + in1.vector[i], out0.vector[i]);
-        assertEquals(in2.vector[i], out0.vector[i]);
-        assertEquals(in3.vector[i], out1.vector[i]);
+        assertEquals(in3.vector[i], out0.vector[i]);
+        assertEquals(in2.vector[i], out1.vector[i]);
       }
     }
   }
@@ -71,19 +82,38 @@ public class TestVectorSelectOperator {
   @Test
   public void testSelectOperator() throws HiveException {
 
-    ValidatorVectorSelectOperator vso = new ValidatorVectorSelectOperator(null, new SelectDesc(
-        false));
+    Map<String, Integer> columnMap = new HashMap<String, Integer>();
+    columnMap.put("a", 0); columnMap.put("b", 1); columnMap.put("c", 2);
+    VectorizationContext vc = new VectorizationContext(columnMap, 3);
+
+    SelectDesc selDesc = new SelectDesc(false);
+    List<ExprNodeDesc> colList = new ArrayList<ExprNodeDesc>();
+    ExprNodeColumnDesc colDesc1 = new ExprNodeColumnDesc(Long.class, "a", "table", false);
+    ExprNodeColumnDesc colDesc2 = new ExprNodeColumnDesc(Long.class, "b", "table", false);
+    ExprNodeColumnDesc colDesc3 = new ExprNodeColumnDesc(Long.class, "c", "table", false);
+    ExprNodeGenericFuncDesc plusDesc = new ExprNodeGenericFuncDesc();
+    GenericUDF gudf = new GenericUDFBridge("+", true, UDFOPPlus.class);
+    plusDesc.setGenericUDF(gudf);
+    List<ExprNodeDesc> children = new  ArrayList<ExprNodeDesc>();
+    children.add(colDesc1);
+    children.add(colDesc2);
+    plusDesc.setChildExprs(children);
+    plusDesc.setTypeInfo(TypeInfoFactory.longTypeInfo);
+
+    colList.add(plusDesc);
+    colList.add(colDesc3);
+    selDesc.setColList(colList);
+
+    List<String> outputColNames = new ArrayList<String>();
+    outputColNames.add("_col0");
+    outputColNames.add("_col1");
+    selDesc.setOutputColumnNames(outputColNames);
+
+    ValidatorVectorSelectOperator vso = new ValidatorVectorSelectOperator(vc, selDesc);
 
     VectorizedRowBatch vrg = VectorizedRowGroupGenUtil.getVectorizedRowBatch(
         VectorizedRowBatch.DEFAULT_SIZE, 4, 17);
 
-    LongColAddLongColumn lcalcExpr = new LongColAddLongColumn(0, 1, 2);
-    IdentityExpression iexpr = new IdentityExpression(3, "long");
-
-    VectorExpression[] ves = new VectorExpression[] {lcalcExpr, iexpr};
-
-    vso.setSelectExpressions(ves);
-
     vso.processOp(vrg, 0);
   }