You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by ja...@apache.org on 2014/04/20 03:18:49 UTC
[41/51] [abbrv] Move to Optiq 0.6 Also includes: -improve exception
catching -move schema path parsing to Antlr -close zookeeper connection on if
client created -enhance BaseTestQuery and have other query tests utilize it
-Various test fixes for better m
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TopN/TestSimpleTopN.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TopN/TestSimpleTopN.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TopN/TestSimpleTopN.java
index 9b2f892..25b62ad 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TopN/TestSimpleTopN.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TopN/TestSimpleTopN.java
@@ -59,8 +59,8 @@ import static org.junit.Assert.assertTrue;
public class TestSimpleTopN extends PopUnitTestBase {
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestSimpleTopN.class);
DrillConfig c = DrillConfig.create();
-
-
+
+
@Test
public void sortOneKeyAscending() throws Throwable{
RemoteServiceSet serviceSet = RemoteServiceSet.getLocalServiceSet();
@@ -103,14 +103,16 @@ public class TestSimpleTopN extends PopUnitTestBase {
assertTrue(previousBigInt <= a1.get(i));
previousBigInt = a1.get(i);
}
+ loader.clear();
+ b.release();
}
System.out.println(String.format("Sorted %,d records in %d batches.", recordCount, batchCount));
}
-
+
}
-
+
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/agg/TestAgg.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/agg/TestAgg.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/agg/TestAgg.java
index 66219e8..938a479 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/agg/TestAgg.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/agg/TestAgg.java
@@ -52,14 +52,14 @@ import com.codahale.metrics.MetricRegistry;
public class TestAgg {
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestAgg.class);
DrillConfig c = DrillConfig.create();
-
+
private SimpleRootExec doTest(final DrillbitContext bitContext, UserClientConnection connection, String file) throws Exception{
new NonStrictExpectations(){{
bitContext.getMetrics(); result = new MetricRegistry();
bitContext.getAllocator(); result = new TopLevelAllocator();
bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(c);
}};
-
+
PhysicalPlanReader reader = new PhysicalPlanReader(c, c.getMapper(), CoordinationProtos.DrillbitEndpoint.getDefaultInstance());
PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile(file), Charsets.UTF_8));
FunctionImplementationRegistry registry = new FunctionImplementationRegistry(c);
@@ -67,44 +67,44 @@ public class TestAgg {
SimpleRootExec exec = new SimpleRootExec(ImplCreator.getExec(context, (FragmentRoot) plan.getSortedOperators(false).iterator().next()));
return exec;
}
-
+
@Test
public void oneKeyAgg(@Injectable final DrillbitContext bitContext, @Injectable UserClientConnection connection) throws Throwable{
SimpleRootExec exec = doTest(bitContext, connection, "/agg/test1.json");
-
+
while(exec.next()){
- BigIntVector cnt = exec.getValueVectorById(new SchemaPath("cnt", ExpressionPosition.UNKNOWN), BigIntVector.class);
- IntVector key = exec.getValueVectorById(new SchemaPath("blue", ExpressionPosition.UNKNOWN), IntVector.class);
+ BigIntVector cnt = exec.getValueVectorById(SchemaPath.getSimplePath("cnt"), BigIntVector.class);
+ IntVector key = exec.getValueVectorById(SchemaPath.getSimplePath("blue"), IntVector.class);
long[] cntArr = {10001, 9999};
int[] keyArr = {Integer.MIN_VALUE, Integer.MAX_VALUE};
-
+
for(int i =0; i < exec.getRecordCount(); i++){
assertEquals(cntArr[i], cnt.getAccessor().getObject(i));
assertEquals(keyArr[i], key.getAccessor().getObject(i));
}
}
-
+
if(exec.getContext().getFailureCause() != null){
throw exec.getContext().getFailureCause();
}
assertTrue(!exec.getContext().isFailed());
}
-
+
@Test
public void twoKeyAgg(@Injectable final DrillbitContext bitContext, @Injectable UserClientConnection connection) throws Throwable{
SimpleRootExec exec = doTest(bitContext, connection, "/agg/twokey.json");
-
+
while(exec.next()){
- IntVector key1 = exec.getValueVectorById(new SchemaPath("key1", ExpressionPosition.UNKNOWN), IntVector.class);
- BigIntVector key2 = exec.getValueVectorById(new SchemaPath("key2", ExpressionPosition.UNKNOWN), BigIntVector.class);
- BigIntVector cnt = exec.getValueVectorById(new SchemaPath("cnt", ExpressionPosition.UNKNOWN), BigIntVector.class);
- BigIntVector total = exec.getValueVectorById(new SchemaPath("total", ExpressionPosition.UNKNOWN), BigIntVector.class);
+ IntVector key1 = exec.getValueVectorById(SchemaPath.getSimplePath("key1"), IntVector.class);
+ BigIntVector key2 = exec.getValueVectorById(SchemaPath.getSimplePath("key2"), BigIntVector.class);
+ BigIntVector cnt = exec.getValueVectorById(SchemaPath.getSimplePath("cnt"), BigIntVector.class);
+ BigIntVector total = exec.getValueVectorById(SchemaPath.getSimplePath("total"), BigIntVector.class);
int[] keyArr1 = {Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE};
long[] keyArr2 = {0,1,2,0,1,2};
long[] cntArr = {34,34,34,34,34,34};
long[] totalArr = {0,34,68,0,34,68};
-
+
for(int i =0; i < exec.getRecordCount(); i++){
// System.out.print(key1.getAccessor().getObject(i));
// System.out.print("\t");
@@ -120,14 +120,14 @@ public class TestAgg {
assertEquals(totalArr[i], total.getAccessor().getObject(i));
}
}
-
+
if(exec.getContext().getFailureCause() != null){
throw exec.getContext().getFailureCause();
}
assertTrue(!exec.getContext().isFailed());
}
-
+
@AfterClass
public static void tearDown() throws Exception{
// pause to get logger to catch up.
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestMergeJoin.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestMergeJoin.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestMergeJoin.java
index 1623b86..f5c9884 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestMergeJoin.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestMergeJoin.java
@@ -87,7 +87,7 @@ public class TestMergeJoin extends PopUnitTestBase {
while (exec.next()) {
totalRecordCount += exec.getRecordCount();
for (ValueVector v : exec)
- System.out.print("[" + v.getField().getName() + "] ");
+ System.out.print("[" + v.getField().toExpr() + "] ");
System.out.println("\n");
for (int valueIdx = 0; valueIdx < exec.getRecordCount(); valueIdx++) {
List<Object> row = new ArrayList();
@@ -95,7 +95,7 @@ public class TestMergeJoin extends PopUnitTestBase {
row.add(v.getAccessor().getObject(valueIdx));
}
for (Object cell : row) {
- if (cell == null) {
+ if (cell == null) {
System.out.print("<null> ");
continue;
}
@@ -142,11 +142,11 @@ public class TestMergeJoin extends PopUnitTestBase {
totalRecordCount += exec.getRecordCount();
System.out.println("got next with record count: " + exec.getRecordCount() + " (total: " + totalRecordCount + "):");
System.out.println(" t1 t2");
-
+
for (int valueIdx = 0; valueIdx < exec.getRecordCount(); valueIdx++) {
List<Object> row = Lists.newArrayList();
for (ValueVector v : exec)
- row.add(v.getField().getName() + ":" + v.getAccessor().getObject(valueIdx));
+ row.add(v.getField().toExpr() + ":" + v.getAccessor().getObject(valueIdx));
for (Object cell : row) {
if (cell == null) {
System.out.print("<null> ");
@@ -199,7 +199,7 @@ public class TestMergeJoin extends PopUnitTestBase {
for (int valueIdx = 0; valueIdx < exec.getRecordCount(); valueIdx++) {
List<Object> row = Lists.newArrayList();
for (ValueVector v : exec)
- row.add(v.getField().getName() + ":" + v.getAccessor().getObject(valueIdx));
+ row.add(v.getField().toExpr() + ":" + v.getAccessor().getObject(valueIdx));
for (Object cell : row) {
if (cell == null) {
System.out.print("<null> ");
@@ -251,7 +251,7 @@ public class TestMergeJoin extends PopUnitTestBase {
for (int valueIdx = 0; valueIdx < exec.getRecordCount(); valueIdx++) {
List<Object> row = Lists.newArrayList();
for (ValueVector v : exec)
- row.add(v.getField().getName() + ":" + v.getAccessor().getObject(valueIdx));
+ row.add(v.getField().toExpr() + ":" + v.getAccessor().getObject(valueIdx));
for (Object cell : row) {
if (cell == null) {
System.out.print("<null> ");
@@ -282,7 +282,7 @@ public class TestMergeJoin extends PopUnitTestBase {
bitContext.getConfig(); result = c;
bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(c);
}};
-
+
PhysicalPlanReader reader = new PhysicalPlanReader(c, c.getMapper(), CoordinationProtos.DrillbitEndpoint.getDefaultInstance());
PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/join/join_batchsize.json"), Charsets.UTF_8));
FunctionImplementationRegistry registry = new FunctionImplementationRegistry(c);
@@ -291,7 +291,7 @@ public class TestMergeJoin extends PopUnitTestBase {
while(exec.next()){
assertEquals(100, exec.getRecordCount());
}
-
+
if(context.getFailureCause() != null){
throw context.getFailureCause();
}
@@ -325,7 +325,7 @@ public class TestMergeJoin extends PopUnitTestBase {
public void testMergeJoinLeftEmptyBatch() throws Exception {
RemoteServiceSet serviceSet = RemoteServiceSet.getLocalServiceSet();
- try(Drillbit bit1 = new Drillbit(CONFIG, serviceSet);
+ try(Drillbit bit1 = new Drillbit(CONFIG, serviceSet);
DrillClient client = new DrillClient(CONFIG, serviceSet.getCoordinator());) {
bit1.run();
@@ -371,7 +371,7 @@ public class TestMergeJoin extends PopUnitTestBase {
Thread.sleep(1000);
}
-
+
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestMergeJoinMulCondition.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestMergeJoinMulCondition.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestMergeJoinMulCondition.java
index 24dbe71..ebab889 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestMergeJoinMulCondition.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestMergeJoinMulCondition.java
@@ -38,7 +38,7 @@ import com.google.common.io.Files;
public class TestMergeJoinMulCondition extends PopUnitTestBase {
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestMergeJoinMulCondition.class);
-
+
@Rule public final TestRule TIMEOUT = TestTools.getTimeoutRule(200000);
@Test
@@ -47,7 +47,7 @@ public class TestMergeJoinMulCondition extends PopUnitTestBase {
// + " from cp.`tpch/lineitem.parquet` l join "
// + " cp.`tpch/partsupp.parquet` ps"
// + " on l.l_partkey = ps.ps_partkey and "
- // + " l.l_suppkey = ps.ps_suppkey";
+ // + " l.l_suppkey = ps.ps_suppkey";
public void testMergeJoinMultiKeys() throws Exception {
RemoteServiceSet serviceSet = RemoteServiceSet.getLocalServiceSet();
@@ -61,11 +61,13 @@ public class TestMergeJoinMulCondition extends PopUnitTestBase {
Charsets.UTF_8));
int count = 0;
for(QueryResultBatch b : results) {
- if (b.getHeader().getRowCount() != 0)
+ if (b.getHeader().getRowCount() != 0){
count += b.getHeader().getRowCount();
+ }
+ b.release();
}
assertEquals(60175, count);
}
}
-
+
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/mergereceiver/TestMergingReceiver.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/mergereceiver/TestMergingReceiver.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/mergereceiver/TestMergingReceiver.java
index d1061de..b05c778 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/mergereceiver/TestMergingReceiver.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/mergereceiver/TestMergingReceiver.java
@@ -66,7 +66,7 @@ public class TestMergingReceiver extends PopUnitTestBase {
List<Object> row = Lists.newArrayList();
batchLoader.load(b.getHeader().getDef(), b.getData());
for (VectorWrapper<?> vw : batchLoader)
- row.add(vw.getValueVector().getField().getName() + ":" + vw.getValueVector().getAccessor().getObject(valueIdx));
+ row.add(vw.getValueVector().getField().toExpr() + ":" + vw.getValueVector().getAccessor().getObject(valueIdx));
for (Object cell : row) {
if (cell == null) {
System.out.print("<null> ");
@@ -79,6 +79,8 @@ public class TestMergingReceiver extends PopUnitTestBase {
}
System.out.println();
}
+ b.release();
+ batchLoader.clear();
}
assertEquals(200, count);
}
@@ -108,8 +110,8 @@ public class TestMergingReceiver extends PopUnitTestBase {
List<Object> row = Lists.newArrayList();
batchLoader.load(b.getHeader().getDef(), b.getData());
for (VectorWrapper vw : batchLoader) {
- row.add(vw.getValueVector().getField().getName() + ":" + vw.getValueVector().getAccessor().getObject(valueIdx));
- if (vw.getValueVector().getField().getName().equals("blue")) {
+ row.add(vw.getValueVector().getField().toExpr() + ":" + vw.getValueVector().getAccessor().getObject(valueIdx));
+ if (vw.getValueVector().getField().getAsSchemaPath().getRootSegment().getPath().equals("blue")) {
// assert order is ascending
if (((Long)vw.getValueVector().getAccessor().getObject(valueIdx)).longValue() == 0) continue; // ignore initial 0's from sort
if (lastBlueValue != null)
@@ -125,6 +127,8 @@ public class TestMergingReceiver extends PopUnitTestBase {
}
System.out.println();
}
+ b.release();
+ batchLoader.clear();
}
assertEquals(400, count);
}
@@ -153,7 +157,7 @@ public class TestMergingReceiver extends PopUnitTestBase {
List<Object> row = Lists.newArrayList();
batchLoader.load(b.getHeader().getDef(), b.getData());
for (VectorWrapper vw : batchLoader)
- row.add(vw.getValueVector().getField().getName() + ":" + vw.getValueVector().getAccessor().getObject(valueIdx));
+ row.add(vw.getValueVector().getField().toExpr() + ":" + vw.getValueVector().getAccessor().getObject(valueIdx));
for (Object cell : row) {
if (cell == null) {
System.out.print("<null> ");
@@ -166,6 +170,8 @@ public class TestMergingReceiver extends PopUnitTestBase {
}
System.out.println();
}
+ b.release();
+ batchLoader.clear();
}
assertEquals(100, count);
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/orderedpartitioner/TestOrderedPartitionExchange.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/orderedpartitioner/TestOrderedPartitionExchange.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/orderedpartitioner/TestOrderedPartitionExchange.java
index 1746d56..699f075 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/orderedpartitioner/TestOrderedPartitionExchange.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/orderedpartitioner/TestOrderedPartitionExchange.java
@@ -113,7 +113,10 @@ public class TestOrderedPartitionExchange extends PopUnitTestBase {
}
}
partitionRecordCounts.add(partitionRecordCount);
+ loader.clear();
}
+
+ b.release();
}
double[] values = new double[partitionRecordCounts.size()];
int i = 0;
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/xsort/TestSimpleExternalSort.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/xsort/TestSimpleExternalSort.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/xsort/TestSimpleExternalSort.java
index 8b3d36e..b17f7e7 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/xsort/TestSimpleExternalSort.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/xsort/TestSimpleExternalSort.java
@@ -41,8 +41,8 @@ import static org.junit.Assert.assertTrue;
public class TestSimpleExternalSort extends PopUnitTestBase {
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestSimpleExternalSort.class);
DrillConfig c = DrillConfig.create();
-
-
+
+
@Test
public void sortOneKeyDescendingMergeSort() throws Throwable{
RemoteServiceSet serviceSet = RemoteServiceSet.getLocalServiceSet();
@@ -85,6 +85,8 @@ public class TestSimpleExternalSort extends PopUnitTestBase {
assertTrue(String.format("%d > %d", previousBigInt, a1.get(i)), previousBigInt >= a1.get(i));
previousBigInt = a1.get(i);
}
+ loader.clear();
+ b.release();
}
System.out.println(String.format("Sorted %,d records in %d batches.", recordCount, batchCount));
@@ -136,6 +138,8 @@ public class TestSimpleExternalSort extends PopUnitTestBase {
assertTrue(String.format("%d < %d", previousBigInt, a1.get(i)), previousBigInt >= a1.get(i));
previousBigInt = a1.get(i);
}
+ loader.clear();
+ b.release();
}
System.out.println(String.format("Sorted %,d records in %d batches.", recordCount, batchCount));
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/record/vector/TestDateTypes.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/record/vector/TestDateTypes.java b/exec/java-exec/src/test/java/org/apache/drill/exec/record/vector/TestDateTypes.java
index 5595b72..544a4d2 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/record/vector/TestDateTypes.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/record/vector/TestDateTypes.java
@@ -99,6 +99,11 @@ public class TestDateTypes extends PopUnitTestBase {
assertTrue((accessor.getObject(1)).equals("2008-12-28"));
assertTrue((accessor.getObject(2)).equals("2000-02-27"));
}
+
+ batchLoader.clear();
+ for(QueryResultBatch b : results){
+ b.release();
+ }
}
}
@@ -130,6 +135,11 @@ public class TestDateTypes extends PopUnitTestBase {
assertEquals((accessor.getObject(1)), new String("2000-02-27"));
assertEquals((accessor.getObject(2)), new String("2008-12-28"));
}
+
+ batchLoader.clear();
+ for(QueryResultBatch b : results){
+ b.release();
+ }
}
}
@@ -161,6 +171,11 @@ public class TestDateTypes extends PopUnitTestBase {
assertTrue((accessor.getObject(1)).equals("2008-12-28 11:34:00.129"));
assertTrue((accessor.getObject(2)).equals("2000-02-27 14:24:00.000"));
}
+
+ batchLoader.clear();
+ for(QueryResultBatch b : results){
+ b.release();
+ }
}
}
@@ -213,6 +228,11 @@ public class TestDateTypes extends PopUnitTestBase {
assertTrue((accessor.getObject(3)).equals("1 day 1:20:35.897"));
assertTrue((accessor.getObject(4)).equals("0 days 0:0:35.4"));
assertTrue((accessor.getObject(5)).equals("1 day 0:-39:-25.0"));
+
+ batchLoader.clear();
+ for(QueryResultBatch b : results){
+ b.release();
+ }
}
}
@@ -250,6 +270,11 @@ public class TestDateTypes extends PopUnitTestBase {
assertTrue((accessor.getObject(0)).equals(result[idx++]));
}
+
+ batchLoader.clear();
+ for(QueryResultBatch b : results){
+ b.release();
+ }
}
}
@@ -280,6 +305,11 @@ public class TestDateTypes extends PopUnitTestBase {
assertTrue((accessor.getObject(0)).equals("2008-03-27"));
}
+
+ batchLoader.clear();
+ for(QueryResultBatch b : results){
+ b.release();
+ }
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/record/vector/TestLoad.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/record/vector/TestLoad.java b/exec/java-exec/src/test/java/org/apache/drill/exec/record/vector/TestLoad.java
index bc7fa90..6251c7f 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/record/vector/TestLoad.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/record/vector/TestLoad.java
@@ -73,7 +73,7 @@ public class TestLoad {
index += byteBufs[i].writerIndex();
}
byteBuf.writerIndex(bytes);
-
+
batchLoader.load(writableBatch.getDef(), byteBuf);
boolean firstColumn = true;
int recordCount = 0;
@@ -83,7 +83,7 @@ public class TestLoad {
} else {
System.out.print("\t");
}
- System.out.print(v.getField().getName());
+ System.out.print(v.getField().toExpr());
System.out.print("[");
System.out.print(v.getField().getType().getMinorType());
System.out.print("]");
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/store/TestOrphanSchema.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/TestOrphanSchema.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/TestOrphanSchema.java
index 429d5fe..ffe05a4 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/TestOrphanSchema.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/TestOrphanSchema.java
@@ -19,6 +19,7 @@ package org.apache.drill.exec.store;
import mockit.NonStrictExpectations;
import net.hydromatic.optiq.SchemaPlus;
+import net.hydromatic.optiq.tools.Frameworks;
import org.apache.drill.common.config.DrillConfig;
import org.apache.drill.exec.memory.TopLevelAllocator;
@@ -29,12 +30,12 @@ import com.codahale.metrics.MetricRegistry;
public class TestOrphanSchema {
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestOrphanSchema.class);
-
-
+
+
@Test
public void test(final DrillbitContext bitContext){
final DrillConfig c = DrillConfig.create();
-
+
new NonStrictExpectations() {
{
bitContext.getMetrics();
@@ -45,14 +46,15 @@ public class TestOrphanSchema {
result = c;
}
};
-
+
StoragePluginRegistry r = new StoragePluginRegistry(bitContext);
- SchemaPlus plus = r.getSchemaFactory().getOrphanedRootSchema();
-
+ SchemaPlus plus = Frameworks.createRootSchema();
+ r.getSchemaFactory().registerSchemas(null, plus);
+
printSchema(plus, 0);
-
+
}
-
+
private static void t(final int t){
for(int i =0; i < t; i++) System.out.print('\t');
}
@@ -65,11 +67,11 @@ public class TestOrphanSchema {
System.out.print("Table: ");
System.out.println(table);
}
-
+
for(String schema : s.getSubSchemaNames()){
SchemaPlus p = s.getSubSchema(schema);
printSchema(p, indent + 1);
}
-
+
}
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/store/TestOutputMutator.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/TestOutputMutator.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/TestOutputMutator.java
index 51a0b0b..37369da 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/TestOutputMutator.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/TestOutputMutator.java
@@ -21,6 +21,8 @@ import java.util.Iterator;
import java.util.Map;
import org.apache.drill.exec.exception.SchemaChangeException;
+import org.apache.drill.exec.expr.TypeHelper;
+import org.apache.drill.exec.memory.BufferAllocator;
import org.apache.drill.exec.physical.impl.OutputMutator;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
import org.apache.drill.exec.record.MaterializedField;
@@ -35,6 +37,11 @@ public class TestOutputMutator implements OutputMutator, Iterable<VectorWrapper<
private final VectorContainer container = new VectorContainer();
private final Map<MaterializedField, ValueVector> fieldVectorMap = Maps.newHashMap();
+ private final BufferAllocator allocator;
+
+ public TestOutputMutator(BufferAllocator allocator){
+ this.allocator = allocator;
+ }
public void removeField(MaterializedField field) throws SchemaChangeException {
ValueVector vector = fieldVectorMap.remove(field);
@@ -71,4 +78,12 @@ public class TestOutputMutator implements OutputMutator, Iterable<VectorWrapper<
removeAllFields();
}
+ @Override
+ public <T extends ValueVector> T addField(MaterializedField field, Class<T> clazz) throws SchemaChangeException {
+ ValueVector v = TypeHelper.getNewVector(field, allocator);
+ if(!clazz.isAssignableFrom(v.getClass())) throw new SchemaChangeException(String.format("The class that was provided %s does not correspond to the expected vector type of %s.", clazz.getSimpleName(), v.getClass().getSimpleName()));
+ addField(v);
+ return (T) v;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/OrphanSchema.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/OrphanSchema.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/OrphanSchema.java
index ee36493..22e4a14 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/OrphanSchema.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/OrphanSchema.java
@@ -20,6 +20,7 @@ package org.apache.drill.exec.store.ischema;
import static org.mockito.Mockito.*;
import net.hydromatic.optiq.SchemaPlus;
+import net.hydromatic.optiq.tools.Frameworks;
import org.apache.drill.common.config.DrillConfig;
import org.apache.drill.exec.memory.TopLevelAllocator;
@@ -27,49 +28,43 @@ import org.apache.drill.exec.server.DrillbitContext;
import org.apache.drill.exec.store.StoragePluginRegistry;
import org.junit.Test;
-
import com.codahale.metrics.MetricRegistry;
-/**
- * OrphanSchema is a stand alone schema tree which is not connected to Optiq.
- * This class is a refactoring of exec.store.TestOrphanSchema.java. The primary
- * change is to package a "create()" method for providing a test schema.
- * For convenient testing, it mocks up the Drillbit context.
- */
+
public class OrphanSchema {
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(OrphanSchema.class);
-
+
/**
* Create an orphan schema to be used for testing.
* @return root node of the created schema.
*/
public static SchemaPlus create(){
-
+
final DrillConfig c = DrillConfig.create();
-
+
// Mock up a context which will allow us to create a schema.
final DrillbitContext bitContext = mock(DrillbitContext.class);
when(bitContext.getMetrics()).thenReturn(new MetricRegistry());
when(bitContext.getAllocator()).thenReturn(new TopLevelAllocator());
when(bitContext.getConfig()).thenReturn(c);
-
+
// Using the mock context, get the orphan schema.
StoragePluginRegistry r = new StoragePluginRegistry(bitContext);
- SchemaPlus plus = r.getSchemaFactory().getOrphanedRootSchema();
-
+ SchemaPlus plus = Frameworks.createRootSchema();
+ r.getSchemaFactory().registerSchemas(null, plus);
return plus;
}
-
-
+
+
/**
* This test replicates the one in org.apache.drill.exec.server,
* but it is refactored to provide a standalone "create()" method.
*/
-
+
@Test
public void test() {
printSchema(create(), 0);
}
-
+
private static void t(final int t){
for(int i =0; i < t; i++) System.out.print('\t');
}
@@ -82,11 +77,11 @@ public class OrphanSchema {
System.out.print("Table: ");
System.out.println(table);
}
-
+
for(String schema : s.getSubSchemaNames()){
SchemaPlus p = s.getSubSchema(schema);
printSchema(p, indent + 1);
}
-
+
}
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/TestOrphanSchema.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/TestOrphanSchema.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/TestOrphanSchema.java
index c29c05f..e76c609 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/TestOrphanSchema.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/TestOrphanSchema.java
@@ -52,48 +52,48 @@ public class TestOrphanSchema {
public void testTables() {
displayTable(new InfoSchemaTable.Tables(), new OptiqProvider.Tables(root));
}
-
+
@Test
public void testSchemata() {
displayTable(new InfoSchemaTable.Schemata(), new OptiqProvider.Schemata(root));
}
-
-
+
+
@Test
public void testViews() {
displayTable(new InfoSchemaTable.Views(), new OptiqProvider.Views(root));
}
-
+
@Test
public void testCatalogs() {
displayTable(new InfoSchemaTable.Catalogs(), new OptiqProvider.Catalogs(root));
}
-
+
@Test
public void testColumns() {
displayTable(new InfoSchemaTable.Columns(), new OptiqProvider.Columns(root));
}
-
-
+
+
private void displayTable(FixedTable table, RowProvider provider) {
// Set up a mock context
FragmentContext context = mock(FragmentContext.class);
when(context.getAllocator()).thenReturn(new TopLevelAllocator());
-
+
// Create a RecordReader which reads from the test table.
RecordReader reader = new RowRecordReader(context, table, provider);
-
+
// Create an dummy output mutator for the RecordReader.
TestOutput output = new TestOutput();
try {reader.setup(output);}
catch (ExecutionSetupException e) {Assert.fail("reader threw an exception");}
-
+
// print out headers
System.out.printf("\n%20s\n", table.getName());
System.out.printf("%10s", "RowNumber");
for (ValueVector v: table.getValueVectors()) {
- System.out.printf(" | %16s", v.getField().getName());
+ System.out.printf(" | %16s", v.getField().toExpr());
}
System.out.println();
@@ -102,40 +102,45 @@ public class TestOrphanSchema {
for (;;) {
int count = reader.next();
if (count == 0) break;
-
+
// Do for each row in the batch
for (int row=0; row<count; row++, rowNumber++) {
-
+
// Display the row
System.out.printf("%10d", rowNumber);
for (ValueVector v: table.getValueVectors()) {
System.out.printf(" | %16s", v.getAccessor().getObject(row));
}
System.out.println();
-
+
}
}
}
-
- /**
- * A dummy OutputMutator so we can examine the contents of the current batch
+
+ /**
+ * A dummy OutputMutator so we can examine the contents of the current batch
*/
static class TestOutput implements OutputMutator {
List<ValueVector> vectors = new ArrayList<ValueVector>();
public void addField(ValueVector vector) throws SchemaChangeException {
- vectors.add(vector);
+ vectors.add(vector);
}
-
+
public Object get(int column, int row) {
return vectors.get(column).getAccessor().getObject(row);
}
-
+
public void removeField(MaterializedField field) {}
public void removeAllFields() {}
public void setNewSchema() {}
+
+ @Override
+ public <T extends ValueVector> T addField(MaterializedField field, Class<T> clazz) throws SchemaChangeException {
+ return null;
+ }
}
-
-
+
+
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/TestTableProvider.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/TestTableProvider.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/TestTableProvider.java
index 475d2ac..0cc0b71 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/TestTableProvider.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/ischema/TestTableProvider.java
@@ -40,42 +40,42 @@ import org.junit.Test;
* Using a test table with two columns, create data and verify the values are in the record batch.
*/
public class TestTableProvider {
-
+
@Test
public void zeroRead() {
readTestTable(0);
}
-
+
@Test
public void oneRead() {
readTestTable(1);
}
-
+
@Test
public void smallRead() {
readTestTable(10);
}
-
+
@Test
@Ignore // due to out of heap space
public void largeRead() {
readTestTable(1024*1024);
}
-
-
+
+
/**
* Read record batches from the test table and verify the contents.
* @param nrRows - the total number of rows expected.
*/
private void readTestTable(int nrRows) {
-
+
// Mock up a context with a BufferAllocator
FragmentContext context = mock(FragmentContext.class);
when(context.getAllocator()).thenReturn(new TopLevelAllocator());
-
+
// Create a RecordReader which reads from the test table.
RecordReader reader = new RowRecordReader(context, new TestTable(), new TestProvider(nrRows));
-
+
// Create an dummy output mutator for the RecordReader.
TestOutput output = new TestOutput();
try {reader.setup(output);}
@@ -86,10 +86,10 @@ public class TestTableProvider {
for (;;) {
int count = reader.next();
if (count == 0) break;
-
+
// Do for each row in the batch
for (int row=0; row<count; row++, rowNumber++) {
-
+
// Verify the row has an integer and string containing the row number
int intValue = (int)output.get(1, row);
String strValue = (String)output.get(0, row);
@@ -97,12 +97,12 @@ public class TestTableProvider {
Assert.assertEquals(rowNumber, Integer.parseInt(strValue));
}
}
-
+
// Verify we read the correct number of rows.
Assert.assertEquals(nrRows, rowNumber);
}
-
+
/**
* Class to define the table we want to create. Two columns - string, integer
*/
@@ -114,8 +114,8 @@ public class TestTableProvider {
super(tableName, fieldNames, fieldTypes);
}
}
-
-
+
+
/**
* Class to generate data for the table
*/
@@ -130,28 +130,33 @@ public class TestTableProvider {
}
}
}
-
-
-
-
- /**
- * A dummy OutputMutator so we can examine the contents of the current batch
+
+
+
+
+ /**
+ * A dummy OutputMutator so we can examine the contents of the current batch
*/
static class TestOutput implements OutputMutator {
List<ValueVector> vectors = new ArrayList<ValueVector>();
public void addField(ValueVector vector) throws SchemaChangeException {
- vectors.add(vector);
+ vectors.add(vector);
}
-
+
public Object get(int column, int row) {
return vectors.get(column).getAccessor().getObject(row);
}
-
+
public void removeField(MaterializedField field) {}
public void removeAllFields() {}
public void setNewSchema() {}
+
+ @Override
+ public <T extends ValueVector> T addField(MaterializedField field, Class<T> clazz) throws SchemaChangeException {
+ return null;
+ }
}
-
-
+
+
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/store/json/JSONRecordReaderTest.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/json/JSONRecordReaderTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/json/JSONRecordReaderTest.java
index 9020c1a..9f54349 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/json/JSONRecordReaderTest.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/json/JSONRecordReaderTest.java
@@ -92,6 +92,11 @@ public class JSONRecordReaderTest {
List<ValueVector> getAddFields() {
return addFields;
}
+
+ @Override
+ public <T extends ValueVector> T addField(MaterializedField field, Class<T> clazz) throws SchemaChangeException {
+ return null;
+ }
}
private <T> void assertField(ValueVector valueVector, int index, MinorType expectedMinorType, T value, String name) {
@@ -268,7 +273,7 @@ public class JSONRecordReaderTest {
assertField(addFields.get(4), 0, MinorType.VARCHAR, "test2", "str1");
assertField(addFields.get(5), 0, MinorType.BIGINT, 4L, "d");
assertEquals(1, removedFields.size());
- assertEquals("c", removedFields.get(0).getName());
+ assertEquals("c", removedFields.get(0).getAsSchemaPath().getRootSegment().getPath());
removedFields.clear();
assertEquals(1, jr.next());
assertEquals(7, addFields.size()); // The reappearing of field 'c' is also included
@@ -281,19 +286,20 @@ public class JSONRecordReaderTest {
Iterables.find(removedFields, new Predicate<MaterializedField>() {
@Override
public boolean apply(MaterializedField materializedField) {
- return materializedField.getName().equals("str1");
+ return materializedField.getAsSchemaPath().getRootSegment().getPath().equals("str1");
}
});
Iterables.find(removedFields, new Predicate<MaterializedField>() {
@Override
public boolean apply(MaterializedField materializedField) {
- return materializedField.getName().equals("b");
+ return materializedField.getAsSchemaPath().getRootSegment().getPath().equals("b");
}
});
assertEquals(0, jr.next());
}
@Test
+ @Ignore // until repeated map
public void testNestedFieldInSameBatch(@Injectable final FragmentContext context) throws ExecutionSetupException, IOException {
new Expectations() {
{
@@ -323,6 +329,7 @@ public class JSONRecordReaderTest {
}
@Test
+ @Ignore // until repeated map is added.
public void testRepeatedFields(@Injectable final FragmentContext context) throws ExecutionSetupException, IOException {
new Expectations() {
{
@@ -387,7 +394,7 @@ public class JSONRecordReaderTest {
assertEquals(0, jr.next());
assertTrue(mutator.getRemovedFields().isEmpty());
}
-
+
@Test
public void testJsonArrayandNormalFields(@Injectable final FragmentContext context) throws ExecutionSetupException, IOException {
new Expectations() {
@@ -406,7 +413,7 @@ public class JSONRecordReaderTest {
jr.setup(mutator);
assertEquals(2, jr.next());
assertEquals(3, addFields.size());
-
+
assertField(addFields.get(0), 0, MinorType.VARCHAR, "ABC", "test");
assertField(addFields.get(2), 0, MinorType.VARCHAR, "drill", "a");
assertField(addFields.get(0), 1, MinorType.VARCHAR, "abc", "test");
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/ParquetRecordReaderTest.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/ParquetRecordReaderTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/ParquetRecordReaderTest.java
index f6a7d97..9ba94fa 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/ParquetRecordReaderTest.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/ParquetRecordReaderTest.java
@@ -30,19 +30,23 @@ import java.util.Map;
import java.util.concurrent.TimeUnit;
import mockit.Injectable;
+
+import org.apache.drill.BaseTestQuery;
import org.apache.drill.common.config.DrillConfig;
import org.apache.drill.common.expression.ExpressionPosition;
-import org.apache.drill.common.expression.FieldReference;
import org.apache.drill.common.expression.SchemaPath;
import org.apache.drill.common.types.TypeProtos;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.exec.client.DrillClient;
import org.apache.drill.exec.exception.SchemaChangeException;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
+import org.apache.drill.exec.memory.BufferAllocator;
+import org.apache.drill.exec.memory.TopLevelAllocator;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.impl.OutputMutator;
import org.apache.drill.exec.proto.BitControl;
import org.apache.drill.exec.proto.UserProtos;
+import org.apache.drill.exec.proto.UserProtos.QueryType;
import org.apache.drill.exec.record.MaterializedField;
import org.apache.drill.exec.record.RecordBatchLoader;
import org.apache.drill.exec.rpc.user.UserServer;
@@ -74,7 +78,7 @@ import com.google.common.base.Stopwatch;
import com.google.common.collect.Lists;
import com.google.common.io.Files;
-public class ParquetRecordReaderTest {
+public class ParquetRecordReaderTest extends BaseTestQuery{
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(ParquetRecordReaderTest.class);
static boolean VERBOSE_DEBUG = false;
@@ -127,58 +131,36 @@ public class ParquetRecordReaderTest {
testParquetFullEngineRemote(planName, fileName, 1, numberRowGroups, recordsPerRowGroup);
}
-
+
public void testParquetFullEngineLocalPath(String planFileName, String filename, int numberOfTimesRead /* specified in json plan */, int numberOfRowGroups, int recordsPerRowGroup) throws Exception{
testParquetFullEngineLocalText(Files.toString(FileUtils.getResourceAsFile(planFileName), Charsets.UTF_8), filename, numberOfTimesRead, numberOfRowGroups, recordsPerRowGroup);
}
-
+
//specific tests should call this method, but it is not marked as a test itself intentionally
public void testParquetFullEngineLocalText(String planText, String filename, int numberOfTimesRead /* specified in json plan */, int numberOfRowGroups, int recordsPerRowGroup) throws Exception{
-
- RemoteServiceSet serviceSet = RemoteServiceSet.getLocalServiceSet();
-
- DrillConfig config = DrillConfig.create();
-
- try(Drillbit bit1 = new Drillbit(config, serviceSet); DrillClient client = new DrillClient(config, serviceSet.getCoordinator());){
- bit1.run();
- client.connect();
- RecordBatchLoader batchLoader = new RecordBatchLoader(client.getAllocator());
- HashMap<String, FieldInfo> fields = new HashMap<>();
- ParquetTestProperties props = new ParquetTestProperties(numberRowGroups, recordsPerRowGroup, DEFAULT_BYTES_PER_PAGE, fields);
- TestFileGenerator.populateFieldInfoMap(props);
- ParquetResultListener resultListener = new ParquetResultListener(batchLoader, props, numberOfTimesRead, true);
- Stopwatch watch = new Stopwatch().start();
- client.runQuery(UserProtos.QueryType.LOGICAL, planText, resultListener);
- resultListener.getResults();
- System.out.println(String.format("Took %d ms to run query", watch.elapsed(TimeUnit.MILLISECONDS)));
+ testFull(QueryType.LOGICAL, planText, filename, numberOfTimesRead, numberOfRowGroups, recordsPerRowGroup);
+ }
- }
+ private void testFull(QueryType type, String planText, String filename, int numberOfTimesRead /* specified in json plan */, int numberOfRowGroups, int recordsPerRowGroup) throws Exception{
+
+// RecordBatchLoader batchLoader = new RecordBatchLoader(getAllocator());
+ HashMap<String, FieldInfo> fields = new HashMap<>();
+ ParquetTestProperties props = new ParquetTestProperties(numberRowGroups, recordsPerRowGroup, DEFAULT_BYTES_PER_PAGE, fields);
+ TestFileGenerator.populateFieldInfoMap(props);
+ ParquetResultListener resultListener = new ParquetResultListener(getAllocator(), props, numberOfTimesRead, true);
+ Stopwatch watch = new Stopwatch().start();
+ testWithListener(type, planText, resultListener);
+ resultListener.getResults();
+// batchLoader.clear();
+ System.out.println(String.format("Took %d ms to run query", watch.elapsed(TimeUnit.MILLISECONDS)));
}
//use this method to submit physical plan
public void testParquetFullEngineLocalTextDistributed(String planName, String filename, int numberOfTimesRead /* specified in json plan */, int numberOfRowGroups, int recordsPerRowGroup) throws Exception{
-
- RemoteServiceSet serviceSet = RemoteServiceSet.getLocalServiceSet();
-
- DrillConfig config = DrillConfig.create();
-
- try(Drillbit bit1 = new Drillbit(config, serviceSet); DrillClient client = new DrillClient(config, serviceSet.getCoordinator());){
- bit1.run();
- client.connect();
- RecordBatchLoader batchLoader = new RecordBatchLoader(client.getAllocator());
- HashMap<String, FieldInfo> fields = new HashMap<>();
- ParquetTestProperties props = new ParquetTestProperties(numberRowGroups, recordsPerRowGroup, DEFAULT_BYTES_PER_PAGE, fields);
- TestFileGenerator.populateFieldInfoMap(props);
- ParquetResultListener resultListener = new ParquetResultListener(batchLoader, props, numberOfTimesRead, true);
- Stopwatch watch = new Stopwatch().start();
- client.runQuery(UserProtos.QueryType.PHYSICAL, Files.toString(FileUtils.getResourceAsFile(planName), Charsets.UTF_8), resultListener);
- resultListener.getResults();
- System.out.println(String.format("Took %d ms to run query", watch.elapsed(TimeUnit.MILLISECONDS)));
-
- }
-
+ String planText = Files.toString(FileUtils.getResourceAsFile(planName), Charsets.UTF_8);
+ testFull(QueryType.PHYSICAL, planText, filename, numberOfTimesRead, numberOfRowGroups, recordsPerRowGroup);
}
public String pad(String value, int length) {
@@ -197,20 +179,12 @@ public class ParquetRecordReaderTest {
}
public void testParquetFullEngineRemote(String plan, String filename, int numberOfTimesRead /* specified in json plan */, int numberOfRowGroups, int recordsPerRowGroup) throws Exception{
-
- DrillConfig config = DrillConfig.create();
-
- try(DrillClient client = new DrillClient(config);){
- client.connect();
- RecordBatchLoader batchLoader = new RecordBatchLoader(client.getAllocator());
- HashMap<String, FieldInfo> fields = new HashMap<>();
- ParquetTestProperties props = new ParquetTestProperties(numberRowGroups, recordsPerRowGroup, DEFAULT_BYTES_PER_PAGE, fields);
- TestFileGenerator.populateFieldInfoMap(props);
- ParquetResultListener resultListener = new ParquetResultListener(batchLoader, props, numberOfTimesRead, true);
- client.runQuery(UserProtos.QueryType.PHYSICAL, Files.toString(FileUtils.getResourceAsFile(plan), Charsets.UTF_8), resultListener);
- resultListener.getResults();
- }
-
+ HashMap<String, FieldInfo> fields = new HashMap<>();
+ ParquetTestProperties props = new ParquetTestProperties(numberRowGroups, recordsPerRowGroup, DEFAULT_BYTES_PER_PAGE, fields);
+ TestFileGenerator.populateFieldInfoMap(props);
+ ParquetResultListener resultListener = new ParquetResultListener(getAllocator(), props, numberOfTimesRead, true);
+ testWithListener(UserProtos.QueryType.PHYSICAL, Files.toString(FileUtils.getResourceAsFile(plan), Charsets.UTF_8), resultListener);
+ resultListener.getResults();
}
class MockOutputMutator implements OutputMutator {
@@ -243,6 +217,11 @@ public class ParquetRecordReaderTest {
List<ValueVector> getAddFields() {
return addFields;
}
+
+ @Override
+ public <T extends ValueVector> T addField(MaterializedField field, Class<T> clazz) throws SchemaChangeException {
+ return null;
+ }
}
@@ -427,10 +406,11 @@ public class ParquetRecordReaderTest {
int totalRowCount = 0;
FileSystem fs = new CachedSingleFileSystem(fileName);
+ BufferAllocator allocator = new TopLevelAllocator();
for(int i = 0; i < 25; i++){
ParquetRecordReader rr = new ParquetRecordReader(context, 256000, fileName, 0, fs,
new CodecFactoryExposer(dfsConfig), f.getParquetMetadata(), columns);
- TestOutputMutator mutator = new TestOutputMutator();
+ TestOutputMutator mutator = new TestOutputMutator(allocator);
rr.setup(mutator);
Stopwatch watch = new Stopwatch();
watch.start();
@@ -442,6 +422,8 @@ public class ParquetRecordReaderTest {
System.out.println(String.format("Time completed: %s. ", watch.elapsed(TimeUnit.MILLISECONDS)));
rr.cleanup();
}
+
+ allocator.close();
System.out.println(String.format("Total row count %s", totalRowCount));
}
@@ -462,28 +444,23 @@ public class ParquetRecordReaderTest {
public void testParquetFullEngineEventBased(boolean testValues, boolean generateNew, String plan, String readEntries, String filename,
int numberOfTimesRead /* specified in json plan */, ParquetTestProperties props,
boolean runAsLogicalPlan) throws Exception{
- RemoteServiceSet serviceSet = RemoteServiceSet.getLocalServiceSet();
if (generateNew) TestFileGenerator.generateParquetFile(filename, props);
- DrillConfig config = DrillConfig.create();
- try(Drillbit bit1 = new Drillbit(config, serviceSet); DrillClient client = new DrillClient(config, serviceSet.getCoordinator());){
- bit1.run();
- client.connect();
- RecordBatchLoader batchLoader = new RecordBatchLoader(bit1.getContext().getAllocator());
- ParquetResultListener resultListener = new ParquetResultListener(batchLoader, props, numberOfTimesRead, testValues);
- long C = System.nanoTime();
- String planText = Files.toString(FileUtils.getResourceAsFile(plan), Charsets.UTF_8);
- // substitute in the string for the read entries, allows reuse of the plan file for several tests
- if (readEntries != null) {
- planText = planText.replaceFirst( "&REPLACED_IN_PARQUET_TEST&", readEntries);
- }
- if (runAsLogicalPlan)
- client.runQuery(UserProtos.QueryType.LOGICAL, planText, resultListener);
- else
- client.runQuery(UserProtos.QueryType.PHYSICAL, planText, resultListener);
- resultListener.getResults();
- long D = System.nanoTime();
- System.out.println(String.format("Took %f s to run query", (float)(D-C) / 1E9));
+
+ ParquetResultListener resultListener = new ParquetResultListener(getAllocator(), props, numberOfTimesRead, testValues);
+ long C = System.nanoTime();
+ String planText = Files.toString(FileUtils.getResourceAsFile(plan), Charsets.UTF_8);
+ // substitute in the string for the read entries, allows reuse of the plan file for several tests
+ if (readEntries != null) {
+ planText = planText.replaceFirst( "&REPLACED_IN_PARQUET_TEST&", readEntries);
+ }
+ if (runAsLogicalPlan){
+ this.testWithListener(QueryType.LOGICAL, planText, resultListener);
+ }else{
+ this.testWithListener(QueryType.PHYSICAL, planText, resultListener);
}
+ resultListener.getResults();
+ long D = System.nanoTime();
+ System.out.println(String.format("Took %f s to run query", (float)(D-C) / 1E9));
}
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/ParquetResultListener.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/ParquetResultListener.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/ParquetResultListener.java
index f99721a..73af98c 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/ParquetResultListener.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/ParquetResultListener.java
@@ -24,6 +24,7 @@ import java.util.HashMap;
import org.apache.drill.common.types.TypeProtos;
import org.apache.drill.exec.exception.SchemaChangeException;
+import org.apache.drill.exec.memory.BufferAllocator;
import org.apache.drill.exec.proto.UserBitShared;
import org.apache.drill.exec.record.RecordBatchLoader;
import org.apache.drill.exec.record.VectorWrapper;
@@ -42,15 +43,16 @@ public class ParquetResultListener implements UserResultsListener {
private SettableFuture<Void> future = SettableFuture.create();
int count = 0;
int totalRecords;
- RecordBatchLoader batchLoader;
+
boolean testValues;
+ BufferAllocator allocator;
int batchCounter = 1;
- HashMap<String, Integer> valuesChecked = new HashMap();
+ HashMap<String, Integer> valuesChecked = new HashMap<>();
ParquetTestProperties props;
- ParquetResultListener(RecordBatchLoader batchLoader, ParquetTestProperties props, int numberOfTimesRead, boolean testValues){
- this.batchLoader = batchLoader;
+ ParquetResultListener(BufferAllocator allocator, ParquetTestProperties props, int numberOfTimesRead, boolean testValues){
+ this.allocator = allocator;
this.props = props;
this.totalRecords = props.recordsPerRowGroup * props.numberRowGroups * numberOfTimesRead;
this.testValues = testValues;
@@ -83,7 +85,7 @@ public class ParquetResultListener implements UserResultsListener {
}
@Override
- public void resultArrived(QueryResultBatch result, ConnectionThrottle throttle) {
+ synchronized public void resultArrived(QueryResultBatch result, ConnectionThrottle throttle) {
logger.debug("result arrived in test batch listener.");
if(result.getHeader().getIsLastChunk()){
future.set(null);
@@ -92,6 +94,7 @@ public class ParquetResultListener implements UserResultsListener {
FieldInfo currentField;
count += result.getHeader().getRowCount();
boolean schemaChanged = false;
+ RecordBatchLoader batchLoader = new RecordBatchLoader(allocator);
try {
schemaChanged = batchLoader.load(result.getHeader().getDef(), result.getData());
} catch (SchemaChangeException e) {
@@ -105,15 +108,15 @@ public class ParquetResultListener implements UserResultsListener {
for (VectorWrapper vw : batchLoader) {
ValueVector vv = vw.getValueVector();
- currentField = props.fields.get(vv.getField().getName());
+ currentField = props.fields.get(vv.getField().getAsSchemaPath().getRootSegment().getPath());
if (ParquetRecordReaderTest.VERBOSE_DEBUG){
System.out.println("\n" + (String) currentField.name);
}
- if ( ! valuesChecked.containsKey(vv.getField().getName())){
- valuesChecked.put(vv.getField().getName(), 0);
+ if ( ! valuesChecked.containsKey(vv.getField().getAsSchemaPath().getRootSegment().getPath())){
+ valuesChecked.put(vv.getField().getAsSchemaPath().getRootSegment().getPath(), 0);
columnValCounter = 0;
} else {
- columnValCounter = valuesChecked.get(vv.getField().getName());
+ columnValCounter = valuesChecked.get(vv.getField().getAsSchemaPath().getRootSegment().getPath());
}
for (int j = 0; j < vv.getAccessor().getValueCount(); j++) {
if (ParquetRecordReaderTest.VERBOSE_DEBUG){
@@ -138,8 +141,8 @@ public class ParquetResultListener implements UserResultsListener {
if (ParquetRecordReaderTest.VERBOSE_DEBUG){
System.out.println("\n" + vv.getAccessor().getValueCount());
}
- valuesChecked.remove(vv.getField().getName());
- valuesChecked.put(vv.getField().getName(), columnValCounter);
+ valuesChecked.remove(vv.getField().getAsSchemaPath().getRootSegment().getPath());
+ valuesChecked.put(vv.getField().getAsSchemaPath().getRootSegment().getPath(), columnValCounter);
}
if (ParquetRecordReaderTest.VERBOSE_DEBUG){
@@ -149,7 +152,7 @@ public class ParquetResultListener implements UserResultsListener {
System.out.println();
for (VectorWrapper vw : batchLoader) {
ValueVector v = vw.getValueVector();
- System.out.print(Strings.padStart(v.getField().getName(), 20, ' ') + " ");
+ System.out.print(Strings.padStart(v.getField().getAsSchemaPath().getRootSegment().getPath(), 20, ' ') + " ");
}
System.out.println();
@@ -185,7 +188,10 @@ public class ParquetResultListener implements UserResultsListener {
}
assert valuesChecked.keySet().size() > 0;
+ result.release();
future.set(null);
+ }else{
+ result.release();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/TestParquetPhysicalPlan.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/TestParquetPhysicalPlan.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/TestParquetPhysicalPlan.java
index 48c0773..4d9b606 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/TestParquetPhysicalPlan.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/TestParquetPhysicalPlan.java
@@ -65,7 +65,7 @@ public class TestParquetPhysicalPlan {
count += b.getHeader().getRowCount();
loader.load(b.getHeader().getDef(), b.getData());
for (VectorWrapper vw : loader) {
- System.out.print(vw.getValueVector().getField().getName() + ": ");
+ System.out.print(vw.getValueVector().getField().toExpr() + ": ");
ValueVector vv = vw.getValueVector();
for (int i = 0; i < vv.getAccessor().getValueCount(); i++) {
Object o = vv.getAccessor().getObject(i);
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/java/org/apache/drill/exec/work/batch/TestSpoolingBuffer.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/work/batch/TestSpoolingBuffer.java b/exec/java-exec/src/test/java/org/apache/drill/exec/work/batch/TestSpoolingBuffer.java
index cf5e128..d8c280a 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/work/batch/TestSpoolingBuffer.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/work/batch/TestSpoolingBuffer.java
@@ -54,6 +54,7 @@ public class TestSpoolingBuffer {
for(QueryResultBatch b : results) {
if (b.getHeader().getRowCount() != 0)
count += b.getHeader().getRowCount();
+ b.release();
}
assertEquals(500024, count);
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/agg/hashagg/q6.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/agg/hashagg/q6.json b/exec/java-exec/src/test/resources/agg/hashagg/q6.json
index 96f62a3..10f4cba 100644
--- a/exec/java-exec/src/test/resources/agg/hashagg/q6.json
+++ b/exec/java-exec/src/test/resources/agg/hashagg/q6.json
@@ -24,10 +24,10 @@
pop : "project",
@id : 2,
exprs : [ {
- ref : "output.$f0",
+ ref : "$f0",
expr : "N_REGIONKEY"
}, {
- ref : "output.$f1",
+ ref : "$f1",
expr : "N_NATIONKEY"
} ],
child : 1
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/agg/hashagg/q7_1.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/agg/hashagg/q7_1.json b/exec/java-exec/src/test/resources/agg/hashagg/q7_1.json
index f224677..256bec6 100644
--- a/exec/java-exec/src/test/resources/agg/hashagg/q7_1.json
+++ b/exec/java-exec/src/test/resources/agg/hashagg/q7_1.json
@@ -24,13 +24,13 @@
pop : "project",
@id : 2,
exprs : [ {
- ref : "output.$f0",
+ ref : "$f0",
expr : "N_REGIONKEY"
}, {
- ref : "output.$f1",
+ ref : "$f1",
expr : "N_NATIONKEY"
}, {
- ref : "output.$f2",
+ ref : "$f2",
expr : "N_NAME"
} ],
child : 1
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/agg/hashagg/q7_2.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/agg/hashagg/q7_2.json b/exec/java-exec/src/test/resources/agg/hashagg/q7_2.json
index c03868d..d444fc8 100644
--- a/exec/java-exec/src/test/resources/agg/hashagg/q7_2.json
+++ b/exec/java-exec/src/test/resources/agg/hashagg/q7_2.json
@@ -24,13 +24,13 @@
pop : "project",
@id : 2,
exprs : [ {
- ref : "output.$f0",
+ ref : "$f0",
expr : "N_REGIONKEY"
}, {
- ref : "output.$f1",
+ ref : "$f1",
expr : "N_NAME"
}, {
- ref : "output.$f2",
+ ref : "$f2",
expr : "N_NATIONKEY"
} ],
child : 1
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/agg/hashagg/q8.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/agg/hashagg/q8.json b/exec/java-exec/src/test/resources/agg/hashagg/q8.json
index e097c22..a457aa9 100644
--- a/exec/java-exec/src/test/resources/agg/hashagg/q8.json
+++ b/exec/java-exec/src/test/resources/agg/hashagg/q8.json
@@ -26,10 +26,10 @@
pop : "project",
@id : 2,
exprs : [ {
- ref : "output.$f0",
+ ref : "$f0",
expr : "O_CUSTKEY"
}, {
- ref : "output.$f1",
+ ref : "$f1",
expr : "O_ORDERKEY"
} ],
child : 1
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/agg/hashagg/q8_1.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/agg/hashagg/q8_1.json b/exec/java-exec/src/test/resources/agg/hashagg/q8_1.json
index 7f2ae12..adc5e75 100644
--- a/exec/java-exec/src/test/resources/agg/hashagg/q8_1.json
+++ b/exec/java-exec/src/test/resources/agg/hashagg/q8_1.json
@@ -24,10 +24,10 @@
pop : "project",
@id : 2,
exprs : [ {
- ref : "output.$f0",
+ ref : "$f0",
expr : "O_CUSTKEY"
}, {
- ref : "output.$f1",
+ ref : "$f1",
expr : "O_ORDERKEY"
} ],
child : 1
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/cast/testCastBigInt.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/cast/testCastBigInt.json b/exec/java-exec/src/test/resources/functions/cast/testCastBigInt.json
index 9033c0a..c0a1565 100644
--- a/exec/java-exec/src/test/resources/functions/cast/testCastBigInt.json
+++ b/exec/java-exec/src/test/resources/functions/cast/testCastBigInt.json
@@ -31,7 +31,7 @@
{ ref: "float8_cast", expr:"cast(float8col as bigint)" },
{ ref: "intcol", expr:"intcol" },
{ ref: "int_cast", expr:"cast(intcol as bigint)" },
- { ref: "varchar_cast", expr:"cast(\"1256\" as bigint)" }
+ { ref: "varchar_cast", expr:"cast('1256' as bigint)" }
]
},
{
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/cast/testCastFloat4.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/cast/testCastFloat4.json b/exec/java-exec/src/test/resources/functions/cast/testCastFloat4.json
index 3b8fa99..f5f6e2c 100644
--- a/exec/java-exec/src/test/resources/functions/cast/testCastFloat4.json
+++ b/exec/java-exec/src/test/resources/functions/cast/testCastFloat4.json
@@ -31,8 +31,8 @@
{ ref: "int_cast", expr:"cast(intcol as float4)" },
{ ref: "bigintcol", expr:"bigintcol" },
{ ref: "bigint_cast", expr:"cast(bigintcol as float4)" },
- { ref: "varchar_cast1", expr:"cast(\"1256\" as float4)" },
- { ref: "varchar_cast2", expr:"cast(\"12.56\" as float4)" }
+ { ref: "varchar_cast1", expr:"cast('1256' as float4)" },
+ { ref: "varchar_cast2", expr:"cast('12.56' as float4)" }
]
},
{
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/cast/testCastFloat8.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/cast/testCastFloat8.json b/exec/java-exec/src/test/resources/functions/cast/testCastFloat8.json
index b1a2a20..c700dd4 100644
--- a/exec/java-exec/src/test/resources/functions/cast/testCastFloat8.json
+++ b/exec/java-exec/src/test/resources/functions/cast/testCastFloat8.json
@@ -31,8 +31,8 @@
{ ref: "int_cast", expr:"cast(intcol as float8)" },
{ ref: "bigintcol", expr:"bigintcol" },
{ ref: "bigint_cast", expr:"cast(bigintcol as float8)" },
- { ref: "varchar_cast1", expr:"cast(\"1256\" as float8)" },
- { ref: "varchar_cast2", expr:"cast(\"12.56\" as float8)" }
+ { ref: "varchar_cast1", expr:"cast('1256' as float8)" },
+ { ref: "varchar_cast2", expr:"cast('12.56' as float8)" }
]
},
{
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/cast/testCastInt.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/cast/testCastInt.json b/exec/java-exec/src/test/resources/functions/cast/testCastInt.json
index a34a223..271e276 100644
--- a/exec/java-exec/src/test/resources/functions/cast/testCastInt.json
+++ b/exec/java-exec/src/test/resources/functions/cast/testCastInt.json
@@ -31,7 +31,7 @@
{ ref: "float8_cast", expr:"cast(float8col as int)" },
{ ref: "bigintcol", expr:"bigintcol" },
{ ref: "bigint_cast", expr:"cast(bigintcol as int)" },
- { ref: "varchar_cast", expr:"cast(\"1256\" as int)" }
+ { ref: "varchar_cast", expr:"cast('1256' as int)" }
]
},
{
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/cast/testCastNested.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/cast/testCastNested.json b/exec/java-exec/src/test/resources/functions/cast/testCastNested.json
index eb51e86..4a2d80a 100644
--- a/exec/java-exec/src/test/resources/functions/cast/testCastNested.json
+++ b/exec/java-exec/src/test/resources/functions/cast/testCastNested.json
@@ -31,7 +31,7 @@
{ ref: "int_float4_add", expr:"cast(intcol as bigint) + cast(float4col as bigint)" },
{ ref: "bigintcol", expr:"bigintcol" },
{ ref: "bigint2varchar2int", expr:"cast(cast(bigintcol as varchar(8)) as int)" },
- { ref: "add_cast", expr:"cast(\"100\" as int) + cast(cast(200 as varchar(8)) as int)"}
+ { ref: "add_cast", expr:"cast('100' as int) + cast(cast(200 as varchar(8)) as int)"}
]
},
{
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/cast/testCastNumException.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/cast/testCastNumException.json b/exec/java-exec/src/test/resources/functions/cast/testCastNumException.json
index 71d6a6e..27103af 100644
--- a/exec/java-exec/src/test/resources/functions/cast/testCastNumException.json
+++ b/exec/java-exec/src/test/resources/functions/cast/testCastNumException.json
@@ -25,7 +25,7 @@
child: 1,
pop:"project",
exprs: [
- { ref: "varchar_cast", expr:"cast(\"abc\" as int)" }
+ { ref: "varchar_cast", expr:"cast('abc' as int)" }
]
},
{
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/cast/testICastConstant.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/cast/testICastConstant.json b/exec/java-exec/src/test/resources/functions/cast/testICastConstant.json
index 22b868c..d85dd6c 100644
--- a/exec/java-exec/src/test/resources/functions/cast/testICastConstant.json
+++ b/exec/java-exec/src/test/resources/functions/cast/testICastConstant.json
@@ -24,25 +24,25 @@
exprs: [
{ ref: "BigIntAddFloat8", expr:"10+20.1" },
{ ref: "Float8AddBigInt", expr:"20.1+10" },
- { ref: "Float8AddChar", expr:"20.1 + \"10\"" },
- { ref: "IntAddFloat8", expr:"cast(\"10\" as int) + 20.1"},
- { ref: "IntAddBigInt", expr:"cast(\"10\" as int) + cast(\"20\" as bigint)"},
- { ref: "BigIntAddInt", expr:"cast(\"10\" as bigint) + cast(\"20\" as int)"},
- { ref: "IntAddFloat8", expr:"cast(\"10\" as int) + cast(\"20.1\" as float8)"},
- { ref: "Float8AddInt", expr:"cast(\"20.1\" as float8) + cast(\"10\" as int) "},
- { ref: "IntAddFloat4", expr:"cast(\"10\" as int) + cast(\"20.1\" as float4)"},
- { ref: "BigIntAddFloat4", expr:"cast(\"10\" as bigint) + cast(\"20.1\" as float4)"},
- { ref: "BigIntAddFloat8", expr:"cast(\"10\" as bigint) + cast(\"20.1\" as float8)"},
- { ref: "Float4AddFloat8", expr:"cast(\"10\" as float4) + cast(\"20.1\" as float8)"},
- { ref: "CharAddFloat4", expr:"\"10\" + cast(\"20.1\" as float4)"},
- { ref: "CharAddFloat8", expr:"\"10\" + cast(\"20.1\" as float8)"},
- { ref: "Float4AddFloat8", expr:"cast(\"10\" as float4) + \"20.1\" "},
- { ref: "Float8AddChar", expr:"cast(\"10\" as float8) + \"20.1\" "},
+ { ref: "Float8AddChar", expr:"20.1 + '10'" },
+ { ref: "IntAddFloat8", expr:"cast('10' as int) + 20.1"},
+ { ref: "IntAddBigInt", expr:"cast('10' as int) + cast('20' as bigint)"},
+ { ref: "BigIntAddInt", expr:"cast('10' as bigint) + cast('20' as int)"},
+ { ref: "IntAddFloat8", expr:"cast('10' as int) + cast('20.1' as float8)"},
+ { ref: "Float8AddInt", expr:"cast('20.1' as float8) + cast('10' as int) "},
+ { ref: "IntAddFloat4", expr:"cast('10' as int) + cast('20.1' as float4)"},
+ { ref: "BigIntAddFloat4", expr:"cast('10' as bigint) + cast('20.1' as float4)"},
+ { ref: "BigIntAddFloat8", expr:"cast('10' as bigint) + cast('20.1' as float8)"},
+ { ref: "Float4AddFloat8", expr:"cast('10' as float4) + cast('20.1' as float8)"},
+ { ref: "CharAddFloat4", expr:"'10' + cast('20.1' as float4)"},
+ { ref: "CharAddFloat8", expr:"'10' + cast('20.1' as float8)"},
+ { ref: "Float4AddFloat8", expr:"cast('10' as float4) + '20.1' "},
+ { ref: "Float8AddChar", expr:"cast('10' as float8) + '20.1' "},
{ ref: "CompBigIntFloat8", expr:"10 < 20.1" },
- { ref: "CompCharFloat8", expr:"\"10\" < 20.1" },
- { ref: "CompFloat8Char", expr:"20.1 > \"10\" " },
- { ref: "nested1", expr:" 20.1 + 10 > \"10\" " },
- { ref: "nested2", expr:" 20.1 + 10 > \"10\" + 15.1" }
+ { ref: "CompCharFloat8", expr:"'10' < 20.1" },
+ { ref: "CompFloat8Char", expr:"20.1 > '10' " },
+ { ref: "nested1", expr:" 20.1 + 10 > '10' " },
+ { ref: "nested2", expr:" 20.1 + 10 > '10' + 15.1" }
]
},
{
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/simple_math_functions.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/simple_math_functions.json b/exec/java-exec/src/test/resources/functions/simple_math_functions.json
index 28ac5b2..dde41cd 100644
--- a/exec/java-exec/src/test/resources/functions/simple_math_functions.json
+++ b/exec/java-exec/src/test/resources/functions/simple_math_functions.json
@@ -21,10 +21,10 @@
pop : "project",
@id : 2,
exprs : [
- { ref : "output.INTMUL", expr : " 1 * 2 "},
- { ref : "output.FLOATMUL", expr : " 1.1 * 2.2 "},
- { ref : "output.INTADD", expr : " 1 + 2 " },
- { ref : "output.FLOATADD", expr : " 1.1 + 2.2 " } ],
+ { ref : "INTMUL", expr : " 1 * 2 "},
+ { ref : "FLOATMUL", expr : " 1.1 * 2.2 "},
+ { ref : "INTADD", expr : " 1 + 2 " },
+ { ref : "FLOATADD", expr : " 1.1 + 2.2 " } ],
child : 1
}, {
pop : "screen",
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/string/testCharLength.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/string/testCharLength.json b/exec/java-exec/src/test/resources/functions/string/testCharLength.json
index 00d1a3b..ae29f67 100644
--- a/exec/java-exec/src/test/resources/functions/string/testCharLength.json
+++ b/exec/java-exec/src/test/resources/functions/string/testCharLength.json
@@ -23,16 +23,16 @@
child: 1,
pop:"project",
exprs: [
- { ref: "col1", expr: "char_length(\"aababcdf\")"},
- { ref: "col2", expr: "char_length(\"\")"},
+ { ref: "col1", expr: "char_length('aababcdf')"},
+ { ref: "col2", expr: "char_length('')"},
{ ref: "col3", expr: "char_length(varcharcol)"},
{ ref: "col4", expr: "char_length(nullvarcharcol)"},
- { ref: "col5", expr: "character_length(\"aababcdf\")"},
- { ref: "col6", expr: "character_length(\"\")"},
+ { ref: "col5", expr: "character_length('aababcdf')"},
+ { ref: "col6", expr: "character_length('')"},
{ ref: "col7", expr: "character_length(varcharcol)"},
{ ref: "col8", expr: "character_length(nullvarcharcol)"},
- { ref: "col9", expr: "length(\"aababcdf\")"},
- { ref: "col10", expr: "length(\"\")"},
+ { ref: "col9", expr: "length('aababcdf')"},
+ { ref: "col10", expr: "length('')"},
{ ref: "col11", expr: "length(varcharcol)"},
{ ref: "col12", expr: "length(nullvarcharcol)"}
]
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/string/testConcat.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/string/testConcat.json b/exec/java-exec/src/test/resources/functions/string/testConcat.json
index ccefdd0..5b21710 100644
--- a/exec/java-exec/src/test/resources/functions/string/testConcat.json
+++ b/exec/java-exec/src/test/resources/functions/string/testConcat.json
@@ -23,10 +23,10 @@
child: 1,
pop:"project",
exprs: [
- { ref: "col1", expr: "concat(\"abc\", \"ABC\")"},
- { ref: "col2", expr: "concat(\"abc\", \"\")"},
- { ref: "col3", expr: "concat(\"\", \"ABC\")"},
- { ref: "col4", expr: "concat(\"\", \"\")"}
+ { ref: "col1", expr: "concat('abc', 'ABC')"},
+ { ref: "col2", expr: "concat('abc', '')"},
+ { ref: "col3", expr: "concat('', 'ABC')"},
+ { ref: "col4", expr: "concat('', '')"}
]
},
{
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/string/testLeft.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/string/testLeft.json b/exec/java-exec/src/test/resources/functions/string/testLeft.json
index e043df5..e8126a5 100644
--- a/exec/java-exec/src/test/resources/functions/string/testLeft.json
+++ b/exec/java-exec/src/test/resources/functions/string/testLeft.json
@@ -23,13 +23,13 @@
child: 1,
pop:"project",
exprs: [
- { ref: "col1", expr: "left(\"abcdef\", 2)"},
- { ref: "col2", expr: "left(\"abcdef\", 6)"},
- { ref: "col3", expr: "left(\"abcdef\", 7)"},
- { ref: "col4", expr: "left(\"abcdef\", -2)"},
- { ref: "col5", expr: "left(\"abcdef\", -5)"},
- { ref: "col6", expr: "left(\"abcdef\", -6)"},
- { ref: "col7", expr: "left(\"abcdef\", -7)"}
+ { ref: "col1", expr: "left('abcdef', 2)"},
+ { ref: "col2", expr: "left('abcdef', 6)"},
+ { ref: "col3", expr: "left('abcdef', 7)"},
+ { ref: "col4", expr: "left('abcdef', -2)"},
+ { ref: "col5", expr: "left('abcdef', -5)"},
+ { ref: "col6", expr: "left('abcdef', -6)"},
+ { ref: "col7", expr: "left('abcdef', -7)"}
]
},
{
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/string/testLike.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/string/testLike.json b/exec/java-exec/src/test/resources/functions/string/testLike.json
index 92b501c..fc99ef2 100644
--- a/exec/java-exec/src/test/resources/functions/string/testLike.json
+++ b/exec/java-exec/src/test/resources/functions/string/testLike.json
@@ -23,10 +23,10 @@
child: 1,
pop:"project",
exprs: [
- { ref: "islike", expr:" like(\"abc\", \"abc\")" },
- { ref: "islike", expr:" like(\"abc\", \"a%\")" },
- { ref: "islike", expr:" like(\"abc\", \"_b_\")" },
- { ref: "islike", expr:" like(\"abc\", \"c\")" }
+ { ref: "islike", expr:" like('abc', 'abc')" },
+ { ref: "islike", expr:" like('abc', 'a%')" },
+ { ref: "islike", expr:" like('abc', '_b_')" },
+ { ref: "islike", expr:" like('abc', 'c')" }
]
},
{
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/string/testLower.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/string/testLower.json b/exec/java-exec/src/test/resources/functions/string/testLower.json
index 5e10920..d6351d8 100644
--- a/exec/java-exec/src/test/resources/functions/string/testLower.json
+++ b/exec/java-exec/src/test/resources/functions/string/testLower.json
@@ -23,9 +23,9 @@
child: 1,
pop:"project",
exprs: [
- { ref: "lower", expr: "lower(\"ABcEFgh\")"},
- { ref: "lower", expr: "lower(\"aBc\")"},
- { ref: "lower", expr: "lower(\"\")"}
+ { ref: "lower", expr: "lower('ABcEFgh')"},
+ { ref: "lower", expr: "lower('aBc')"},
+ { ref: "lower", expr: "lower('')"}
]
},
{
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/string/testLpad.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/string/testLpad.json b/exec/java-exec/src/test/resources/functions/string/testLpad.json
index 071acfe..017df71 100644
--- a/exec/java-exec/src/test/resources/functions/string/testLpad.json
+++ b/exec/java-exec/src/test/resources/functions/string/testLpad.json
@@ -23,16 +23,16 @@
child: 1,
pop:"project",
exprs: [
- { ref: "col1", expr: "lpad(\"abcdef\", 0, \"abc\")"},
- { ref: "col2", expr: "lpad(\"abcdef\", -3, \"abc\")"},
- { ref: "col3", expr: "lpad(\"abcdef\", 6, \"abc\")"},
- { ref: "col4", expr: "lpad(\"abcdef\", 2, \"abc\")"},
- { ref: "col5", expr: "lpad(\"abcdef\", 2, \"\")"},
- { ref: "col7", expr: "lpad(\"abcdef\", 10, \"\")"},
- { ref: "col8", expr: "lpad(\"abcdef\", 10, \"A\")"},
- { ref: "col9", expr: "lpad(\"abcdef\", 10, \"AB\")"},
- { ref: "col10", expr: "lpad(\"abcdef\", 10, \"ABC\")"},
- { ref: "col11", expr: "lpad(\"abcdef\", 10, \"ABCDEFGHIJKLMN\")"}
+ { ref: "col1", expr: "lpad('abcdef', 0, 'abc')"},
+ { ref: "col2", expr: "lpad('abcdef', -3, 'abc')"},
+ { ref: "col3", expr: "lpad('abcdef', 6, 'abc')"},
+ { ref: "col4", expr: "lpad('abcdef', 2, 'abc')"},
+ { ref: "col5", expr: "lpad('abcdef', 2, '')"},
+ { ref: "col7", expr: "lpad('abcdef', 10, '')"},
+ { ref: "col8", expr: "lpad('abcdef', 10, 'A')"},
+ { ref: "col9", expr: "lpad('abcdef', 10, 'AB')"},
+ { ref: "col10", expr: "lpad('abcdef', 10, 'ABC')"},
+ { ref: "col11", expr: "lpad('abcdef', 10, 'ABCDEFGHIJKLMN')"}
]
},
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/string/testLtrim.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/string/testLtrim.json b/exec/java-exec/src/test/resources/functions/string/testLtrim.json
index e1f1a68..f801236 100644
--- a/exec/java-exec/src/test/resources/functions/string/testLtrim.json
+++ b/exec/java-exec/src/test/resources/functions/string/testLtrim.json
@@ -23,12 +23,12 @@
child: 1,
pop:"project",
exprs: [
- { ref: "col1", expr: "ltrim(\"abcdef\", \"abc\")"},
- { ref: "col2", expr: "ltrim(\"abcdef\", \"\")"},
- { ref: "col3", expr: "ltrim(\"abcdabc\", \"abc\")"},
- { ref: "col4", expr: "ltrim(\"abc\", \"abc\")"},
- { ref: "col5", expr: "ltrim(\"\", \"abc\")"},
- { ref: "col6", expr: "ltrim(\"\", \"\")"}
+ { ref: "col1", expr: "ltrim('abcdef', 'abc')"},
+ { ref: "col2", expr: "ltrim('abcdef', '')"},
+ { ref: "col3", expr: "ltrim('abcdabc', 'abc')"},
+ { ref: "col4", expr: "ltrim('abc', 'abc')"},
+ { ref: "col5", expr: "ltrim('', 'abc')"},
+ { ref: "col6", expr: "ltrim('', '')"}
]
},
{
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/string/testPosition.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/string/testPosition.json b/exec/java-exec/src/test/resources/functions/string/testPosition.json
index 8abeeae..d9cccf9 100644
--- a/exec/java-exec/src/test/resources/functions/string/testPosition.json
+++ b/exec/java-exec/src/test/resources/functions/string/testPosition.json
@@ -23,14 +23,14 @@
child: 1,
pop:"project",
exprs: [
- { ref: "col1", expr: "position(\"abc\", \"AabcabcB\")"},
- { ref: "col2", expr: "position(\"\", \"AabcabcB\")"},
- { ref: "col3", expr: "position(\"abc\", \"\")"},
- { ref: "col4", expr: "position(\"\", \"\")"},
- { ref: "col5", expr: "strpos(\"AabcabcB\", \"abc\")" },
- { ref: "col6", expr: "strpos(\"\", \"AabcabcB\")"},
- { ref: "col7", expr: "strpos(\"\", \"abc\")"},
- { ref: "col8", expr: "strpos(\"\", \"\")"}
+ { ref: "col1", expr: "position('abc', 'AabcabcB')"},
+ { ref: "col2", expr: "position('', 'AabcabcB')"},
+ { ref: "col3", expr: "position('abc', '')"},
+ { ref: "col4", expr: "position('', '')"},
+ { ref: "col5", expr: "strpos('AabcabcB', 'abc')" },
+ { ref: "col6", expr: "strpos('', 'AabcabcB')"},
+ { ref: "col7", expr: "strpos('', 'abc')"},
+ { ref: "col8", expr: "strpos('', '')"}
]
},
{
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/string/testRegexpReplace.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/string/testRegexpReplace.json b/exec/java-exec/src/test/resources/functions/string/testRegexpReplace.json
index 3e3874a..268ec00 100644
--- a/exec/java-exec/src/test/resources/functions/string/testRegexpReplace.json
+++ b/exec/java-exec/src/test/resources/functions/string/testRegexpReplace.json
@@ -23,9 +23,9 @@
child: 1,
pop:"project",
exprs: [
- { ref: "col1", expr: "regexp_replace(\"Thomas\", \".[mN]a.\", \"M\")" },
- { ref: "col1", expr: "regexp_replace(\"Thomas\", \".[mN]a.\", \"\")" },
- { ref: "col1", expr: "regexp_replace(\"Thomas\", \"ef\", \"AB\")" }
+ { ref: "col1", expr: "regexp_replace('Thomas', '.[mN]a.', 'M')" },
+ { ref: "col1", expr: "regexp_replace('Thomas', '.[mN]a.', '')" },
+ { ref: "col1", expr: "regexp_replace('Thomas', 'ef', 'AB')" }
]
},
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ecaa838f/exec/java-exec/src/test/resources/functions/string/testReplace.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/string/testReplace.json b/exec/java-exec/src/test/resources/functions/string/testReplace.json
index 4041dd4..8cf8c64 100644
--- a/exec/java-exec/src/test/resources/functions/string/testReplace.json
+++ b/exec/java-exec/src/test/resources/functions/string/testReplace.json
@@ -23,12 +23,12 @@
child: 1,
pop:"project",
exprs: [
- { ref: "col1", expr: "replace(\"aababcdf\", \"ab\", \"AB\")"},
- { ref: "col2", expr: "replace(\"aababcdf\", \"a\", \"AB\")"},
- { ref: "col3", expr: "replace(\"aababcdf\", \"\", \"AB\")"},
- { ref: "col4", expr: "replace(\"aababcdf\", \"ab\", \"\")"},
- { ref: "col5", expr: "replace(\"abc\", \"abc\", \"ABCD\")"},
- { ref: "col6", expr: "replace(\"abc\", \"abcdefg\", \"ABCD\")"}
+ { ref: "col1", expr: "replace('aababcdf', 'ab', 'AB')"},
+ { ref: "col2", expr: "replace('aababcdf', 'a', 'AB')"},
+ { ref: "col3", expr: "replace('aababcdf', '', 'AB')"},
+ { ref: "col4", expr: "replace('aababcdf', 'ab', '')"},
+ { ref: "col5", expr: "replace('abc', 'abc', 'ABCD')"},
+ { ref: "col6", expr: "replace('abc', 'abcdefg', 'ABCD')"}
]
},
{