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')"}
           ]
         },
         {