You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by br...@apache.org on 2013/10/22 19:59:08 UTC
svn commit: r1534711 [8/15] - in /hive/branches/maven: ./
ant/src/org/apache/hadoop/hive/ant/
beeline/src/java/org/apache/hive/beeline/ bin/ bin/ext/
cli/src/java/org/apache/hadoop/hive/cli/ common/
common/src/java/org/apache/hadoop/hive/common/type/ c...
Modified: hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorMathFunctions.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorMathFunctions.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorMathFunctions.java (original)
+++ hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorMathFunctions.java Tue Oct 22 17:58:59 2013
@@ -38,7 +38,7 @@ import org.junit.Test;
public class TestVectorMathFunctions {
-
+
private static final double eps = 1.0e-7;
private static boolean equalsWithinTolerance(double a, double b) {
return Math.abs(a - b) < eps;
@@ -58,7 +58,7 @@ public class TestVectorMathFunctions {
Assert.assertEquals(1d, resultV.vector[4]);
Assert.assertEquals(1d, resultV.vector[5]);
Assert.assertEquals(2d, resultV.vector[6]);
-
+
// spot check null propagation
b.cols[0].noNulls = false;
b.cols[0].isNull[3] = true;
@@ -66,28 +66,29 @@ public class TestVectorMathFunctions {
expr.evaluate(b);
Assert.assertEquals(true, resultV.isNull[3]);
Assert.assertEquals(false, resultV.noNulls);
-
+
// check isRepeating propagation
b.cols[0].isRepeating = true;
resultV.isRepeating = false;
expr.evaluate(b);
Assert.assertEquals(-2d, resultV.vector[0]);
- Assert.assertEquals(true, resultV.isRepeating);
-
+ Assert.assertEquals(true, resultV.isRepeating);
+
resultV.isRepeating = false;
b.cols[0].noNulls = true;
expr.evaluate(b);
Assert.assertEquals(-2d, resultV.vector[0]);
- Assert.assertEquals(true, resultV.isRepeating);
+ Assert.assertEquals(true, resultV.isRepeating);
}
-
+
@Test
public void testRoundToDecimalPlaces() {
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
- VectorExpression expr = new RoundDoubleToDoubleWithNumDigits(0, 4, 1);
+ VectorExpression expr = new RoundWithNumDigitsDoubleToDouble(0, 1);
+ ((ISetLongArg) expr).setArg(4); // set number of digits
expr.evaluate(b);
DoubleColumnVector resultV = (DoubleColumnVector) b.cols[1];
-
+
// Verify result is rounded to 4 digits
Assert.assertEquals(1.2346d, resultV.vector[7]);
}
@@ -105,14 +106,14 @@ public class TestVectorMathFunctions {
dcv.vector[4] = 0.5d;
dcv.vector[5] = 0.7d;
dcv.vector[6] = 1.5d;
-
+
batch.cols[0] = dcv;
batch.cols[1] = lcv;
-
+
batch.size = 7;
return batch;
}
-
+
public static VectorizedRowBatch getVectorizedRowBatchDoubleInDoubleOut() {
VectorizedRowBatch batch = new VectorizedRowBatch(2);
DoubleColumnVector inV;
@@ -127,14 +128,14 @@ public class TestVectorMathFunctions {
inV.vector[5] = 0.7d;
inV.vector[6] = 1.5d;
inV.vector[7] = 1.2345678d;
-
+
batch.cols[0] = inV;
batch.cols[1] = outV;
-
+
batch.size = 8;
return batch;
}
-
+
public static VectorizedRowBatch getVectorizedRowBatchLongInDoubleOut() {
VectorizedRowBatch batch = new VectorizedRowBatch(2);
LongColumnVector lcv;
@@ -146,14 +147,14 @@ public class TestVectorMathFunctions {
lcv.vector[2] = 0;
lcv.vector[3] = 1;
lcv.vector[4] = 2;
-
+
batch.cols[0] = lcv;
batch.cols[1] = dcv;
-
+
batch.size = 5;
return batch;
}
-
+
public static VectorizedRowBatch getVectorizedRowBatchLongInLongOut() {
VectorizedRowBatch batch = new VectorizedRowBatch(2);
LongColumnVector inV, outV;
@@ -161,14 +162,14 @@ public class TestVectorMathFunctions {
outV = new LongColumnVector();
inV.vector[0] = -2;
inV.vector[1] = 2;
-
+
batch.cols[0] = inV;
batch.cols[1] = outV;
-
+
batch.size = 2;
return batch;
}
-
+
public static VectorizedRowBatch getBatchForStringMath() {
VectorizedRowBatch batch = new VectorizedRowBatch(3);
LongColumnVector inL;
@@ -184,7 +185,7 @@ public class TestVectorMathFunctions {
inS.setVal(0, "00".getBytes("UTF-8"), 0, 2);
inS.setVal(1, "3232".getBytes("UTF-8"), 0, 4);
byte[] bad = "bad data".getBytes("UTF-8");
- inS.setVal(2, bad, 0, bad.length);
+ inS.setVal(2, bad, 0, bad.length);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
Assert.assertTrue(false);
@@ -193,12 +194,12 @@ public class TestVectorMathFunctions {
batch.cols[0] = inS;
batch.cols[1] = inL;
batch.cols[2] = outS;
-
+
batch.size = 3;
return batch;
}
-
- /*
+
+ /*
* The following tests spot-check that vectorized functions with signature
* DOUBLE func(DOUBLE) that came from template ColumnUnaryFunc.txt
* get the right result. Null propagation, isRepeating
@@ -214,7 +215,7 @@ public class TestVectorMathFunctions {
expr.evaluate(b);
Assert.assertEquals(Math.sin(0.5d), resultV.vector[4]);
}
-
+
@Test
public void testVectorCos() {
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
@@ -224,7 +225,7 @@ public class TestVectorMathFunctions {
expr.evaluate(b);
Assert.assertEquals(Math.cos(0.5d), resultV.vector[4]);
}
-
+
@Test
public void testVectorTan() {
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
@@ -234,7 +235,7 @@ public class TestVectorMathFunctions {
expr.evaluate(b);
Assert.assertEquals(Math.tan(0.5d), resultV.vector[4]);
}
-
+
@Test
public void testVectorASin() {
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
@@ -244,7 +245,7 @@ public class TestVectorMathFunctions {
expr.evaluate(b);
Assert.assertEquals(Math.asin(0.5d), resultV.vector[4]);
}
-
+
@Test
public void testVectorACos() {
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
@@ -254,7 +255,7 @@ public class TestVectorMathFunctions {
expr.evaluate(b);
Assert.assertEquals(Math.acos(0.5d), resultV.vector[4]);
}
-
+
@Test
public void testVectorATan() {
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
@@ -264,7 +265,7 @@ public class TestVectorMathFunctions {
expr.evaluate(b);
Assert.assertEquals(Math.atan(0.5d), resultV.vector[4]);
}
-
+
@Test
public void testVectorDegrees() {
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
@@ -274,7 +275,7 @@ public class TestVectorMathFunctions {
expr.evaluate(b);
Assert.assertEquals(Math.toDegrees(0.5d), resultV.vector[4]);
}
-
+
@Test
public void testVectorRadians() {
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
@@ -284,7 +285,7 @@ public class TestVectorMathFunctions {
expr.evaluate(b);
Assert.assertEquals(Math.toRadians(0.5d), resultV.vector[4]);
}
-
+
@Test
public void testVectorFloor() {
VectorizedRowBatch b = getVectorizedRowBatchDoubleInLongOut();
@@ -295,7 +296,7 @@ public class TestVectorMathFunctions {
Assert.assertEquals(-2, resultV.vector[0]);
Assert.assertEquals(1, resultV.vector[6]);
}
-
+
@Test
public void testVectorCeil() {
VectorizedRowBatch b = getVectorizedRowBatchDoubleInLongOut();
@@ -306,7 +307,7 @@ public class TestVectorMathFunctions {
Assert.assertEquals(-1, resultV.vector[0]);
Assert.assertEquals(2, resultV.vector[6]);
}
-
+
@Test
public void testVectorExp() {
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
@@ -316,10 +317,10 @@ public class TestVectorMathFunctions {
expr.evaluate(b);
Assert.assertEquals(Math.exp(0.5d), resultV.vector[4]);
}
-
+
@Test
public void testVectorLn() {
-
+
// test double->double version
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
DoubleColumnVector resultV = (DoubleColumnVector) b.cols[1];
@@ -327,7 +328,7 @@ public class TestVectorMathFunctions {
VectorExpression expr = new FuncLnDoubleToDouble(0, 1);
expr.evaluate(b);
Assert.assertEquals(Math.log(0.5), resultV.vector[4]);
-
+
// test long->double version
b = getVectorizedRowBatchLongInDoubleOut();
resultV = (DoubleColumnVector) b.cols[1];
@@ -336,10 +337,10 @@ public class TestVectorMathFunctions {
expr.evaluate(b);
Assert.assertEquals(Math.log(2), resultV.vector[4]);
}
-
+
@Test
public void testVectorLog2() {
-
+
// test double->double version
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
DoubleColumnVector resultV = (DoubleColumnVector) b.cols[1];
@@ -347,7 +348,7 @@ public class TestVectorMathFunctions {
VectorExpression expr = new FuncLog2DoubleToDouble(0, 1);
expr.evaluate(b);
Assert.assertEquals(Math.log(0.5d) / Math.log(2), resultV.vector[4]);
-
+
// test long->double version
b = getVectorizedRowBatchLongInDoubleOut();
resultV = (DoubleColumnVector) b.cols[1];
@@ -356,10 +357,10 @@ public class TestVectorMathFunctions {
expr.evaluate(b);
Assert.assertEquals(Math.log(1) / Math.log(2), resultV.vector[3]);
}
-
+
@Test
public void testVectorLog10() {
-
+
// test double->double version
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
DoubleColumnVector resultV = (DoubleColumnVector) b.cols[1];
@@ -367,7 +368,7 @@ public class TestVectorMathFunctions {
VectorExpression expr = new FuncLog10DoubleToDouble(0, 1);
expr.evaluate(b);
Assert.assertTrue(equalsWithinTolerance(Math.log(0.5d) / Math.log(10), resultV.vector[4]));
-
+
// test long->double version
b = getVectorizedRowBatchLongInDoubleOut();
resultV = (DoubleColumnVector) b.cols[1];
@@ -376,7 +377,7 @@ public class TestVectorMathFunctions {
expr.evaluate(b);
Assert.assertEquals(Math.log(1) / Math.log(10), resultV.vector[3]);
}
-
+
@Test
public void testVectorRand() {
VectorizedRowBatch b = new VectorizedRowBatch(1);
@@ -393,13 +394,13 @@ public class TestVectorMathFunctions {
Assert.assertTrue(v.vector[i] >= 0.0 && v.vector[i] <= 1.0);
}
double avg = sum / n;
-
+
/* The random values must be between 0 and 1, distributed uniformly.
- * So the average value of a large set should be about 0.5. Verify it is
+ * So the average value of a large set should be about 0.5. Verify it is
* close to this value.
*/
Assert.assertTrue(avg > 0.3 && avg < 0.7);
-
+
// Now, test again with a seed.
Arrays.fill(v.vector, 0);
expr = new FuncRand(99999, 0);
@@ -412,29 +413,55 @@ public class TestVectorMathFunctions {
avg = sum / n;
Assert.assertTrue(avg > 0.3 && avg < 0.7);
}
-
+
@Test
public void testVectorLogBase() {
-
+
// test double->double version
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
DoubleColumnVector resultV = (DoubleColumnVector) b.cols[1];
b.cols[0].noNulls = true;
- VectorExpression expr = new FuncLogWithBaseDoubleToDouble(0, 10.0d, 1);
+ VectorExpression expr = new FuncLogWithBaseDoubleToDouble(0, 1);
+ ((ISetDoubleArg) expr).setArg(10.0d); // set base
expr.evaluate(b);
Assert.assertTrue(equalsWithinTolerance(Math.log(0.5d) / Math.log(10), resultV.vector[4]));
}
-
+
+ @Test
+ public void testVectorPosMod() {
+
+ // test double->double version
+ VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
+ DoubleColumnVector inV = (DoubleColumnVector) b.cols[0];
+ DoubleColumnVector resultV = (DoubleColumnVector) b.cols[1];
+ b.cols[0].noNulls = true;
+ inV.vector[4] = -4.0;
+ VectorExpression expr = new PosModDoubleToDouble(0, 1);
+ ((ISetDoubleArg) expr).setArg(0.3d); // set base
+ expr.evaluate(b);
+ Assert.assertTrue(equalsWithinTolerance(((-4.0d % 0.3d) + 0.3d) % 0.3d, resultV.vector[4]));
+
+ // test long->long version
+ b = getVectorizedRowBatchLongInLongOut();
+ LongColumnVector resV2 = (LongColumnVector) b.cols[1];
+ b.cols[0].noNulls = true;
+ expr = new PosModLongToLong(0, 1);
+ ((ISetLongArg) expr).setArg(3);
+ expr.evaluate(b);
+ Assert.assertEquals(((-2 % 3) + 3) % 3, resV2.vector[0]);
+ }
+
@Test
public void testVectorPower() {
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
DoubleColumnVector resultV = (DoubleColumnVector) b.cols[1];
b.cols[0].noNulls = true;
- VectorExpression expr = new FuncPowerDoubleToDouble(0, 2.0d, 1);
+ VectorExpression expr = new FuncPowerDoubleToDouble(0, 1);
+ ((ISetDoubleArg) expr).setArg(2.0d); // set power
expr.evaluate(b);
Assert.assertTrue(equalsWithinTolerance(0.5d * 0.5d, resultV.vector[4]));
}
-
+
@Test
public void testVectorSqrt() {
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
@@ -444,10 +471,10 @@ public class TestVectorMathFunctions {
expr.evaluate(b);
Assert.assertEquals(Math.sqrt(0.5d), resultV.vector[4]);
}
-
+
@Test
public void testVectorAbs() {
-
+
// test double->double version
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
DoubleColumnVector resultV = (DoubleColumnVector) b.cols[1];
@@ -456,7 +483,7 @@ public class TestVectorMathFunctions {
expr.evaluate(b);
Assert.assertEquals(1.5, resultV.vector[0]);
Assert.assertEquals(0.5, resultV.vector[4]);
-
+
// test long->long version
b = getVectorizedRowBatchLongInLongOut();
LongColumnVector resultVLong = (LongColumnVector) b.cols[1];
@@ -466,10 +493,10 @@ public class TestVectorMathFunctions {
Assert.assertEquals(2, resultVLong.vector[0]);
Assert.assertEquals(2, resultVLong.vector[1]);
}
-
+
@Test
public void testVectorSign() {
-
+
// test double->double version
VectorizedRowBatch b = getVectorizedRowBatchDoubleInDoubleOut();
DoubleColumnVector resultV = (DoubleColumnVector) b.cols[1];
@@ -478,7 +505,7 @@ public class TestVectorMathFunctions {
expr.evaluate(b);
Assert.assertEquals(-1.0d, resultV.vector[0]);
Assert.assertEquals(1.0d, resultV.vector[4]);
-
+
// test long->double version
b = getVectorizedRowBatchLongInDoubleOut();
resultV = (DoubleColumnVector) b.cols[1];
@@ -486,84 +513,41 @@ public class TestVectorMathFunctions {
expr = new FuncSignLongToDouble(0, 1);
expr.evaluate(b);
Assert.assertEquals(-1.0d, resultV.vector[0]);
- Assert.assertEquals(1.0d, resultV.vector[4]);
+ Assert.assertEquals(1.0d, resultV.vector[4]);
}
-
- @Test
+
+ @Test
public void testVectorBin() {
-
+
// test conversion of long->string
VectorizedRowBatch b = getBatchForStringMath();
BytesColumnVector resultV = (BytesColumnVector) b.cols[2];
b.cols[0].noNulls = true;
- VectorExpression expr = new FuncBin(1, 2);
+ VectorExpression expr = new FuncBin(1, 2);
expr.evaluate(b);
String s = new String(resultV.vector[1], resultV.start[1], resultV.length[1]);
Assert.assertEquals("11111111", s);
}
-
- @Test
+
+ @Test
public void testVectorHex() {
-
+
// test long->string version
VectorizedRowBatch b = getBatchForStringMath();
BytesColumnVector resultV = (BytesColumnVector) b.cols[2];
b.cols[1].noNulls = true;
- VectorExpression expr = new FuncHex(1, 2);
+ VectorExpression expr = new FuncHex(1, 2);
expr.evaluate(b);
String s = new String(resultV.vector[1], resultV.start[1], resultV.length[1]);
Assert.assertEquals("FF", s);
-
+
// test string->string version
b = getBatchForStringMath();
resultV = (BytesColumnVector) b.cols[2];
b.cols[0].noNulls = true;
- expr = new StringHex(0, 2);
+ expr = new StringHex(0, 2);
expr.evaluate(b);
s = new String(resultV.vector[1], resultV.start[1], resultV.length[1]);
Assert.assertEquals("33323332", s);
}
-
- @Test
- public void testVectorUnhex() {
-
- // test string->string version
- VectorizedRowBatch b = getBatchForStringMath();
- BytesColumnVector resultV = (BytesColumnVector) b.cols[2];
- b.cols[0].noNulls = true;
- resultV.noNulls = true;
- VectorExpression expr = new StringUnhex(0, 2);
- expr.evaluate(b);
- String s = new String(resultV.vector[1], resultV.start[1], resultV.length[1]);
- Assert.assertEquals("22", s);
-
- // check for NULL output for entry 2 ("bad data")
- Assert.assertEquals(false, resultV.noNulls);
- Assert.assertEquals(true, resultV.isNull[2]);
- }
-
- @Test
- public void testVectorConv() {
-
- // test string->string version
- VectorizedRowBatch b = getBatchForStringMath();
- BytesColumnVector resultV = (BytesColumnVector) b.cols[2];
- b.cols[0].noNulls = true;
- resultV.noNulls = true;
- VectorExpression expr = new StringConv(0, 2, 10, 16);
- expr.evaluate(b);
- String s[] = new String[3];
- try {
- s[0] = new String(resultV.vector[0], resultV.start[0], resultV.length[0], "UTF-8");
- s[1] = new String(resultV.vector[1], resultV.start[1], resultV.length[1], "UTF-8");
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- Assert.assertEquals("0", s[0]);
- Assert.assertEquals("CA0", s[1]);
-
- // Note: the documentation says that "bad data" should translate to NULL output,
- // but that is not the case in the existing code, which returns "0". So, this test skips
- // checking output for element 2.
- }
}
Modified: hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorStringExpressions.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorStringExpressions.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorStringExpressions.java (original)
+++ hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorStringExpressions.java Tue Oct 22 17:58:59 2013
@@ -33,6 +33,9 @@ import org.apache.hadoop.hive.ql.exec.ve
import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringScalarEqualStringColumn;
import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringScalarGreaterStringColumn;
import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringScalarLessEqualStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringColEqualStringScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringColLessStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringScalarEqualStringColumn;
import org.apache.hadoop.io.Text;
import org.junit.Test;
@@ -179,6 +182,29 @@ public class TestVectorStringExpressions
}
@Test
+ public void testStringColCompareStringScalarProjection() {
+ VectorizedRowBatch batch = makeStringBatch();
+ VectorExpression expr;
+
+ expr = new StringColEqualStringScalar(0, red2, 2);
+ expr.evaluate(batch);
+ Assert.assertEquals(3, batch.size);
+ LongColumnVector outVector = (LongColumnVector) batch.cols[2];
+ Assert.assertEquals(1, outVector.vector[0]);
+ Assert.assertEquals(0, outVector.vector[1]);
+ Assert.assertEquals(0, outVector.vector[2]);
+
+ batch = makeStringBatch();
+ expr = new StringColEqualStringScalar(0, green, 2);
+ expr.evaluate(batch);
+ Assert.assertEquals(3, batch.size);
+ outVector = (LongColumnVector) batch.cols[2];
+ Assert.assertEquals(0, outVector.vector[0]);
+ Assert.assertEquals(1, outVector.vector[1]);
+ Assert.assertEquals(0, outVector.vector[2]);
+ }
+
+ @Test
// Test string literal to string column comparison
public void testStringScalarCompareStringCol() {
VectorizedRowBatch batch = makeStringBatch();
@@ -207,7 +233,30 @@ public class TestVectorStringExpressions
Assert.assertTrue(batch.selected[0] == 0);
Assert.assertTrue(batch.selected[1] == 1);
}
-
+
+ @Test
+ public void testStringScalarCompareStringColProjection() {
+ VectorizedRowBatch batch = makeStringBatch();
+ VectorExpression expr;
+
+ expr = new StringScalarEqualStringColumn(0, red2, 2);
+ expr.evaluate(batch);
+ Assert.assertEquals(3, batch.size);
+ LongColumnVector outVector = (LongColumnVector) batch.cols[2];
+ Assert.assertEquals(1, outVector.vector[0]);
+ Assert.assertEquals(0, outVector.vector[1]);
+ Assert.assertEquals(0, outVector.vector[2]);
+
+ batch = makeStringBatch();
+ expr = new StringScalarEqualStringColumn(0, green, 2);
+ expr.evaluate(batch);
+ Assert.assertEquals(3, batch.size);
+ outVector = (LongColumnVector) batch.cols[2];
+ Assert.assertEquals(0, outVector.vector[0]);
+ Assert.assertEquals(1, outVector.vector[1]);
+ Assert.assertEquals(0, outVector.vector[2]);
+ }
+
@Test
public void testStringColCompareStringColFilter() {
VectorizedRowBatch batch;
@@ -301,7 +350,8 @@ public class TestVectorStringExpressions
batch.cols[1].isRepeating = true;
batch.cols[1].noNulls = true;
expr.evaluate(batch);
- Assert.assertEquals(3, batch.size);
+ Assert.assertEquals(2, batch.size);
+ Assert.assertEquals(0, batch.selected[0]);
Assert.assertEquals(1, batch.selected[1]);
// left and right repeat
@@ -359,12 +409,269 @@ public class TestVectorStringExpressions
Assert.assertEquals(0, batch.size);
}
+ @Test
+ public void testStringColCompareStringColProjection() {
+ VectorizedRowBatch batch;
+ VectorExpression expr;
+ long [] outVector;
+
+ /* input data
+ *
+ * col0 col1
+ * ===============
+ * blue red
+ * green green
+ * red blue
+ * NULL red col0 data is empty string if we un-set NULL property
+ */
+
+ // nulls possible on left, right
+ batch = makeStringBatchForColColCompare();
+ expr = new StringColLessStringColumn(0, 1, 3);
+ expr.evaluate(batch);
+ Assert.assertEquals(4, batch.size);
+ outVector = ((LongColumnVector) batch.cols[3]).vector;
+ Assert.assertFalse(batch.cols[3].isNull[0]);
+ Assert.assertEquals(1, outVector[0]);
+ Assert.assertFalse(batch.cols[3].isNull[1]);
+ Assert.assertEquals(0, outVector[1]);
+ Assert.assertFalse(batch.cols[3].isNull[2]);
+ Assert.assertEquals(0, outVector[2]);
+ Assert.assertTrue(batch.cols[3].isNull[3]);
+
+ // no nulls possible
+ batch = makeStringBatchForColColCompare();
+ batch.cols[0].noNulls = true;
+ batch.cols[1].noNulls = true;
+ expr.evaluate(batch);
+ Assert.assertEquals(4, batch.size);
+ outVector = ((LongColumnVector) batch.cols[3]).vector;
+ Assert.assertTrue(batch.cols[3].noNulls);
+ Assert.assertFalse(batch.cols[3].isNull[0]);
+ Assert.assertEquals(1, outVector[0]);
+ Assert.assertFalse(batch.cols[3].isNull[1]);
+ Assert.assertEquals(0, outVector[1]);
+ Assert.assertFalse(batch.cols[3].isNull[2]);
+ Assert.assertEquals(0, outVector[2]);
+ Assert.assertFalse(batch.cols[3].isNull[3]);
+ Assert.assertEquals(1, outVector[3]);
+
+ // nulls on left, no nulls on right
+ batch = makeStringBatchForColColCompare();
+ batch.cols[1].noNulls = true;
+ expr.evaluate(batch);
+ Assert.assertEquals(4, batch.size);
+ outVector = ((LongColumnVector) batch.cols[3]).vector;
+ Assert.assertFalse(batch.cols[3].isNull[0]);
+ Assert.assertEquals(1, outVector[0]);
+ Assert.assertFalse(batch.cols[3].isNull[1]);
+ Assert.assertEquals(0, outVector[1]);
+ Assert.assertFalse(batch.cols[3].isNull[2]);
+ Assert.assertEquals(0, outVector[2]);
+ Assert.assertTrue(batch.cols[3].isNull[3]);
+
+ // nulls on right, no nulls on left
+ batch = makeStringBatchForColColCompare();
+ batch.cols[0].noNulls = true;
+ batch.cols[1].isNull[3] = true;
+ expr.evaluate(batch);
+ Assert.assertEquals(4, batch.size);
+ outVector = ((LongColumnVector) batch.cols[3]).vector;
+ Assert.assertFalse(batch.cols[3].noNulls);
+ Assert.assertFalse(batch.cols[3].isNull[0]);
+ Assert.assertEquals(1, outVector[0]);
+ Assert.assertFalse(batch.cols[3].isNull[1]);
+ Assert.assertEquals(0, outVector[1]);
+ Assert.assertFalse(batch.cols[3].isNull[2]);
+ Assert.assertEquals(0, outVector[2]);
+ Assert.assertTrue(batch.cols[3].isNull[3]);
+
+ // Now vary isRepeating
+ // nulls possible on left, right
+
+ // left repeats
+ batch = makeStringBatchForColColCompare();
+ batch.cols[0].isRepeating = true;
+ expr.evaluate(batch);
+ Assert.assertEquals(4, batch.size);
+ outVector = ((LongColumnVector) batch.cols[3]).vector;
+ Assert.assertFalse(batch.cols[3].isNull[0]);
+ Assert.assertEquals(1, outVector[0]);
+ Assert.assertFalse(batch.cols[3].isNull[1]);
+ Assert.assertEquals(1, outVector[1]);
+ Assert.assertFalse(batch.cols[3].isNull[2]);
+ Assert.assertEquals(0, outVector[2]);
+ Assert.assertFalse(batch.cols[3].isNull[3]);
+ Assert.assertEquals(1, outVector[3]);
+
+
+ // right repeats
+ batch = makeStringBatchForColColCompare();
+ batch.cols[1].isRepeating = true;
+ expr.evaluate(batch);
+ Assert.assertEquals(4, batch.size);
+ outVector = ((LongColumnVector) batch.cols[3]).vector;
+ Assert.assertFalse(batch.cols[3].noNulls);
+ Assert.assertFalse(batch.cols[3].isNull[0]);
+ Assert.assertEquals(1, outVector[0]);
+ Assert.assertFalse(batch.cols[3].isNull[1]);
+ Assert.assertEquals(1, outVector[1]);
+ Assert.assertFalse(batch.cols[3].isNull[2]);
+ Assert.assertEquals(0, outVector[2]);
+ Assert.assertTrue(batch.cols[3].isNull[3]);
+
+ // left and right repeat
+ batch = makeStringBatchForColColCompare();
+ batch.cols[0].isRepeating = true;
+ batch.cols[1].isRepeating = true;
+ expr.evaluate(batch);
+ Assert.assertEquals(4, batch.size);
+ outVector = ((LongColumnVector) batch.cols[3]).vector;
+ Assert.assertTrue(batch.cols[3].isRepeating);
+ Assert.assertFalse(batch.cols[3].isNull[0]);
+ Assert.assertEquals(1, outVector[0]);
+
+ // Now vary isRepeating
+ // nulls possible only on left
+
+ // left repeats
+ batch = makeStringBatchForColColCompare();
+ batch.cols[0].isRepeating = true;
+ batch.cols[1].noNulls = true;
+ expr.evaluate(batch);
+ outVector = ((LongColumnVector) batch.cols[3]).vector;
+ Assert.assertEquals(4, batch.size);
+ Assert.assertFalse(batch.cols[3].noNulls);
+ Assert.assertFalse(batch.cols[3].isNull[0]);
+ Assert.assertEquals(1, outVector[0]);
+ Assert.assertFalse(batch.cols[3].isNull[1]);
+ Assert.assertEquals(1, outVector[1]);
+ Assert.assertFalse(batch.cols[3].isNull[2]);
+ Assert.assertEquals(0, outVector[2]);
+ Assert.assertFalse(batch.cols[3].isNull[3]);
+ Assert.assertEquals(1, outVector[3]);
+
+ // left repeats and is null
+ batch = makeStringBatchForColColCompare();
+ batch.cols[0].isRepeating = true;
+ batch.cols[1].noNulls = true;
+ batch.cols[0].isNull[0] = true;
+ expr.evaluate(batch);
+ Assert.assertEquals(4, batch.size);
+ Assert.assertFalse(batch.cols[3].noNulls);
+ Assert.assertTrue(batch.cols[3].isRepeating);
+ Assert.assertTrue(batch.cols[3].isNull[0]);
+
+ // right repeats
+ batch = makeStringBatchForColColCompare();
+ batch.cols[1].isRepeating = true;
+ batch.cols[1].noNulls = true;
+ expr.evaluate(batch);
+ outVector = ((LongColumnVector) batch.cols[3]).vector;
+ Assert.assertEquals(4, batch.size);
+ Assert.assertFalse(batch.cols[3].noNulls);
+ Assert.assertFalse(batch.cols[3].isNull[0]);
+ Assert.assertEquals(1, outVector[0]);
+ Assert.assertFalse(batch.cols[3].isNull[1]);
+ Assert.assertEquals(1, outVector[1]);
+ Assert.assertFalse(batch.cols[3].isNull[2]);
+ Assert.assertEquals(0, outVector[2]);
+ Assert.assertTrue(batch.cols[3].isNull[3]);
+
+ // left and right repeat
+ batch = makeStringBatchForColColCompare();
+ batch.cols[0].isRepeating = true;
+ batch.cols[1].isRepeating = true;
+ batch.cols[1].noNulls = true;
+ expr.evaluate(batch);
+ Assert.assertEquals(4, batch.size);
+ outVector = ((LongColumnVector) batch.cols[3]).vector;
+ Assert.assertTrue(batch.cols[3].isRepeating);
+ Assert.assertFalse(batch.cols[3].isNull[0]);
+ Assert.assertEquals(1, outVector[0]);
+
+
+
+ // Now vary isRepeating
+ // nulls possible only on right
+
+ // left repeats
+ batch = makeStringBatchForColColCompare();
+ batch.cols[0].isRepeating = true;
+ batch.cols[0].noNulls = true;
+ batch.cols[1].isNull[0] = true;
+ expr.evaluate(batch);
+ outVector = ((LongColumnVector) batch.cols[3]).vector;
+ Assert.assertEquals(4, batch.size);
+ Assert.assertFalse(batch.cols[3].noNulls);
+ Assert.assertTrue(batch.cols[3].isNull[0]);
+ Assert.assertFalse(batch.cols[3].isNull[1]);
+ Assert.assertEquals(1, outVector[1]);
+ Assert.assertFalse(batch.cols[3].isNull[2]);
+ Assert.assertEquals(0, outVector[2]);
+ Assert.assertFalse(batch.cols[3].isNull[3]);
+ Assert.assertEquals(1, outVector[3]);
+
+ // right repeats
+ batch = makeStringBatchForColColCompare();
+ batch.cols[1].isRepeating = true;
+ batch.cols[0].noNulls = true;
+ expr.evaluate(batch);
+ outVector = ((LongColumnVector) batch.cols[3]).vector;
+ Assert.assertEquals(4, batch.size);
+ Assert.assertFalse(batch.cols[3].noNulls);
+ Assert.assertFalse(batch.cols[3].isNull[0]);
+ Assert.assertEquals(1, outVector[0]);
+ Assert.assertFalse(batch.cols[3].isNull[1]);
+ Assert.assertEquals(1, outVector[1]);
+ Assert.assertFalse(batch.cols[3].isNull[2]);
+ Assert.assertEquals(0, outVector[2]);
+ Assert.assertFalse(batch.cols[3].isNull[3]);
+ Assert.assertEquals(1, outVector[3]);
+
+ // right repeats and is null
+ batch = makeStringBatchForColColCompare();
+ batch.cols[1].isRepeating = true;
+ batch.cols[0].noNulls = true;
+ batch.cols[1].isNull[0] = true;
+ expr.evaluate(batch);
+ Assert.assertEquals(4, batch.size);
+ Assert.assertFalse(batch.cols[3].noNulls);
+ Assert.assertTrue(batch.cols[3].isRepeating);
+ Assert.assertTrue(batch.cols[3].isNull[0]);
+
+ // left and right repeat
+ batch = makeStringBatchForColColCompare();
+ batch.cols[0].isRepeating = true;
+ batch.cols[1].isRepeating = true;
+ batch.cols[0].noNulls = true;
+ expr.evaluate(batch);
+ Assert.assertEquals(4, batch.size);
+ outVector = ((LongColumnVector) batch.cols[3]).vector;
+ Assert.assertTrue(batch.cols[3].isRepeating);
+ Assert.assertFalse(batch.cols[3].isNull[0]);
+ Assert.assertEquals(1, outVector[0]);
+
+ // left and right repeat and right is null
+ batch = makeStringBatchForColColCompare();
+ batch.cols[0].isRepeating = true;
+ batch.cols[1].isRepeating = true;
+ batch.cols[0].noNulls = true;
+ batch.cols[1].isNull[0] = true;
+ expr.evaluate(batch);
+ Assert.assertEquals(4, batch.size);
+ Assert.assertFalse(batch.cols[3].noNulls);
+ Assert.assertTrue(batch.cols[3].isRepeating);
+ Assert.assertTrue(batch.cols[3].isNull[0]);
+ }
+
VectorizedRowBatch makeStringBatch() {
// create a batch with one string ("Bytes") column
- VectorizedRowBatch batch = new VectorizedRowBatch(2);
+ VectorizedRowBatch batch = new VectorizedRowBatch(3);
BytesColumnVector v = new BytesColumnVector();
batch.cols[0] = v;
batch.cols[1] = new BytesColumnVector(); // to hold output if needed
+ batch.cols[2] = new LongColumnVector(batch.size); // to hold boolean output
/*
* Add these 3 values:
*
@@ -580,12 +887,13 @@ public class TestVectorStringExpressions
}
private VectorizedRowBatch makeStringBatchForColColCompare() {
- VectorizedRowBatch batch = new VectorizedRowBatch(3);
+ VectorizedRowBatch batch = new VectorizedRowBatch(4);
BytesColumnVector v = new BytesColumnVector();
batch.cols[0] = v;
BytesColumnVector v2 = new BytesColumnVector();
batch.cols[1] = v2;
batch.cols[2] = new BytesColumnVector();
+ batch.cols[3] = new LongColumnVector();
v.setRef(0, blue, 0, blue.length);
v.isNull[0] = false;
@@ -1163,7 +1471,7 @@ public class TestVectorStringExpressions
v = new BytesColumnVector();
v.isRepeating = false;
v.noNulls = true;
-
+
// string is 2 chars long (a 3 byte and a 4 byte char)
v.setRef(0, multiByte, 3, 7);
batch.cols[0] = v;
@@ -1262,6 +1570,36 @@ public class TestVectorStringExpressions
)
);
+ //Testing substring index starting with 1 and zero length
+
+ outV.isRepeating = true;
+ outV.noNulls = false;
+
+ expr = new StringSubstrColStartLen(0, 1, 0, 1);
+ outCol = (BytesColumnVector) batch.cols[1];
+ expr.evaluate(batch);
+ Assert.assertEquals(3, batch.size);
+ Assert.assertTrue(outCol.noNulls);
+ Assert.assertFalse(outCol.isRepeating);
+ Assert.assertEquals(0,
+ StringExpr.compare(
+ data1, 1, 0, outCol.vector[0], outCol.start[0], outCol.length[0]
+ )
+ );
+
+ Assert.assertEquals(0,
+ StringExpr.compare(
+ data2, 1, 0, outCol.vector[1], outCol.start[1], outCol.length[1]
+ )
+ );
+
+ Assert.assertEquals(0,
+ StringExpr.compare(
+ data3, 1, 0, outCol.vector[2], outCol.start[2], outCol.length[2]
+ )
+ );
+
+
//Testing substring index starting with 0 and length equal to array length
outV.isRepeating = true;
@@ -1414,7 +1752,7 @@ public class TestVectorStringExpressions
)
);
}
-
+
@Test
public void testVectorLTrim() {
VectorizedRowBatch b = makeTrimBatch();
@@ -1425,7 +1763,7 @@ public class TestVectorStringExpressions
StringExpr.compare(emptyString, 0, 0, outV.vector[0], 0, 0));
Assert.assertEquals(0,
StringExpr.compare(blanksLeft, 2, 3, outV.vector[1], outV.start[1], outV.length[1]));
- Assert.assertEquals(0,
+ Assert.assertEquals(0,
StringExpr.compare(blanksRight, 0, 5, outV.vector[2], outV.start[2], outV.length[2]));
Assert.assertEquals(0,
StringExpr.compare(blanksBoth, 2, 5, outV.vector[3], outV.start[3], outV.length[3]));
@@ -1445,7 +1783,7 @@ public class TestVectorStringExpressions
StringExpr.compare(emptyString, 0, 0, outV.vector[0], 0, 0));
Assert.assertEquals(0,
StringExpr.compare(blanksLeft, 0, 5, outV.vector[1], outV.start[1], outV.length[1]));
- Assert.assertEquals(0,
+ Assert.assertEquals(0,
StringExpr.compare(blanksRight, 0, 3, outV.vector[2], outV.start[2], outV.length[2]));
Assert.assertEquals(0,
StringExpr.compare(blanksBoth, 0, 5, outV.vector[3], outV.start[3], outV.length[3]));
@@ -1454,7 +1792,7 @@ public class TestVectorStringExpressions
Assert.assertEquals(0,
StringExpr.compare(blankString, 0, 0, outV.vector[5], outV.start[5], outV.length[5]));
}
-
+
@Test
public void testVectorTrim() {
VectorizedRowBatch b = makeTrimBatch();
@@ -1465,7 +1803,7 @@ public class TestVectorStringExpressions
StringExpr.compare(emptyString, 0, 0, outV.vector[0], 0, 0));
Assert.assertEquals(0,
StringExpr.compare(blanksLeft, 2, 3, outV.vector[1], outV.start[1], outV.length[1]));
- Assert.assertEquals(0,
+ Assert.assertEquals(0,
StringExpr.compare(blanksRight, 0, 3, outV.vector[2], outV.start[2], outV.length[2]));
Assert.assertEquals(0,
StringExpr.compare(blanksBoth, 2, 3, outV.vector[3], outV.start[3], outV.length[3]));
@@ -1474,7 +1812,7 @@ public class TestVectorStringExpressions
Assert.assertEquals(0,
StringExpr.compare(blankString, 0, 0, outV.vector[5], outV.start[5], outV.length[5]));
}
-
+
// Make a batch to test the trim functions.
private VectorizedRowBatch makeTrimBatch() {
VectorizedRowBatch b = new VectorizedRowBatch(2);
Modified: hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcFile.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcFile.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcFile.java (original)
+++ hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcFile.java Tue Oct 22 17:58:59 2013
@@ -361,7 +361,7 @@ public class TestOrcFile {
assertEquals(Timestamp.valueOf("2000-03-12 15:00:00"),
tso.getPrimitiveJavaObject(readerInspector.getStructFieldData(row,
fields.get(12))));
- assertEquals(new HiveDecimal("12345678.6547456"),
+ assertEquals(HiveDecimal.create("12345678.6547456"),
dco.getPrimitiveJavaObject(readerInspector.getStructFieldData(row,
fields.get(13))));
@@ -443,7 +443,7 @@ public class TestOrcFile {
assertEquals(Timestamp.valueOf("2000-03-12 15:00:01"),
tso.getPrimitiveJavaObject(readerInspector.getStructFieldData(row,
fields.get(12))));
- assertEquals(new HiveDecimal("12345678.6547457"),
+ assertEquals(HiveDecimal.create("12345678.6547457"),
dco.getPrimitiveJavaObject(readerInspector.getStructFieldData(row,
fields.get(13))));
@@ -963,7 +963,7 @@ public class TestOrcFile {
synchronized (TestOrcFile.class) {
inspector = OrcStruct.createObjectInspector(0, types);
}
- HiveDecimal maxValue = new HiveDecimal("100000000000000000000");
+ HiveDecimal maxValue = HiveDecimal.create("100000000000000000000");
Writer writer = OrcFile.createWriter(testFilePath,
OrcFile.writerOptions(conf)
.inspector(inspector)
@@ -975,13 +975,13 @@ public class TestOrcFile {
OrcUnion union = new OrcUnion();
row.setFieldValue(1, union);
row.setFieldValue(0, Timestamp.valueOf("2000-03-12 15:00:00"));
- HiveDecimal value = new HiveDecimal("12345678.6547456");
+ HiveDecimal value = HiveDecimal.create("12345678.6547456");
row.setFieldValue(2, value);
union.set((byte) 0, new IntWritable(42));
writer.addRow(row);
row.setFieldValue(0, Timestamp.valueOf("2000-03-20 12:00:00.123456789"));
union.set((byte) 1, new Text("hello"));
- value = new HiveDecimal("-5643.234");
+ value = HiveDecimal.create("-5643.234");
row.setFieldValue(2, value);
writer.addRow(row);
row.setFieldValue(0, null);
@@ -995,7 +995,7 @@ public class TestOrcFile {
writer.addRow(row);
union.set((byte) 0, new IntWritable(200000));
row.setFieldValue(0, Timestamp.valueOf("1900-01-01 00:00:00"));
- value = new HiveDecimal("100000000000000000000");
+ value = HiveDecimal.create("100000000000000000000");
row.setFieldValue(2, value);
writer.addRow(row);
Random rand = new Random(42);
@@ -1006,7 +1006,7 @@ public class TestOrcFile {
} else {
union.set((byte) 1, new Text(new Integer(i*i).toString()));
}
- value = new HiveDecimal(new BigInteger(118, rand),
+ value = HiveDecimal.create(new BigInteger(118, rand),
rand.nextInt(36));
row.setFieldValue(2, value);
if (maxValue.compareTo(value) < 0) {
@@ -1034,7 +1034,7 @@ public class TestOrcFile {
DecimalColumnStatistics stats =
(DecimalColumnStatistics) reader.getStatistics()[5];
assertEquals(303, stats.getNumberOfValues());
- assertEquals(new HiveDecimal("-5643.234"), stats.getMinimum());
+ assertEquals(HiveDecimal.create("-5643.234"), stats.getMinimum());
assertEquals(maxValue, stats.getMaximum());
assertEquals(null, stats.getSum());
int stripeCount = 0;
@@ -1067,14 +1067,14 @@ public class TestOrcFile {
union = (OrcUnion) row.getFieldValue(1);
assertEquals(0, union.getTag());
assertEquals(new IntWritable(42), union.getObject());
- assertEquals(new HiveDecimal("12345678.6547456"), row.getFieldValue(2));
+ assertEquals(HiveDecimal.create("12345678.6547456"), row.getFieldValue(2));
row = (OrcStruct) rows.next(row);
assertEquals(2, rows.getRowNumber());
assertEquals(Timestamp.valueOf("2000-03-20 12:00:00.123456789"),
row.getFieldValue(0));
assertEquals(1, union.getTag());
assertEquals(new Text("hello"), union.getObject());
- assertEquals(new HiveDecimal("-5643.234"), row.getFieldValue(2));
+ assertEquals(HiveDecimal.create("-5643.234"), row.getFieldValue(2));
row = (OrcStruct) rows.next(row);
assertEquals(null, row.getFieldValue(0));
assertEquals(null, row.getFieldValue(1));
@@ -1094,7 +1094,7 @@ public class TestOrcFile {
assertEquals(Timestamp.valueOf("1900-01-01 00:00:00"),
row.getFieldValue(0));
assertEquals(new IntWritable(200000), union.getObject());
- assertEquals(new HiveDecimal("100000000000000000000"),
+ assertEquals(HiveDecimal.create("100000000000000000000"),
row.getFieldValue(2));
rand = new Random(42);
for(int i=1900; i < 2200; ++i) {
@@ -1108,7 +1108,7 @@ public class TestOrcFile {
assertEquals(1, union.getTag());
assertEquals(new Text(new Integer(i*i).toString()), union.getObject());
}
- assertEquals(new HiveDecimal(new BigInteger(118, rand),
+ assertEquals(HiveDecimal.create(new BigInteger(118, rand),
rand.nextInt(36)), row.getFieldValue(2));
}
for(int i=0; i < 5000; ++i) {
@@ -1130,7 +1130,7 @@ public class TestOrcFile {
row.getFieldValue(0));
assertEquals(1, union.getTag());
assertEquals(new Text("hello"), union.getObject());
- assertEquals(new HiveDecimal("-5643.234"), row.getFieldValue(2));
+ assertEquals(HiveDecimal.create("-5643.234"), row.getFieldValue(2));
rows.close();
}
Modified: hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcSerDeStats.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcSerDeStats.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcSerDeStats.java (original)
+++ hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcSerDeStats.java Tue Oct 22 17:58:59 2013
@@ -398,7 +398,7 @@ public class TestOrcSerDeStats {
Long.MAX_VALUE, (float) 1.0, -15.0, bytes(0, 1, 2, 3, 4), "hi",
new MiddleStruct(inner(1, "bye"), inner(2, "sigh")),
list(inner(3, "good"), inner(4, "bad")),
- map(), Timestamp.valueOf("2000-03-12 15:00:00"), new HiveDecimal(
+ map(), Timestamp.valueOf("2000-03-12 15:00:00"), HiveDecimal.create(
"12345678.6547456")));
// 1 + 2 + 4 + 8 + 4 + 8 + 3 + 4 + 3 + 4 + 4 + 4 + 3 + 4 + 2 + 4 + 3 + 5 + 4 + 5 + 7 + 4 + 7 =
// 97
@@ -407,7 +407,7 @@ public class TestOrcSerDeStats {
new MiddleStruct(inner(1, "bye"), inner(2, "sigh")),
list(inner(100000000, "cat"), inner(-100000, "in"), inner(1234, "hat")),
map(inner(5, "chani"), inner(1, "mauddib")), Timestamp.valueOf("2000-03-11 15:00:00"),
- new HiveDecimal("12345678.6547452")));
+ HiveDecimal.create("12345678.6547452")));
writer.close();
long rowCount = writer.getNumberOfRows();
long rawDataSize = writer.getRawDataSize();
@@ -491,7 +491,7 @@ public class TestOrcSerDeStats {
Long.MAX_VALUE, (float) 1.0, -15.0, bytes(0, 1, 2, 3, 4), "hi",
new MiddleStruct(inner(1, "bye"), inner(2, "sigh")),
list(inner(3, "good"), inner(4, "bad")),
- map(), Timestamp.valueOf("2000-03-12 15:00:00"), new HiveDecimal(
+ map(), Timestamp.valueOf("2000-03-12 15:00:00"), HiveDecimal.create(
"12345678.6547456")));
// 1 + 2 + 4 + 8 + 4 + 8 + 3 + 4 + 3 + 4 + 4 + 4 + 3 + 4 + 2 + 4 + 3 + 5 + 4 + 5 + 7 + 4 + 7 =
// 97
@@ -500,7 +500,7 @@ public class TestOrcSerDeStats {
new MiddleStruct(inner(1, "bye"), inner(2, "sigh")),
list(inner(100000000, "cat"), inner(-100000, "in"), inner(1234, "hat")),
map(inner(5, "chani"), inner(1, "mauddib")), Timestamp.valueOf("2000-03-11 15:00:00"),
- new HiveDecimal("12345678.6547452")));
+ HiveDecimal.create("12345678.6547452")));
writer.close();
long rowCount = writer.getNumberOfRows();
long rawDataSize = writer.getRawDataSize();
Modified: hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/io/sarg/TestSearchArgumentImpl.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/io/sarg/TestSearchArgumentImpl.java?rev=1534711&r1=1534710&r2=1534711&view=diff
==============================================================================
--- hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/io/sarg/TestSearchArgumentImpl.java (original)
+++ hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/io/sarg/TestSearchArgumentImpl.java Tue Oct 22 17:58:59 2013
@@ -18,20 +18,21 @@
package org.apache.hadoop.hive.ql.io.sarg;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hive.ql.exec.Utilities;
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertTrue;
+
+import java.beans.XMLDecoder;
+import java.io.ByteArrayInputStream;
+import java.io.UnsupportedEncodingException;
+import java.util.List;
+
import org.apache.hadoop.hive.ql.io.sarg.SearchArgument.TruthValue;
import org.apache.hadoop.hive.ql.io.sarg.SearchArgumentImpl.ExpressionBuilder;
import org.apache.hadoop.hive.ql.io.sarg.SearchArgumentImpl.ExpressionTree;
-import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
+import org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc;
import org.apache.mina.util.IdentityHashSet;
import org.junit.Test;
-import java.util.List;
-
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertTrue;
-
/**
* These test the SARG implementation.
* The xml files were generated by setting hive.optimize.index.filter
@@ -224,6 +225,23 @@ public class TestSearchArgumentImpl {
}
}
+ private ExprNodeGenericFuncDesc getFuncDesc (String xmlSerialized) {
+ byte[] bytes;
+ try {
+ bytes = xmlSerialized.getBytes("UTF-8");
+ } catch (UnsupportedEncodingException ex) {
+ throw new RuntimeException("UTF-8 support required", ex);
+ }
+
+ ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
+ XMLDecoder decoder = new XMLDecoder(bais, null, null);
+
+ try {
+ return (ExprNodeGenericFuncDesc) decoder.readObject();
+ } finally {
+ decoder.close();
+ }
+ }
@Test
public void testExpression1() throws Exception {
// first_name = 'john' or
@@ -237,35 +255,35 @@ public class TestSearchArgumentImpl {
String exprStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
"<java version=\"1.6.0_31\" class=\"java.beans.XMLDecoder\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -310,7 +328,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc\"> \n" +
@@ -357,7 +375,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc\"> \n" +
@@ -404,7 +422,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -455,7 +473,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc\"> \n" +
@@ -502,7 +520,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -549,7 +567,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc\"> \n" +
@@ -596,11 +614,11 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -637,7 +655,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -692,10 +710,9 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" </object> \n" +
"</java> \n";
- Configuration conf = new Configuration();
- ExprNodeDesc expr = Utilities.deserializeExpression(exprStr, conf);
+
SearchArgumentImpl sarg =
- (SearchArgumentImpl) SearchArgument.FACTORY.create(expr);
+ (SearchArgumentImpl) SearchArgument.FACTORY.create(getFuncDesc(exprStr));
List<PredicateLeaf> leaves = sarg.getLeaves();
assertEquals(9, leaves.size());
@@ -771,19 +788,19 @@ public class TestSearchArgumentImpl {
String exprStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
"<java version=\"1.6.0_31\" class=\"java.beans.XMLDecoder\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -818,7 +835,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -865,7 +882,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -916,7 +933,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -961,10 +978,9 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" </object> \n" +
"</java> \n";
- Configuration conf = new Configuration();
- ExprNodeDesc expr = Utilities.deserializeExpression(exprStr, conf);
+
SearchArgumentImpl sarg =
- (SearchArgumentImpl) SearchArgument.FACTORY.create(expr);
+ (SearchArgumentImpl) SearchArgument.FACTORY.create(getFuncDesc(exprStr));
List<PredicateLeaf> leaves = sarg.getLeaves();
assertEquals(4, leaves.size());
@@ -1048,23 +1064,23 @@ public class TestSearchArgumentImpl {
String exprStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
"<java version=\"1.6.0_31\" class=\"java.beans.XMLDecoder\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc\"> \n" +
@@ -1129,7 +1145,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -1180,11 +1196,11 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc\"> \n" +
@@ -1210,9 +1226,6 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void property=\"genericUDF\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge\"> \n" +
- " <void property=\"udfClass\"> \n" +
- " <class>org.apache.hadoop.hive.ql.udf.UDFSubstr</class> \n" +
- " </void> \n" +
" <void property=\"udfClassName\"> \n" +
" <string>org.apache.hadoop.hive.ql.udf.UDFSubstr</string> \n" +
" </void> \n" +
@@ -1261,7 +1274,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc\"> \n" +
@@ -1308,11 +1321,11 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -1341,9 +1354,6 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void property=\"genericUDF\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge\"> \n" +
- " <void property=\"udfClass\"> \n" +
- " <class>org.apache.hadoop.hive.ql.udf.UDFSubstr</class> \n" +
- " </void> \n" +
" <void property=\"udfClassName\"> \n" +
" <string>org.apache.hadoop.hive.ql.udf.UDFSubstr</string> \n" +
" </void> \n" +
@@ -1387,10 +1397,9 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" </object> \n" +
"</java> \n";
- Configuration conf = new Configuration();
- ExprNodeDesc expr = Utilities.deserializeExpression(exprStr, conf);
+
SearchArgumentImpl sarg =
- (SearchArgumentImpl) SearchArgument.FACTORY.create(expr);
+ (SearchArgumentImpl) SearchArgument.FACTORY.create(getFuncDesc(exprStr));
List<PredicateLeaf> leaves = sarg.getLeaves();
assertEquals(3, leaves.size());
@@ -1428,15 +1437,15 @@ public class TestSearchArgumentImpl {
String exprStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
"<java version=\"1.6.0_31\" class=\"java.beans.XMLDecoder\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -1481,7 +1490,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -1542,7 +1551,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -1598,10 +1607,9 @@ public class TestSearchArgumentImpl {
" </object> \n" +
"</java> \n" +
"\n";
- Configuration conf = new Configuration();
- ExprNodeDesc expr = Utilities.deserializeExpression(exprStr, conf);
+
SearchArgumentImpl sarg =
- (SearchArgumentImpl) SearchArgument.FACTORY.create(expr);
+ (SearchArgumentImpl) SearchArgument.FACTORY.create(getFuncDesc(exprStr));
List<PredicateLeaf> leaves = sarg.getLeaves();
assertEquals(3, leaves.size());
@@ -1654,15 +1662,15 @@ public class TestSearchArgumentImpl {
String exprStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
"<java version=\"1.6.0_31\" class=\"java.beans.XMLDecoder\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -1707,7 +1715,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc\"> \n" +
@@ -1721,7 +1729,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -1754,9 +1762,6 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void property=\"genericUDF\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge\"> \n" +
- " <void property=\"udfClass\"> \n" +
- " <class>org.apache.hadoop.hive.ql.udf.UDFSubstr</class> \n" +
- " </void> \n" +
" <void property=\"udfClassName\"> \n" +
" <string>org.apache.hadoop.hive.ql.udf.UDFSubstr</string> \n" +
" </void> \n" +
@@ -1792,7 +1797,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc\"> \n" +
@@ -1857,10 +1862,9 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" </object> \n" +
"</java> \n";
- Configuration conf = new Configuration();
- ExprNodeDesc expr = Utilities.deserializeExpression(exprStr, conf);
+
SearchArgumentImpl sarg =
- (SearchArgumentImpl) SearchArgument.FACTORY.create(expr);
+ (SearchArgumentImpl) SearchArgument.FACTORY.create(getFuncDesc(exprStr));
List<PredicateLeaf> leaves = sarg.getLeaves();
assertEquals(1, leaves.size());
@@ -1884,27 +1888,27 @@ public class TestSearchArgumentImpl {
String exprStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
"<java version=\"1.6.0_31\" class=\"java.beans.XMLDecoder\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -1949,7 +1953,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -1996,7 +2000,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -2043,15 +2047,15 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -2088,7 +2092,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -2135,7 +2139,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -2192,11 +2196,11 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -2233,7 +2237,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -2290,7 +2294,7 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -2335,10 +2339,9 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" </object>\n" +
"</java>";
- Configuration conf = new Configuration();
- ExprNodeDesc expr = Utilities.deserializeExpression(exprStr, conf);
+
SearchArgumentImpl sarg =
- (SearchArgumentImpl) SearchArgument.FACTORY.create(expr);
+ (SearchArgumentImpl) SearchArgument.FACTORY.create(getFuncDesc(exprStr));
List<PredicateLeaf> leaves = sarg.getLeaves();
assertEquals(9, leaves.size());
@@ -2424,7 +2427,7 @@ public class TestSearchArgumentImpl {
String exprStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
"<java version=\"1.6.0_31\" class=\"java.beans.XMLDecoder\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -2470,10 +2473,9 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" </object> \n" +
"</java> ";
- Configuration conf = new Configuration();
- ExprNodeDesc expr = Utilities.deserializeExpression(exprStr, conf);
+
SearchArgumentImpl sarg =
- (SearchArgumentImpl) SearchArgument.FACTORY.create(expr);
+ (SearchArgumentImpl) SearchArgument.FACTORY.create(getFuncDesc(exprStr));
List<PredicateLeaf> leaves = sarg.getLeaves();
assertEquals(0, leaves.size());
@@ -2487,7 +2489,7 @@ public class TestSearchArgumentImpl {
String exprStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
"<java version=\"1.6.0_31\" class=\"java.beans.XMLDecoder\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n" +
@@ -2508,11 +2510,11 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n" +
- " <void property=\"childExprs\"> \n" +
+ " <void property=\"children\"> \n" +
" <object class=\"java.util.ArrayList\"> \n" +
" <void method=\"add\"> \n" +
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc\"> \n" +
@@ -2541,9 +2543,6 @@ public class TestSearchArgumentImpl {
" <void property=\"operator\"> \n" +
" <boolean>true</boolean> \n" +
" </void> \n" +
- " <void property=\"udfClass\"> \n" +
- " <class>org.apache.hadoop.hive.ql.udf.UDFOPPlus</class> \n" +
- " </void> \n" +
" <void property=\"udfClassName\"> \n" +
" <string>org.apache.hadoop.hive.ql.udf.UDFOPPlus</string> \n" +
" </void> \n" +
@@ -2574,9 +2573,6 @@ public class TestSearchArgumentImpl {
" <void property=\"operator\"> \n" +
" <boolean>true</boolean> \n" +
" </void> \n" +
- " <void property=\"udfClass\"> \n" +
- " <class>org.apache.hadoop.hive.ql.udf.UDFOPPlus</class> \n" +
- " </void> \n" +
" <void property=\"udfClassName\"> \n" +
" <string>org.apache.hadoop.hive.ql.udf.UDFOPPlus</string> \n" +
" </void> \n" +
@@ -2604,10 +2600,9 @@ public class TestSearchArgumentImpl {
" </void> \n" +
" </object> \n" +
"</java> ";
- Configuration conf = new Configuration();
- ExprNodeDesc expr = Utilities.deserializeExpression(exprStr, conf);
+
SearchArgumentImpl sarg =
- (SearchArgumentImpl) SearchArgument.FACTORY.create(expr);
+ (SearchArgumentImpl) SearchArgument.FACTORY.create(getFuncDesc(exprStr));
List<PredicateLeaf> leaves = sarg.getLeaves();
assertEquals(0, leaves.size());
@@ -2622,11 +2617,11 @@ public class TestSearchArgumentImpl {
String exprStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
"<java version=\"1.6.0_31\" class=\"java.beans.XMLDecoder\"> \n"+
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n"+
- " <void property=\"childExprs\"> \n"+
+ " <void property=\"children\"> \n"+
" <object class=\"java.util.ArrayList\"> \n"+
" <void method=\"add\"> \n"+
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n"+
- " <void property=\"childExprs\"> \n"+
+ " <void property=\"children\"> \n"+
" <object class=\"java.util.ArrayList\"> \n"+
" <void method=\"add\"> \n"+
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n"+
@@ -2671,11 +2666,11 @@ public class TestSearchArgumentImpl {
" </void> \n"+
" <void method=\"add\"> \n"+
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n"+
- " <void property=\"childExprs\"> \n"+
+ " <void property=\"children\"> \n"+
" <object class=\"java.util.ArrayList\"> \n"+
" <void method=\"add\"> \n"+
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc\"> \n"+
- " <void property=\"childExprs\"> \n"+
+ " <void property=\"children\"> \n"+
" <object class=\"java.util.ArrayList\"> \n"+
" <void method=\"add\"> \n"+
" <object class=\"org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc\"> \n"+
@@ -2730,10 +2725,9 @@ public class TestSearchArgumentImpl {
" </void> \n"+
" </object> \n"+
"</java>";
- Configuration conf = new Configuration();
- ExprNodeDesc expr = Utilities.deserializeExpression(exprStr, conf);
+
SearchArgumentImpl sarg =
- (SearchArgumentImpl) SearchArgument.FACTORY.create(expr);
+ (SearchArgumentImpl) SearchArgument.FACTORY.create(getFuncDesc(exprStr));
List<PredicateLeaf> leaves = sarg.getLeaves();
assertEquals(1, leaves.size());