drill-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sachou...@apache.org
Subject [drill] 04/05: DRILL-7196: Queries are still runnable on disabled plugins
Date Wed, 29 May 2019 23:08:40 GMT
This is an automated email from the ASF dual-hosted git repository.

sachouche pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/drill.git

commit e8b921bae513f00ef0ede0d2787f311aea60cea0
Author: Dmytriy Grinchenko <dmytriy.grinchenko@gmail.com>
AuthorDate: Tue May 14 11:48:50 2019 +0300

    DRILL-7196: Queries are still runnable on disabled plugins
    
    - Storage client is not created anymore for disabled plugins
    - GET "/storage/{name}.json" endpoint now working with
      plugin configuration directly, without client instantination.
      It have increased UI responsitivity.
    - Hbase and mongo base test classes refactored to honor enabled
      plugin attribute
    - Fixed path contructor for mongo test datasets:
      Now it is cross-platform
    - Fixed test json files format which using plugin definitions
    - Code cleanup
---
 common/src/test/resources/basic_physical.json      |  51 +++---
 common/src/test/resources/dsort-logical.json       |  48 ++---
 common/src/test/resources/jdbc_plan.json           |   4 +-
 common/src/test/resources/simple_plan.json         | 159 ++++++++---------
 common/src/test/resources/storage_engine_plan.json |   5 +-
 contrib/native/client/resources/simple_plan.json   | 126 ++++++-------
 .../exec/store/hbase/HBaseStoragePluginConfig.java |   2 +-
 .../main/resources/bootstrap-storage-plugins.json  |   8 +-
 .../java/org/apache/drill/hbase/BaseHBaseTest.java |  30 ++--
 .../hbase/hbase_scan_screen_physical.json          |  31 ++--
 .../hbase_scan_screen_physical_column_select.json  |  33 ++--
 .../hbase_scan_screen_physical_family_select.json  |  33 ++--
 .../exec/store/hive/schema/HiveSchemaFactory.java  |   1 -
 .../main/resources/bootstrap-storage-plugins.json  |   8 +-
 .../main/resources/bootstrap-storage-plugins.json  |   8 +-
 .../main/resources/bootstrap-storage-plugins.json  |   8 +-
 .../test/resources/bootstrap-storage-plugins.json  |   8 +-
 .../main/resources/bootstrap-storage-plugins.json  |   8 +-
 .../drill/exec/store/mongo/MongoTestBase.java      |  71 ++------
 .../drill/exec/store/mongo/MongoTestConstants.java |  78 ++++-----
 .../drill/exec/store/mongo/MongoTestSuit.java      |  82 ++++-----
 .../exec/store/mongo/TestMongoFilterPushDown.java  |  34 ++--
 .../exec/store/mongo/TestMongoProjectPushDown.java |  36 ++--
 .../drill/exec/store/mongo/TestMongoQueries.java   |  79 +++++----
 .../drill/exec/store/mongo/TestTableGenerator.java |  10 +-
 .../main/resources/bootstrap-storage-plugins.json  |   8 +-
 .../org/apache/calcite/jdbc/DynamicRootSchema.java |  16 +-
 .../drill/exec/server/rest/StorageResources.java   |   9 +-
 .../exec/store/StoragePluginRegistryImpl.java      |  38 ++--
 .../main/resources/bootstrap-storage-plugins.json  | 194 ++++++++++-----------
 .../drill/exec/store/store/TestDisabledPlugin.java |   6 +
 .../src/test/resources/agg/hashagg/q6.json         |  77 ++++----
 .../src/test/resources/agg/hashagg/q7_1.json       |  69 ++++----
 .../src/test/resources/agg/hashagg/q7_2.json       |  69 ++++----
 .../src/test/resources/agg/hashagg/q7_3.json       |  67 +++----
 .../src/test/resources/agg/hashagg/q8.json         |  61 +++----
 .../src/test/resources/agg/hashagg/q8_1.json       |  95 +++++-----
 .../src/test/resources/common/test_hashtable1.json |  64 ++++---
 .../test/resources/decimal/cast_decimal_float.json |  67 ++++---
 .../test/resources/decimal/cast_decimal_int.json   |  67 ++++---
 .../resources/decimal/cast_decimal_vardecimal.json | 106 ++++++-----
 .../test/resources/decimal/cast_float_decimal.json |  74 ++++----
 .../test/resources/decimal/cast_int_decimal.json   |  67 ++++---
 .../resources/decimal/cast_simple_decimal.json     |  77 ++++----
 .../resources/decimal/cast_vardecimal_decimal.json |  73 ++++----
 .../decimal/simple_decimal_arithmetic.json         | 102 ++++++-----
 .../resources/decimal/simple_decimal_math.json     |  69 ++++----
 .../resources/decimal/test_decimal_complex.json    |  95 +++++-----
 .../decimal/test_decimal_dense_sparse.json         | 129 ++++++--------
 .../decimal/test_decimal_sort_complex.json         |  98 +++++------
 .../decimal/test_decimal_sparse_dense_dense.json   |  40 ++---
 .../functions/cast/testCastVarCharNull.json        |  64 ++++---
 .../cast/test_cast_varchar_to_bigint.json          |  60 ++++---
 .../conv/conversionTestWithLogicalPlan.json        | 138 +++++++++------
 .../src/test/resources/functions/date/age.json     |  61 ++++---
 .../functions/date/date_difference_arithmetic.json |  57 +++---
 .../functions/date/date_interval_arithmetic.json   | 100 +++++++----
 .../functions/date/interval_arithmetic.json        |  93 ++++++----
 .../src/test/resources/functions/date/to_char.json |  57 +++---
 .../resources/functions/date/to_date_type.json     |  60 ++++---
 .../src/test/resources/functions/extractFrom.json  |  81 +++++----
 .../test/resources/functions/test_covariance.json  |  55 +++---
 .../resources/functions/test_logical_aggr.json     |  53 +++---
 .../resources/functions/test_stddev_variance.json  |  24 +--
 exec/java-exec/src/test/resources/hive/test.json   | 141 ++++++++-------
 .../src/test/resources/join/hashJoinExpr.json      |   2 +-
 .../src/test/resources/join/hash_join.json         | 109 ++++++------
 .../src/test/resources/join/hj_exchanges.json      |  19 +-
 .../src/test/resources/join/hj_exchanges1.json     |   3 +-
 .../resources/join/hj_multi_condition_join.json    | 123 +++++++------
 .../src/test/resources/join/mergeJoinExpr.json     |   2 +-
 .../resources/join/merge_inner_single_batch.json   |  81 +++++----
 .../test/resources/join/merge_join_nullkey.json    |   2 +-
 .../src/test/resources/join/merge_multi_batch.json |  82 +++++----
 .../test/resources/join/merge_single_batch.json    |  82 +++++----
 .../test/resources/join/mj_multi_condition.json    |   5 +-
 .../largefiles/merging_receiver_large_data.json    |  11 +-
 .../test/resources/lateraljoin/lateralplan1.json   |   9 +-
 .../src/test/resources/limit/limit_exchanges.json  |   9 +-
 .../src/test/resources/logical_group.json          | 133 +++++++-------
 .../src/test/resources/logical_json_scan.json      |  51 +++---
 .../src/test/resources/logical_order.json          |  85 ++++-----
 .../src/test/resources/logical_string_filter.json  |  77 ++++----
 .../test/resources/parquet/par_writer_test.json    |  42 ++---
 .../parquet/parquet_group_scan_union_screen.json   |  81 ++++-----
 .../test/resources/parquet/parquet_nullable.json   |  66 ++++---
 .../resources/parquet/parquet_nullable_varlen.json |  68 ++++----
 .../resources/parquet/parquet_scan_screen.json     |  70 ++++----
 .../parquet_scan_screen_read_entry_replace.json    |   3 +-
 .../parquet_scan_union_screen_physical.json        |  48 +++--
 .../parquet/parquet_selective_column_read.json     |  40 ++---
 .../src/test/resources/physical_filter.json        |  64 +++----
 .../src/test/resources/physical_join.json          | 182 +++++++++----------
 .../test/resources/physical_json_scan_test1.json   |  54 +++---
 .../test/resources/physical_order_varbinary.json   |  73 ++++----
 .../record/vector/test_all_date_literals.json      |  61 ++++---
 .../test/resources/record/vector/test_date.json    |  50 +++---
 .../resources/record/vector/test_date_add.json     |  53 +++---
 .../resources/record/vector/test_interval.json     |  64 +++----
 .../resources/record/vector/test_sort_date.json    |  91 +++++-----
 .../resources/record/vector/test_timestamp.json    |  50 +++---
 .../src/test/resources/scan_screen_logical.json    |  75 ++++----
 .../test/resources/sender/broadcast_exchange.json  |  92 +++++-----
 .../src/test/resources/sender/hash_exchange2.json  |  84 +++++----
 .../json/project_pushdown_json_physical_plan.json  |   4 +-
 .../src/test/resources/store/text/test.json        |  73 ++++----
 .../test/resources/writer/simple_csv_writer.json   | 158 +++++++++--------
 107 files changed, 3231 insertions(+), 3142 deletions(-)

diff --git a/common/src/test/resources/basic_physical.json b/common/src/test/resources/basic_physical.json
index 21e4c9a..675a034 100644
--- a/common/src/test/resources/basic_physical.json
+++ b/common/src/test/resources/basic_physical.json
@@ -1,40 +1,41 @@
 {
-    head:{
-        type:"APACHE_DRILL_PHYSICAL",
-        version:"1",
-        generator:{
-            type:"manual"
+    "head":{
+        "type":"APACHE_DRILL_PHYSICAL",
+        "version":"1",
+        "generator":{
+            "type":"manual"
         }
     },
-    storage:{
-        fs1:{
-            type:"mock"
+    "storage":{
+        "fs1":{
+            "type":"mock",
+            "enabled": true
         }
     },
-    graph:[
+    "graph":[
         {
-            @id:1,
-            pop:"scan",
-            storageengine:"fs1",
-            entries:[
+            "@id":1,
+            "pop":"scan",
+            "storageengine":"fs1",
+            "entries":[
                 {"test1"}
             ],
-            output:[
-                { "name":"key", mode: "VECTOR", type:"SINT32"},
-                { "name":"value", mode: "VECTOR", type:"SINT32"}
+            "output":[
+                { "name":"key", "mode": "VECTOR", "type":"SINT32"},
+                { "name":"value", "mode": "VECTOR", "type":"SINT32"}
             ]
         },
         {
-            @id:2,
-            child:1,
-            pop: "store",
-            mode: "SYSTEM_CHOICE",
-            storageengine: "fs1",
-            entries:[
+            "@id":2,
+            "child":1,
+            "pop": "store",
+            "mode": "SYSTEM_CHOICE",
+            "storageengine": "fs1",
+            "entries":[
                 {
-                    path:"/sort/sorted/${partition_number}.seq",
-                    key:"Text",
-                    type:"JAVA_SEQUENCE"
+                    "path":"/sort/sorted/${partition_number}.seq",
+                    "key":"Text",
+                    "type":"JAVA_SEQUENCE"
                 }
             ]
         }
diff --git a/common/src/test/resources/dsort-logical.json b/common/src/test/resources/dsort-logical.json
index 3e32ad6..4ebb46a 100644
--- a/common/src/test/resources/dsort-logical.json
+++ b/common/src/test/resources/dsort-logical.json
@@ -1,38 +1,38 @@
 {
-  head:{ type:"apache_drill_logical_plan", version:"1", generator:{ type:"manual", info:"na"}}},
-  storage:[ { type:"fs", name:"fs1", root:"file:///" }],
-  query:[ { op: "sequence", sequence: [
+  "head":{ "type":"apache_drill_logical_plan", "version":"1", "generator":{ "type":"manual", "info":"na"}},
+  "storage":[ { "type":"fs", "name":"fs1", "root":"file:///", "enabled":  true}],
+  "query":[ { "op": "sequence", "sequence": [
     {
-      op:"scan",
-      storageengine:"fs1",
-      ref: "data",
-      selection: {
-        path: "/sort/unsorted/*.seq",
-        type: "JAVA_SEQUENCE"
+      "op":"scan",
+      "storageengine":"fs1",
+      "ref": "data",
+      "selection": {
+        "path": "/sort/unsorted/*.seq",
+        "type": "JAVA_SEQUENCE"
       }
     },
     {
-      op: "order",
-      orderings: [
-        {order: "desc", expr: "data.key" }
+      "op": "order",
+      "orderings": [
+        {"order": "desc", "expr": "data.key" }
       ]
     },
     {
-      op: "project",
-      projections: [
-        { ref: "output.key", expr: "data.key" },
-        { ref: "output.value", expr: "data.value" }
+      "op": "project",
+      "projections": [
+        { "ref": "output.key", "expr": "data.key" },
+        { "ref": "output.value", "expr": "data.value" }
       ]
     },
     {
-      op: "store",
-      storageengine: "fs1",
-      target: {
-        path: "/sort/sorted/${partition}.seq",
-        type: "JAVA_SEQUENCE",
-        partition: {
-          type: "ORDERED",
-          exprs: ["key"]
+      "op": "store",
+      "storageengine": "fs1",
+      "target": {
+        "path": "/sort/sorted/${partition}.seq",
+        "type": "JAVA_SEQUENCE",
+        "partition": {
+          "type": "ORDERED",
+          "exprs": ["key"]
         }
       }
     }
diff --git a/common/src/test/resources/jdbc_plan.json b/common/src/test/resources/jdbc_plan.json
index 2d3b9d2..832dd15 100644
--- a/common/src/test/resources/jdbc_plan.json
+++ b/common/src/test/resources/jdbc_plan.json
@@ -4,8 +4,8 @@
         "generator":{"type":"manual","info":"na"}
     },
     "storage":{
-        "donuts-json":{"type":"classpath"},
-        "queue":{"type":"queue"}
+        "donuts-json":{"type":"classpath", "enabled":  true},
+        "queue":{"type":"queue", "enabled":  true}
     },
     "query":[
         {"op":"sequence",
diff --git a/common/src/test/resources/simple_plan.json b/common/src/test/resources/simple_plan.json
index 46ee6af..d5d8e5d 100644
--- a/common/src/test/resources/simple_plan.json
+++ b/common/src/test/resources/simple_plan.json
@@ -1,129 +1,132 @@
 {
-  head:{
-    type:"apache_drill_logical_plan",
-    version:"1",
-    generator:{
-      type:"manual",
-      info:"na"
+  "head":{
+    "type":"apache_drill_logical_plan",
+    "version":"1",
+    "generator":{
+      "type":"manual",
+      "info":"na"
     }
   },
-  storage:{
-    logs: {
-      type:"text",
-      file: "local://logs/*.log",
-      compress:"gzip",
-      line-delimiter:"\n",
-      record-maker:{
-        type:"first-row",
-        delimiter:","
-      }
+  "storage":[
+    {
+      "type":"text",
+      "file": "local://logs/*.log",
+      "compress":"gzip",
+      "line-delimiter":"\n",
+      "record-maker":{
+        "type":"first-row",
+        "delimiter":","
+      },
+      "enabled": true
     },
     {
-      type:"mongo",
-      name:"users",
-      connection:"mongodb://blue:red@localhost/users"
+      "type":"mongo",
+      "name":"users",
+      "connection":"mongodb://blue:red@localhost/users",
+      "enabled": true
     },
     {
-      type:"mysql",
-      name:"mysql",
-      connection:"jdbc:mysql://localhost/main"
+      "type":"mysql",
+      "name":"mysql",
+      "connection":"jdbc:mysql://localhost/main",
+      "enabled": true
     }
   ],
-  query:[
+  "query":[
     {
-      @id:"1",
-      op:"scan",
-      memo:"initial_scan",
-      storageengine:"local-logs",
-      selection: {}
+      "@id": 1 ,
+      "op":"scan",
+      "memo":"initial_scan",
+      "storageengine":"local-logs",
+      "selection": {}
     },
     {
-      @id:"2",
-      input:"1",
-      memo:"transform1",
-      op:"transform",
-      transforms:[
+      "@id": 2 ,
+      "input": 1 ,
+      "memo":"transform1",
+      "op":"transform",
+      "transforms":[
         {
-          ref:"userId",
-          expr:"regex_like('activity.cookie', \"persistent=([^;]*)\")"
+          "ref":"userId",
+          "expr":"regex_like('activity.cookie', \"persistent=([^;]*)\")"
         },
         {
-          ref:"session",
-          expr:"regex_like('activity.cookie', \"session=([^;]*)\")"
+          "ref":"session",
+          "expr":"regex_like('activity.cookie', \"session=([^;]*)\")"
         }
       ]
     },
     {
-      @id:"3",
-      input:"2",
-      memo:"transform2",
-      op:"transform",
-      transforms:[
+      "@id": 3 ,
+      "input": 2 ,
+      "memo":"transform2",
+      "op":"transform",
+      "transforms":[
         {
-          ref:"userId",
-          expr:"regex_like('activity.cookie', \"persistent=([^;]*)\")"
+          "ref":"userId",
+          "expr":"regex_like('activity.cookie', \"persistent=([^;]*)\")"
         },
         {
-          ref:"session",
-          expr:"regex_like('activity.cookie', \"session=([^;]*)\")"
+          "ref":"session",
+          "expr":"regex_like('activity.cookie', \"session=([^;]*)\")"
         }
       ]
     },
     {
-      @id:"7",
-      input:"3",
-      op:"sequence",
-      do:[
+      "@id": 7 ,
+      "input": 3 ,
+      "op":"sequence",
+      "do":[
         {
-          op:"transform",
-          memo:"seq_transform",
-          transforms:[
+          "op":"transform",
+          "memo":"seq_transform",
+          "transforms":[
             {
-              ref:"happy",
-              expr:"regex_like('ep2', \"dink\")"
+              "ref":"happy",
+              "expr":"regex_like('ep2', \"dink\")"
             }
           ]
         }
         ,
         {
-          op:"transform",
-          memo:"last_transform",
-          transforms:[
+          "op":"transform",
+          "memo":"last_transform",
+          "transforms":[
             {
-              ref:"abc",
-              expr:"123"
+              "ref":"abc",
+              "expr":"123"
             }
           ]
         }
       ]
     },
     {
-      @id:"10",
-      input:"3",
-      op:"transform",
-      memo:"t3",
-      transforms:[
+      "@id": 10,
+      "input": 3,
+      "op":"transform",
+      "memo":"t3",
+      "transforms":[
         {
-          ref:"happy",
-          expr:"regex_like('ep2', \"dink\")"
+          "ref":"happy",
+          "expr":"regex_like('ep2', \"dink\")"
         }
       ]
     },
     {
-      @id:12,
-      op:"join",
-      type: "inner",
-      left:"7",
-      right:"10",
-      conditions: [{relationship:"==", left: "1", right: "1" }]
+      "@id":12,
+      "op":"join",
+      "type": "inner",
+      "left":"7",
+      "right":"10",
+      "conditions": [{"relationship":"==", "left": "1", "right": "1" }]
     }
     ,
     {
-      input: 12,
-      op: "store",
-      memo: "output sink",
-      target: {
-        file: "console:///stdout"
+      "input": 12,
+      "op": "store",
+      "memo": "output sink",
+      "target": {
+        "file": "console:///stdout"
       }
     }
   ]
diff --git a/common/src/test/resources/storage_engine_plan.json b/common/src/test/resources/storage_engine_plan.json
index 6c9a6d6..c91d498 100644
--- a/common/src/test/resources/storage_engine_plan.json
+++ b/common/src/test/resources/storage_engine_plan.json
@@ -9,8 +9,9 @@
   },
   "storage" : {
       "mock-engine": {
-        type : "mock",
-        url : "http://www.apache.org/"
+        "type" : "mock",
+        "url" : "http://www.apache.org/",
+        "enabled": true
       }
   },
   "query" : [
diff --git a/contrib/native/client/resources/simple_plan.json b/contrib/native/client/resources/simple_plan.json
index 8fede75..f79e951 100644
--- a/contrib/native/client/resources/simple_plan.json
+++ b/contrib/native/client/resources/simple_plan.json
@@ -1,93 +1,93 @@
 {
-  head:{
-    type:"APACHE_DRILL_LOGICAL",
-    version:"1",
-    generator:{
-      type:"manual",
-      info:"na"
+  "head":{
+    "type":"APACHE_DRILL_LOGICAL",
+    "version":"1",
+    "generator":{
+      "type":"manual",
+      "info":"na"
     }
   },
-  storage:{
-    console: {type: "console"},
-    fs1: {type: "fs", root:"file:///"},
-    cp: {type: "classpath"}
+  "storage":{
+    "console": {"type": "console", "enabled":  true},
+    "fs1": {"type": "fs", "root":"file:///", "enabled":  true},
+    "cp": {"type": "classpath", "enabled":  true}
   },
-  query:[
+  "query":[
 
                 {
-                  @id:"1",
-                  op: "scan",
-                  memo: "initial_scan",
-                  ref: "donuts",
-                  storageengine: "cp",
-                  selection: {
-                    path: "/donuts.json",
-                    type: "JSON"
+                  "@id":"1",
+                  "op": "scan",
+                  "memo": "initial_scan",
+                  "ref": "donuts",
+                  "storageengine": "cp",
+                  "selection": {
+                    "path": "/donuts.json",
+                    "type": "JSON"
                   }
                 },
         {
-                  @id:"2",
-                  input:"1",
-                  op: "transform",
-                  transforms: [
-                    { ref: "quantity", expr: "donuts.sales"}
+                  "@id":"2",
+                  "input":"1",
+                  "op": "transform",
+                  "transforms": [
+                    { "ref": "quantity", "expr": "donuts.sales"}
                   ]
                 },
                 {
-                  @id:"3",
-                  input:"2",
-                  op: "filter",
-                  expr: "donuts.ppu < 1.00"
+                  "@id":"3",
+                  "input":"2",
+                  "op": "filter",
+                  "expr": "donuts.ppu < 1.00"
                 },
                 {
-                  @id:"4",
-                  input:"3",
-                  op: "segment",
-                  ref: "ppusegment",
-                  exprs: ["donuts.ppu"]
+                  "@id":"4",
+                  "input":"3",
+                  "op": "segment",
+                  "ref": "ppusegment",
+                  "exprs": ["donuts.ppu"]
                 },
                 {
-                  @id:"5",
-                  input:"4",
-                  op: "collapsingaggregate",
-                  within: "ppusegment",
-                  carryovers: ["donuts.ppu"],
-                  aggregations: [
-                    { ref: "donuts.typeCount",  expr: "count(1)" },
-                    { ref: "donuts.quantity",  expr: "sum(quantity)" },
-                    { ref: "donuts.sales",  expr: "sum(donuts.ppu * quantity)" }
+                  "@id":"5",
+                  "input":"4",
+                  "op": "collapsingaggregate",
+                  "within": "ppusegment",
+                  "carryovers": ["donuts.ppu"],
+                  "aggregations": [
+                    { "ref": "donuts.typeCount",  "expr": "count(1)" },
+                    { "ref": "donuts.quantity",  "expr": "sum(quantity)" },
+                    { "ref": "donuts.sales",  "expr": "sum(donuts.ppu * quantity)" }
                   ]
                 },
                 {
-                  @id:"6",
-                  input:"5",
-                  op: "order",
-                  orderings: [
-                    {order: "DESC", expr: "donuts.ppu" }
+                  "@id":"6",
+                  "input":"5",
+                  "op": "order",
+                  "orderings": [
+                    {"order": "DESC", "expr": "donuts.ppu" }
                   ]
                 },
                 {
-                  @id:"7",
-                  input:"6",
-                  op: "project",
-                  projections: [
-                    { ref: "output.output", expr: "donuts" }
+                  "@id":"7",
+                  "input":"6",
+                  "op": "project",
+                  "projections": [
+                    { "ref": "output.output", "expr": "donuts" }
                   ]
                 },
                {
-          @id:"8",
-                  input:"7",
-                  op: "limit",
-          first: 0,
-          last: 100
+          "@id":"8",
+                  "input":"7",
+                  "op": "limit",
+          "first": 0,
+          "last": 100
         },
                 {
-                  @id:"9",
-                  input:"8",
-                  op: "store",
-                  memo: "output sink",
-                  storageengine: "console",
-                  target: {pipe: "STD_OUT"}
+                  "@id":"9",
+                  "input":"8",
+                  "op": "store",
+                  "memo": "output sink",
+                  "storageengine": "console",
+                  "target": {"pipe": "STD_OUT"}
                 }
   ]
 }
diff --git a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseStoragePluginConfig.java b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseStoragePluginConfig.java
index 7a27f79..946f6f5 100644
--- a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseStoragePluginConfig.java
+++ b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseStoragePluginConfig.java
@@ -106,7 +106,7 @@ public class HBaseStoragePluginConfig extends StoragePluginConfigBase implements
   }
 
   @JsonIgnore
-  public String getZookeeperport() {
+  public String getZookeeperPort() {
     return getHBaseConf().get(HBASE_ZOOKEEPER_PORT);
   }
 
diff --git a/contrib/storage-hbase/src/main/resources/bootstrap-storage-plugins.json b/contrib/storage-hbase/src/main/resources/bootstrap-storage-plugins.json
index 530a407..1b050ee 100644
--- a/contrib/storage-hbase/src/main/resources/bootstrap-storage-plugins.json
+++ b/contrib/storage-hbase/src/main/resources/bootstrap-storage-plugins.json
@@ -1,12 +1,12 @@
 {
   "storage":{
-    hbase : {
-      type:"hbase",
-      config : {
+    "hbase" : {
+      "type":"hbase",
+      "config" : {
         "hbase.zookeeper.quorum" : "localhost",
         "hbase.zookeeper.property.clientPort" : 2181
       },
-      enabled: false
+      "enabled": false
     }
   }
 }
diff --git a/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/BaseHBaseTest.java b/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/BaseHBaseTest.java
index 33cd700..d2b3f16 100644
--- a/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/BaseHBaseTest.java
+++ b/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/BaseHBaseTest.java
@@ -41,28 +41,24 @@ public class BaseHBaseTest extends BaseTestQuery {
   public static final String HBASE_STORAGE_PLUGIN_NAME = "hbase";
 
   protected static Configuration conf = HBaseConfiguration.create();
-
   protected static HBaseStoragePlugin storagePlugin;
-
   protected static HBaseStoragePluginConfig storagePluginConfig;
 
   @BeforeClass
   public static void setupDefaultTestCluster() throws Exception {
-    /*
-     * Change the following to HBaseTestsSuite.configure(false, true)
-     * if you want to test against an externally running HBase cluster.
-     */
-    HBaseTestsSuite.configure(true /*manageHBaseCluster*/, true /*createTables*/);
+    boolean isManaged = Boolean.valueOf(System.getProperty("drill.hbase.tests.managed", "true"));
+    HBaseTestsSuite.configure(isManaged, true);
     HBaseTestsSuite.initCluster();
 
     BaseTestQuery.setupDefaultTestCluster();
 
-    final StoragePluginRegistry pluginRegistry = getDrillbitContext().getStorage();
-    storagePlugin = (HBaseStoragePlugin) pluginRegistry.getPlugin(HBASE_STORAGE_PLUGIN_NAME);
-    storagePluginConfig = storagePlugin.getConfig();
+    StoragePluginRegistry pluginRegistry = getDrillbitContext().getStorage();
+    storagePluginConfig = new HBaseStoragePluginConfig(null, false);
     storagePluginConfig.setEnabled(true);
     storagePluginConfig.setZookeeperPort(HBaseTestsSuite.getZookeeperPort());
-    pluginRegistry.createOrUpdate(HBASE_STORAGE_PLUGIN_NAME, storagePluginConfig, true);
+
+    storagePlugin = (HBaseStoragePlugin) pluginRegistry.createOrUpdate(HBASE_STORAGE_PLUGIN_NAME,
+        storagePluginConfig, true);
   }
 
   @AfterClass
@@ -72,11 +68,14 @@ public class BaseHBaseTest extends BaseTestQuery {
 
   protected String getPlanText(String planFile, String tableName) throws IOException {
     return Files.asCharSource(DrillFileUtils.getResourceAsFile(planFile), Charsets.UTF_8).read()
-        .replaceFirst("\"hbase\\.zookeeper\\.property\\.clientPort\".*:.*\\d+", "\"hbase.zookeeper.property.clientPort\" : " + HBaseTestsSuite.getZookeeperPort())
+        .replaceFirst(
+            "\"hbase\\.zookeeper\\.property\\.clientPort\".*:.*\\d+",
+            "\"hbase.zookeeper.property.clientPort\" : " + HBaseTestsSuite.getZookeeperPort())
         .replace("[TABLE_NAME]", tableName);
   }
 
-  protected void runHBasePhysicalVerifyCount(String planFile, String tableName, int expectedRowCount) throws Exception{
+  protected void runHBasePhysicalVerifyCount(String planFile, String tableName, int expectedRowCount)
+      throws Exception {
     String physicalPlan = getPlanText(planFile, tableName);
     List<QueryDataBatch> results = testPhysicalWithResults(physicalPlan);
     logResultAndVerifyRowCount(results, expectedRowCount);
@@ -87,12 +86,13 @@ public class BaseHBaseTest extends BaseTestQuery {
     return testSqlWithResults(sql);
   }
 
-  protected void runHBaseSQLVerifyCount(String sql, int expectedRowCount) throws Exception{
+  protected void runHBaseSQLVerifyCount(String sql, int expectedRowCount) throws Exception {
     List<QueryDataBatch> results = runHBaseSQLlWithResults(sql);
     logResultAndVerifyRowCount(results, expectedRowCount);
   }
 
-  private void logResultAndVerifyRowCount(List<QueryDataBatch> results, int expectedRowCount) throws SchemaChangeException {
+  private void logResultAndVerifyRowCount(List<QueryDataBatch> results, int expectedRowCount)
+      throws SchemaChangeException {
     int rowCount = logResult(results);
     if (expectedRowCount != -1) {
       Assert.assertEquals(expectedRowCount, rowCount);
diff --git a/contrib/storage-hbase/src/test/resources/hbase/hbase_scan_screen_physical.json b/contrib/storage-hbase/src/test/resources/hbase/hbase_scan_screen_physical.json
index 7f9015b..d452cc8 100644
--- a/contrib/storage-hbase/src/test/resources/hbase/hbase_scan_screen_physical.json
+++ b/contrib/storage-hbase/src/test/resources/hbase/hbase_scan_screen_physical.json
@@ -1,29 +1,30 @@
 {
-  head : {
-    type : "APACHE_DRILL_PHYSICAL",
-    version : 1,
-    generator : {
-      type : "manual"
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : 1,
+    "generator" : {
+      "type" : "manual"
     }
   },
-  graph : [ {
-    pop : "hbase-scan",
-    @id : 1,
-    hbaseScanSpec : {
-      tableName : "[TABLE_NAME]"
+  "graph" : [ {
+    "pop" : "hbase-scan",
+    "@id" : 1,
+    "hbaseScanSpec" : {
+      "tableName" : "[TABLE_NAME]"
     },
-    storage:
+    "storage":
     {
       "type":"hbase",
-      config : {
+      "enabled": true,
+      "config" : {
         "hbase.zookeeper.quorum" : "localhost",
         "hbase.zookeeper.property.clientPort" : 2181
       }
     }
   },
   {
-    pop : "screen",
-    @id : 2,
-    child : 1
+    "pop" : "screen",
+    "@id" : 2,
+    "child" : 1
   } ]
 }
\ No newline at end of file
diff --git a/contrib/storage-hbase/src/test/resources/hbase/hbase_scan_screen_physical_column_select.json b/contrib/storage-hbase/src/test/resources/hbase/hbase_scan_screen_physical_column_select.json
index f399f6f..cb48b26 100644
--- a/contrib/storage-hbase/src/test/resources/hbase/hbase_scan_screen_physical_column_select.json
+++ b/contrib/storage-hbase/src/test/resources/hbase/hbase_scan_screen_physical_column_select.json
@@ -1,32 +1,33 @@
 {
-  head : {
-    type : "APACHE_DRILL_PHYSICAL",
-    version : 1,
-    generator : {
-      type : "manual"
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : 1,
+    "generator" : {
+      "type" : "manual"
     }
   },
-  graph : [ {
-    pop : "hbase-scan",
-    @id : 1,
-    hbaseScanSpec : {
-      tableName : "[TABLE_NAME]"
+  "graph" : [ {
+    "pop" : "hbase-scan",
+    "@id" : 1,
+    "hbaseScanSpec" : {
+      "tableName" : "[TABLE_NAME]"
     },
-    storage:
+    "storage":
     {
       "type":"hbase",
-      config : {
+      "enabled": true,
+      "config" : {
         "hbase.zookeeper.quorum" : "localhost",
         "hbase.zookeeper.property.clientPort" : 2181
       }
     },
-    columns: [
+    "columns": [
       "`f2`.c1", "`f2`.c2", "row_key"
     ]
   },
   {
-    pop : "screen",
-    @id : 2,
-    child : 1
+    "pop" : "screen",
+    "@id" : 2,
+    "child" : 1
   } ]
 }
\ No newline at end of file
diff --git a/contrib/storage-hbase/src/test/resources/hbase/hbase_scan_screen_physical_family_select.json b/contrib/storage-hbase/src/test/resources/hbase/hbase_scan_screen_physical_family_select.json
index 0002164..75c9123 100644
--- a/contrib/storage-hbase/src/test/resources/hbase/hbase_scan_screen_physical_family_select.json
+++ b/contrib/storage-hbase/src/test/resources/hbase/hbase_scan_screen_physical_family_select.json
@@ -1,32 +1,33 @@
 {
-  head : {
-    type : "APACHE_DRILL_PHYSICAL",
-    version : 1,
-    generator : {
-      type : "manual"
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : 1,
+    "generator" : {
+      "type" : "manual"
     }
   },
-  graph : [ {
-    pop : "hbase-scan",
-    @id : 1,
-    hbaseScanSpec : {
-      tableName : "[TABLE_NAME]"
+  "graph" : [ {
+    "pop" : "hbase-scan",
+    "@id" : 1,
+    "hbaseScanSpec" : {
+      "tableName" : "[TABLE_NAME]"
     },
-    storage:
+    "storage":
     {
       "type":"hbase",
-      config : {
+      "enabled": true,
+      "config" : {
         "hbase.zookeeper.quorum" : "localhost",
         "hbase.zookeeper.property.clientPort" : 2181
       }
     },
-    columns: [
+    "columns": [
       "f2"
     ]
   },
   {
-    pop : "screen",
-    @id : 2,
-    child : 1
+    "pop" : "screen",
+    "@id" : 2,
+    "child" : 1
   } ]
 }
\ No newline at end of file
diff --git a/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/schema/HiveSchemaFactory.java b/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/schema/HiveSchemaFactory.java
index f63c503..31610db 100644
--- a/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/schema/HiveSchemaFactory.java
+++ b/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/schema/HiveSchemaFactory.java
@@ -72,7 +72,6 @@ public class HiveSchemaFactory extends AbstractSchemaFactory {
     isDrillImpersonationEnabled = plugin.getContext().getConfig().getBoolean(ExecConstants.IMPERSONATION_ENABLED);
 
     try {
-      // TODO: DRILL-6412. Clients for plugin should be instantiated only for the case, when plugin is enabled
       processUserMetastoreClient =
           DrillHiveMetaStoreClientFactory.createCloseableClientWithCaching(hiveConf);
     } catch (MetaException e) {
diff --git a/contrib/storage-hive/core/src/main/resources/bootstrap-storage-plugins.json b/contrib/storage-hive/core/src/main/resources/bootstrap-storage-plugins.json
index 018189c..e2e55fc 100644
--- a/contrib/storage-hive/core/src/main/resources/bootstrap-storage-plugins.json
+++ b/contrib/storage-hive/core/src/main/resources/bootstrap-storage-plugins.json
@@ -1,8 +1,8 @@
 {
   "storage":{
-    hive : {
-      type:"hive",
-      configProps : {
+    "hive" : {
+      "type":"hive",
+      "configProps" : {
         "hive.metastore.uris" : "",
         "javax.jdo.option.ConnectionURL" : "jdbc:derby:;databaseName=../sample-data/drill_hive_db;create=true",
         "hive.metastore.warehouse.dir" : "/tmp/drill_hive_wh",
@@ -11,7 +11,7 @@
         "hive.metastore.schema.verification": "false",
         "datanucleus.schema.autoCreateAll": "true"
       },
-      enabled: false
+      "enabled": false
     }
   }
 }
diff --git a/contrib/storage-kafka/src/main/resources/bootstrap-storage-plugins.json b/contrib/storage-kafka/src/main/resources/bootstrap-storage-plugins.json
index 18a1df5..3c3142f 100644
--- a/contrib/storage-kafka/src/main/resources/bootstrap-storage-plugins.json
+++ b/contrib/storage-kafka/src/main/resources/bootstrap-storage-plugins.json
@@ -1,9 +1,9 @@
 {
   "storage":{
-    kafka : {
-      type:"kafka",
-      kafkaConsumerProps: {"bootstrap.servers":"localhost:9092", "group.id" : "drill-consumer"},
-      enabled: false
+    "kafka" : {
+      "type":"kafka",
+      "kafkaConsumerProps": {"bootstrap.servers":"localhost:9092", "group.id" : "drill-consumer"},
+      "enabled": false
     }
   }
 }
diff --git a/contrib/storage-kudu/src/main/resources/bootstrap-storage-plugins.json b/contrib/storage-kudu/src/main/resources/bootstrap-storage-plugins.json
index 52884a6..e835fbd 100644
--- a/contrib/storage-kudu/src/main/resources/bootstrap-storage-plugins.json
+++ b/contrib/storage-kudu/src/main/resources/bootstrap-storage-plugins.json
@@ -1,9 +1,9 @@
 {
   "storage":{
-    kudu : {
-      type:"kudu",
-      masterAddresses: "1.2.3.4",
-      enabled: false
+    "kudu" : {
+      "type":"kudu",
+      "masterAddresses": "1.2.3.4",
+      "enabled": false
     }
   }
 }
diff --git a/contrib/storage-kudu/src/test/resources/bootstrap-storage-plugins.json b/contrib/storage-kudu/src/test/resources/bootstrap-storage-plugins.json
index 3ba12c0..b3ba6b1 100644
--- a/contrib/storage-kudu/src/test/resources/bootstrap-storage-plugins.json
+++ b/contrib/storage-kudu/src/test/resources/bootstrap-storage-plugins.json
@@ -1,9 +1,9 @@
 {
   "storage":{
-    kudu : {
-      type:"kudu",
-      masterAddresses: "172.31.1.99",
-      enabled: true
+    "kudu" : {
+      "type":"kudu",
+      "masterAddresses": "172.31.1.99",
+      "enabled": true
     }
   }
 }
diff --git a/contrib/storage-mongo/src/main/resources/bootstrap-storage-plugins.json b/contrib/storage-mongo/src/main/resources/bootstrap-storage-plugins.json
index 9983596..2010e32 100644
--- a/contrib/storage-mongo/src/main/resources/bootstrap-storage-plugins.json
+++ b/contrib/storage-mongo/src/main/resources/bootstrap-storage-plugins.json
@@ -1,9 +1,9 @@
 {
   "storage":{
-    mongo : {
-      type:"mongo",
-      connection:"mongodb://localhost:27017/",
-      enabled: false
+    "mongo" : {
+      "type":"mongo",
+      "connection":"mongodb://localhost:27017/",
+      "enabled": false
     }
   }
 }
diff --git a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestBase.java b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestBase.java
index 4b4412f..aff0b56 100644
--- a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestBase.java
+++ b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestBase.java
@@ -17,79 +17,42 @@
  */
 package org.apache.drill.exec.store.mongo;
 
-import static org.junit.Assert.assertEquals;
-
-import java.util.List;
-
-import org.apache.drill.PlanTestBase;
 import org.apache.drill.exec.ExecConstants;
-import org.apache.drill.exec.exception.SchemaChangeException;
-import org.apache.drill.exec.rpc.user.QueryDataBatch;
 import org.apache.drill.exec.store.StoragePluginRegistry;
+import org.apache.drill.test.ClusterFixture;
+import org.apache.drill.test.ClusterTest;
 import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.Assume;
 import org.junit.BeforeClass;
 
-public class MongoTestBase extends PlanTestBase implements MongoTestConstants {
-  protected static MongoStoragePlugin storagePlugin;
-  protected static MongoStoragePluginConfig storagePluginConfig;
+public class MongoTestBase extends ClusterTest implements MongoTestConstants {
+  private static StoragePluginRegistry pluginRegistry;
 
   @BeforeClass
   public static void setUpBeforeClass() throws Exception {
-    // Make sure this test is only running as part of the suit
-    Assume.assumeTrue(MongoTestSuit.isRunningSuite());
+    startCluster(ClusterFixture.builder(dirTestWatcher));
+    pluginRegistry = cluster.drillbit().getContext().getStorage();
+
     MongoTestSuit.initMongo();
-    initMongoStoragePlugin();
+    initMongoStoragePlugin(MongoTestSuit.getConnectionURL());
   }
 
-  public static void initMongoStoragePlugin() throws Exception {
-    final StoragePluginRegistry pluginRegistry = getDrillbitContext().getStorage();
-    storagePlugin = (MongoStoragePlugin) pluginRegistry.getPlugin(MongoStoragePluginConfig.NAME);
-    storagePluginConfig = storagePlugin.getConfig();
+  private static void initMongoStoragePlugin(String connectionURI) throws Exception {
+    MongoStoragePluginConfig storagePluginConfig = new MongoStoragePluginConfig(connectionURI);
     storagePluginConfig.setEnabled(true);
     pluginRegistry.createOrUpdate(MongoStoragePluginConfig.NAME, storagePluginConfig, true);
-    if (System.getProperty("drill.mongo.tests.bson.reader", "true").equalsIgnoreCase("false")) {
-      testNoResult(String.format("alter session set `%s` = false", ExecConstants.MONGO_BSON_RECORD_READER));
-    } else {
-      testNoResult(String.format("alter session set `%s` = true", ExecConstants.MONGO_BSON_RECORD_READER));
-    }
-  }
-
-  public List<QueryDataBatch> runMongoSQLWithResults(String sql)
-      throws Exception {
-    return testSqlWithResults(sql);
-  }
-
-  public void runMongoSQLVerifyCount(String sql, int expectedRowCount)
-      throws Exception {
-    List<QueryDataBatch> results = runMongoSQLWithResults(sql);
-    logResultAndVerifyRowCount(results, expectedRowCount);
-  }
-
-  public void logResultAndVerifyRowCount(List<QueryDataBatch> results,
-                                         int expectedRowCount) throws SchemaChangeException {
-    int rowCount = logResult(results);
-    if (expectedRowCount != -1) {
-      Assert.assertEquals(expectedRowCount, rowCount);
-    }
-  }
 
-  public void testHelper(String query, String expectedExprInPlan,
-      int expectedRecordCount) throws Exception {
-    testPhysicalPlan(query, expectedExprInPlan);
-    int actualRecordCount = testSql(query);
-    assertEquals(
-        String.format(
-            "Received unexpected number of rows in output: expected=%d, received=%s",
-            expectedRecordCount, actualRecordCount), expectedRecordCount,
-        actualRecordCount);
+    client.testBuilder()
+        .sqlQuery("alter session set `%s` = %s",
+            ExecConstants.MONGO_BSON_RECORD_READER,
+            System.getProperty("drill.mongo.tests.bson.reader", "true"))
+        .unOrdered()
+        .expectsEmptyResultSet();
   }
 
   @AfterClass
   public static void tearDownMongoTestBase() throws Exception {
+    pluginRegistry.deletePlugin(MongoStoragePluginConfig.NAME);
     MongoTestSuit.tearDownCluster();
-    storagePlugin = null;
   }
 
 }
diff --git a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestConstants.java b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestConstants.java
index 5aeaf9f..7485a30 100644
--- a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestConstants.java
+++ b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestConstants.java
@@ -17,34 +17,34 @@
  */
 package org.apache.drill.exec.store.mongo;
 
-public interface MongoTestConstants {
 
-  public static final String LOCALHOST = "localhost";
+public interface MongoTestConstants {
+  String LOCALHOST = "localhost";
   // TODO: DRILL-3934: add some randomization to this as it fails when running concurrent builds
   int CONFIG_SERVER_1_PORT = 61114;
   int CONFIG_SERVER_2_PORT = 61215;
   int CONFIG_SERVER_3_PORT = 61316;
-  public static final int MONGOD_1_PORT = 27020;
-  public static final int MONGOD_2_PORT = 27021;
-  public static final int MONGOD_3_PORT = 27022;
+  int MONGOD_1_PORT = 27020;
+  int MONGOD_2_PORT = 27021;
+  int MONGOD_3_PORT = 27022;
 
-  public static final int MONGOD_4_PORT = 27023;
-  public static final int MONGOD_5_PORT = 27024;
-  public static final int MONGOD_6_PORT = 27025;
+  int MONGOD_4_PORT = 27023;
+  int MONGOD_5_PORT = 27024;
+  int MONGOD_6_PORT = 27025;
 
-  public static final int MONGOS_PORT = 27017;
+  int MONGOS_PORT = 27017;
 
-  public static final String EMPLOYEE_DB = "employee";
-  public static final String DONUTS_DB = "donuts";
+  String EMPLOYEE_DB = "employee";
+  String DONUTS_DB = "donuts";
 
-  public static final String DONUTS_COLLECTION = "donuts";
-  public static final String EMPINFO_COLLECTION = "empinfo";
-  public static final String EMPTY_COLLECTION = "empty";
-  public static final String SCHEMA_CHANGE_COLLECTION = "schema_change";
+  String DONUTS_COLLECTION = "donuts";
+  String EMPINFO_COLLECTION = "empinfo";
+  String EMPTY_COLLECTION = "empty";
+  String SCHEMA_CHANGE_COLLECTION = "schema_change";
 
-  public static final String DONUTS_DATA = "donuts.json";
-  public static final String EMP_DATA = "emp.json";
-  public static final String SCHEMA_CHANGE_DATA = "schema_change_int_to_string.json";
+  String DONUTS_DATA = "donuts.json";
+  String EMP_DATA = "emp.json";
+  String SCHEMA_CHANGE_DATA = "schema_change_int_to_string.json";
 
   String STORAGE_ENGINE = "wiredTiger";
   String DATATYPE_DB = "datatype";
@@ -52,31 +52,31 @@ public interface MongoTestConstants {
   String DATATYPE_DATA = "datatype-oid.json";
 
   String CONFIG_REPLICA_SET = "config_replicas";
-  public static final String REPLICA_SET_1_NAME = "shard_1_replicas";
-  public static final String REPLICA_SET_2_NAME = "shard_2_replicas";
+  String REPLICA_SET_1_NAME = "shard_1_replicas";
+  String REPLICA_SET_2_NAME = "shard_2_replicas";
 
   // test queries
-  public static final String TEST_QUERY_1 = "SELECT * FROM mongo.employee.`empinfo` limit 5";
-  public static final String TEST_QUERY_LIMIT = "SELECT first_name, last_name FROM mongo.employee.`empinfo` limit 2;";
+  String TEST_QUERY_1 = "SELECT * FROM mongo.employee.`empinfo` limit 5";
+  String TEST_QUERY_LIMIT = "SELECT first_name, last_name FROM mongo.employee.`empinfo` limit 2;";
 
   // test query template1
-  public static final String TEST_QUERY_PROJECT_PUSH_DOWN_TEMPLATE_1 = "SELECT `employee_id` FROM mongo.%s.`%s`";
-  public static final String TEST_QUERY_PROJECT_PUSH_DOWN__TEMPLATE_2 = "select `employee_id`, `rating` from mongo.%s.`%s`";
-  public static final String TEST_QUERY_PROJECT_PUSH_DOWN__TEMPLATE_3 = "select * from mongo.%s.`%s`";
-  public static final String TEST_FILTER_PUSH_DOWN_IS_NULL_QUERY_TEMPLATE_1 = "SELECT `employee_id` FROM mongo.%s.`%s` where position_id is null";
-  public static final String TEST_FILTER_PUSH_DOWN_IS_NOT_NULL_QUERY_TEMPLATE_1 = "SELECT `employee_id` FROM mongo.%s.`%s` where position_id is not null";
-  public static final String TEST_FILTER_PUSH_DOWN_EQUAL_QUERY_TEMPLATE_1 = "SELECT `full_name` FROM mongo.%s.`%s` where rating = 52.17";
-  public static final String TEST_FILTER_PUSH_DOWN_NOT_EQUAL_QUERY_TEMPLATE_1 = "SELECT `employee_id` FROM mongo.%s.`%s` where rating != 52.17";
-  public static final String TEST_FILTER_PUSH_DOWN_LESS_THAN_QUERY_TEMPLATE_1 = "SELECT `full_name` FROM mongo.%s.`%s` where rating < 52.17";
-  public static final String TEST_FILTER_PUSH_DOWN_GREATER_THAN_QUERY_TEMPLATE_1 = "SELECT `full_name` FROM mongo.%s.`%s` where rating > 52.17";
-  public static final String TEST_EMPTY_TABLE_QUERY_TEMPLATE = "select count(*) from mongo.%s.`%s`";
+  String TEST_QUERY_PROJECT_PUSH_DOWN_TEMPLATE_1 = "SELECT `employee_id` FROM mongo.%s.`%s`";
+  String TEST_QUERY_PROJECT_PUSH_DOWN__TEMPLATE_2 = "select `employee_id`, `rating` from mongo.%s.`%s`";
+  String TEST_QUERY_PROJECT_PUSH_DOWN__TEMPLATE_3 = "select * from mongo.%s.`%s`";
+  String TEST_FILTER_PUSH_DOWN_IS_NULL_QUERY_TEMPLATE_1 = "SELECT `employee_id` FROM mongo.%s.`%s` where position_id is null";
+  String TEST_FILTER_PUSH_DOWN_IS_NOT_NULL_QUERY_TEMPLATE_1 = "SELECT `employee_id` FROM mongo.%s.`%s` where position_id is not null";
+  String TEST_FILTER_PUSH_DOWN_EQUAL_QUERY_TEMPLATE_1 = "SELECT `full_name` FROM mongo.%s.`%s` where rating = 52.17";
+  String TEST_FILTER_PUSH_DOWN_NOT_EQUAL_QUERY_TEMPLATE_1 = "SELECT `employee_id` FROM mongo.%s.`%s` where rating != 52.17";
+  String TEST_FILTER_PUSH_DOWN_LESS_THAN_QUERY_TEMPLATE_1 = "SELECT `full_name` FROM mongo.%s.`%s` where rating < 52.17";
+  String TEST_FILTER_PUSH_DOWN_GREATER_THAN_QUERY_TEMPLATE_1 = "SELECT `full_name` FROM mongo.%s.`%s` where rating > 52.17";
+  String TEST_EMPTY_TABLE_QUERY_TEMPLATE = "select count(*) from mongo.%s.`%s`";
 
-  public static final String TEST_BOOLEAN_FILTER_QUERY_TEMPLATE1 = "select `employee_id` from mongo.%s.`%s` where isFTE = true";
-  public static final String TEST_BOOLEAN_FILTER_QUERY_TEMPLATE2 = "select `employee_id` from mongo.%s.`%s` where isFTE = false";
-  public static final String TEST_BOOLEAN_FILTER_QUERY_TEMPLATE3 = "select `employee_id` from mongo.%s.`%s` where position_id = 16 and isFTE = true";
-  public static final String TEST_BOOLEAN_FILTER_QUERY_TEMPLATE4 = "select `employee_id` from mongo.%s.`%s` where (position_id = 16 and isFTE = true) or last_name = 'Yonce'";
+  String TEST_BOOLEAN_FILTER_QUERY_TEMPLATE1 = "select `employee_id` from mongo.%s.`%s` where isFTE = true";
+  String TEST_BOOLEAN_FILTER_QUERY_TEMPLATE2 = "select `employee_id` from mongo.%s.`%s` where isFTE = false";
+  String TEST_BOOLEAN_FILTER_QUERY_TEMPLATE3 = "select `employee_id` from mongo.%s.`%s` where position_id = 16 and isFTE = true";
+  String TEST_BOOLEAN_FILTER_QUERY_TEMPLATE4 = "select `employee_id` from mongo.%s.`%s` where (position_id = 16 and isFTE = true) or last_name = 'Yonce'";
 
-  public static final String TEST_STAR_QUERY_UNSHARDED_DB = "select * from mongo.%s.`%s`";
-  public static final String TEST_STAR_QUERY_UNSHARDED_DB_PROJECT_FILTER = "select t.name as name,t.topping.type as type from mongo.%s.`%s` t where t.sales >= 150";
-  public static final String TEST_STAR_QUERY_UNSHARDED_DB_GROUP_PROJECT_FILTER = "select t.topping.type as type,count(t.topping.type) as typeCount from mongo.%s.`%s` t group by t.topping.type order by typeCount";
+  String TEST_STAR_QUERY_UNSHARDED_DB = "select * from mongo.%s.`%s`";
+  String TEST_STAR_QUERY_UNSHARDED_DB_PROJECT_FILTER = "select t.name as name,t.topping.type as type from mongo.%s.`%s` t where t.sales >= 150";
+  String TEST_STAR_QUERY_UNSHARDED_DB_GROUP_PROJECT_FILTER = "select t.topping.type as type,count(t.topping.type) as typeCount from mongo.%s.`%s` t group by t.topping.type order by typeCount";
 }
diff --git a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestSuit.java b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestSuit.java
index b41f5b2..eed94f1 100644
--- a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestSuit.java
+++ b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestSuit.java
@@ -18,7 +18,6 @@
 package org.apache.drill.exec.store.mongo;
 
 import java.io.IOException;
-import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -69,28 +68,22 @@ import de.flapdoodle.embed.process.runtime.Network;
 @Category({SlowTest.class, MongoStorageTest.class})
 public class MongoTestSuit implements MongoTestConstants {
 
-  private static final Logger logger = LoggerFactory
-      .getLogger(MongoTestSuit.class);
-
+  private static final Logger logger = LoggerFactory.getLogger(MongoTestSuit.class);
   protected static MongoClient mongoClient;
 
-  private static boolean distMode = System.getProperty(
-      "drill.mongo.tests.shardMode", "true").equalsIgnoreCase("true");
-  private static boolean authEnabled = System.getProperty(
-      "drill.mongo.tests.authEnabled", "false").equalsIgnoreCase("true");
-
+  private static boolean distMode = Boolean.valueOf(System.getProperty("drill.mongo.tests.shardMode", "false"));
+  private static boolean authEnabled = Boolean.valueOf(System.getProperty("drill.mongo.tests.authEnabled", "false"));
+  private static volatile String connectionURL = null;
   private static volatile AtomicInteger initCount = new AtomicInteger(0);
 
-  private static volatile boolean runningSuite = false;
-
-  public static boolean isRunningSuite() {
-    return runningSuite;
+  public static String getConnectionURL() {
+    return connectionURL;
   }
 
   private static class DistributedMode {
     private static MongosSystemForTestFactory mongosTestFactory;
 
-    private static void setup() throws Exception {
+    private static String setup() throws Exception {
       // creating configServers
       List<IMongodConfig> configServers = new ArrayList<>(1);
       configServers.add(crateConfigServerConfig(CONFIG_SERVER_1_PORT));
@@ -102,42 +95,39 @@ public class MongoTestSuit implements MongoTestConstants {
       Map<String, List<IMongodConfig>> replicaSets = new LinkedHashMap<>();
 
       List<IMongodConfig> replicaSet1 = new ArrayList<>();
-      replicaSet1.add(crateIMongodConfig(MONGOD_1_PORT, false,
-          REPLICA_SET_1_NAME));
-      replicaSet1.add(crateIMongodConfig(MONGOD_2_PORT, false,
-          REPLICA_SET_1_NAME));
-      replicaSet1.add(crateIMongodConfig(MONGOD_3_PORT, false,
-          REPLICA_SET_1_NAME));
+      replicaSet1.add(crateIMongodConfig(MONGOD_1_PORT, false, REPLICA_SET_1_NAME));
+      replicaSet1.add(crateIMongodConfig(MONGOD_2_PORT, false, REPLICA_SET_1_NAME));
+      replicaSet1.add(crateIMongodConfig(MONGOD_3_PORT, false, REPLICA_SET_1_NAME));
+
       List<IMongodConfig> replicaSet2 = new ArrayList<>();
-      replicaSet2.add(crateIMongodConfig(MONGOD_4_PORT, false,
-          REPLICA_SET_2_NAME));
-      replicaSet2.add(crateIMongodConfig(MONGOD_5_PORT, false,
-          REPLICA_SET_2_NAME));
-      replicaSet2.add(crateIMongodConfig(MONGOD_6_PORT, false,
-          REPLICA_SET_2_NAME));
+      replicaSet2.add(crateIMongodConfig(MONGOD_4_PORT, false, REPLICA_SET_2_NAME));
+      replicaSet2.add(crateIMongodConfig(MONGOD_5_PORT, false, REPLICA_SET_2_NAME));
+      replicaSet2.add(crateIMongodConfig(MONGOD_6_PORT, false, REPLICA_SET_2_NAME));
 
       replicaSets.put(CONFIG_REPLICA_SET, configServers);
       replicaSets.put(REPLICA_SET_1_NAME, replicaSet1);
       replicaSets.put(REPLICA_SET_2_NAME, replicaSet2);
 
-      // create mongos
+      // create mongo shards
       IMongosConfig mongosConfig = createIMongosConfig();
-      mongosTestFactory = new MongosSystemForTestFactory(mongosConfig,
-          replicaSets, Lists.newArrayList(), EMPLOYEE_DB, EMPINFO_COLLECTION,
-          "employee_id");
+      mongosTestFactory = new MongosSystemForTestFactory(mongosConfig, replicaSets, Lists.newArrayList(),
+          EMPLOYEE_DB, EMPINFO_COLLECTION,"employee_id");
       try {
         mongosTestFactory.start();
         mongoClient = (MongoClient) mongosTestFactory.getMongo();
       } catch (Throwable e) {
-        logger.error(" Error while starting shrded cluster. ", e);
-        throw new Exception(" Error while starting shrded cluster. ", e);
+        logger.error(" Error while starting sharded cluster. ", e);
+        throw new Exception(" Error while starting sharded cluster. ", e);
       }
       createDbAndCollections(DONUTS_DB, DONUTS_COLLECTION, "id");
       createDbAndCollections(EMPLOYEE_DB, EMPTY_COLLECTION, "field_2");
       createDbAndCollections(DATATYPE_DB, DATATYPE_COLLECTION, "_id");
+
+      // the way how it work: client -> router(mongos) -> Shard1 ... ShardN
+      return String.format("mongodb://%s:%s", LOCALHOST, MONGOS_PORT);
     }
 
-    private static IMongodConfig crateConfigServerConfig(int configServerPort) throws UnknownHostException, IOException {
+    private static IMongodConfig crateConfigServerConfig(int configServerPort) throws IOException {
       IMongoCmdOptions cmdOptions = new MongoCmdOptionsBuilder()
         .useNoPrealloc(false)
         .useSmallFiles(false)
@@ -157,9 +147,8 @@ public class MongoTestSuit implements MongoTestConstants {
       return mongodConfig;
     }
 
-    private static IMongodConfig crateIMongodConfig(int mongodPort,
-        boolean flag, String replicaName) throws UnknownHostException,
-        IOException {
+    private static IMongodConfig crateIMongodConfig(int mongodPort, boolean flag, String replicaName)
+        throws IOException {
       IMongoCmdOptions cmdOptions = new MongoCmdOptionsBuilder()
         .useNoPrealloc(false)
         .useSmallFiles(false)
@@ -179,8 +168,7 @@ public class MongoTestSuit implements MongoTestConstants {
       return mongodConfig;
     }
 
-    private static IMongosConfig createIMongosConfig()
-        throws UnknownHostException, IOException {
+    private static IMongosConfig createIMongosConfig() throws IOException {
       IMongoCmdOptions cmdOptions = new MongoCmdOptionsBuilder()
         .useNoPrealloc(false)
         .useSmallFiles(false)
@@ -208,7 +196,6 @@ public class MongoTestSuit implements MongoTestConstants {
           }
       }
     }
-
   }
 
   private static class SingleMode {
@@ -216,7 +203,7 @@ public class MongoTestSuit implements MongoTestConstants {
     private static MongodExecutable mongodExecutable;
     private static MongodProcess mongod;
 
-    private static void setup() throws UnknownHostException, IOException {
+    private static String setup() throws IOException {
       IMongoCmdOptions cmdOptions = new MongoCmdOptionsBuilder().verbose(false)
           .enableAuth(authEnabled).build();
 
@@ -235,6 +222,8 @@ public class MongoTestSuit implements MongoTestConstants {
       createDbAndCollections(EMPLOYEE_DB, SCHEMA_CHANGE_COLLECTION, "field_2");
       createDbAndCollections(EMPLOYEE_DB, EMPTY_COLLECTION, "field_2");
       createDbAndCollections(DATATYPE_DB, DATATYPE_COLLECTION, "_id");
+
+      return String.format("mongodb://%s:%s", LOCALHOST, MONGOS_PORT);
     }
 
     private static void cleanup() {
@@ -253,26 +242,25 @@ public class MongoTestSuit implements MongoTestConstants {
       if (initCount.get() == 0) {
         if (distMode) {
           logger.info("Executing tests in distributed mode");
-          DistributedMode.setup();
+          connectionURL = DistributedMode.setup();
         } else {
           logger.info("Executing tests in single mode");
-          SingleMode.setup();
+          connectionURL = SingleMode.setup();
         }
+        // ToDo DRILL-7269: fix the way how data are imported for the sharded mongo cluster
         TestTableGenerator.importData(EMPLOYEE_DB, EMPINFO_COLLECTION, EMP_DATA);
         TestTableGenerator.importData(EMPLOYEE_DB, SCHEMA_CHANGE_COLLECTION, SCHEMA_CHANGE_DATA);
         TestTableGenerator.importData(DONUTS_DB, DONUTS_COLLECTION, DONUTS_DATA);
         TestTableGenerator.importData(DATATYPE_DB, DATATYPE_COLLECTION, DATATYPE_DATA);
       }
       initCount.incrementAndGet();
-      runningSuite = true;
     }
   }
 
   private static void createDbAndCollections(String dbName,
       String collectionName, String indexFieldName) {
     MongoDatabase db = mongoClient.getDatabase(dbName);
-    MongoCollection<Document> mongoCollection = db
-        .getCollection(collectionName);
+    MongoCollection<Document> mongoCollection = db.getCollection(collectionName);
     if (mongoCollection == null) {
       db.createCollection(collectionName);
       mongoCollection = db.getCollection(collectionName);
@@ -298,9 +286,7 @@ public class MongoTestSuit implements MongoTestConstants {
             mongoClient.dropDatabase(DATATYPE_DB);
             mongoClient.dropDatabase(DONUTS_DB);
           }
-        }
-        finally {
-          runningSuite = false;
+        } finally {
           if (mongoClient != null) {
             mongoClient.close();
           }
diff --git a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestMongoFilterPushDown.java b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestMongoFilterPushDown.java
index 645c018..b0644c1 100644
--- a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestMongoFilterPushDown.java
+++ b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestMongoFilterPushDown.java
@@ -27,29 +27,37 @@ public class TestMongoFilterPushDown extends MongoTestBase {
 
   @Test
   public void testFilterPushDownIsEqual() throws Exception {
-    String queryString = String.format(
-        TEST_FILTER_PUSH_DOWN_EQUAL_QUERY_TEMPLATE_1, EMPLOYEE_DB,
-        EMPINFO_COLLECTION);
-    String expectedExpr = "\"$eq\" : 52.17";
-    testHelper(queryString, expectedExpr, 1);
+    String queryString = String.format(TEST_FILTER_PUSH_DOWN_EQUAL_QUERY_TEMPLATE_1, EMPLOYEE_DB, EMPINFO_COLLECTION);
+
+    testBuilder()
+        .sqlQuery(queryString)
+        .unOrdered()
+        .expectsNumRecords(1)
+        .go();
   }
 
   @Test
   public void testFilterPushDownLessThanWithSingleField() throws Exception {
-    String queryString = String.format(
-        TEST_FILTER_PUSH_DOWN_LESS_THAN_QUERY_TEMPLATE_1, EMPLOYEE_DB,
+    String queryString = String.format(TEST_FILTER_PUSH_DOWN_LESS_THAN_QUERY_TEMPLATE_1, EMPLOYEE_DB,
         EMPINFO_COLLECTION);
-    String expectedExpr = "\"$lt\" : 52.17";
-    testHelper(queryString, expectedExpr, 9);
+
+    testBuilder()
+        .sqlQuery(queryString)
+        .unOrdered()
+        .expectsNumRecords(9)
+        .go();
   }
 
   @Test
   public void testFilterPushDownGreaterThanWithSingleField() throws Exception {
-    String queryString = String.format(
-        TEST_FILTER_PUSH_DOWN_GREATER_THAN_QUERY_TEMPLATE_1, EMPLOYEE_DB,
+    String queryString = String.format(TEST_FILTER_PUSH_DOWN_GREATER_THAN_QUERY_TEMPLATE_1, EMPLOYEE_DB,
         EMPINFO_COLLECTION);
-    String expectedExpr = "\"$gt\" : 52.17";
-    testHelper(queryString, expectedExpr, 9);
+
+    testBuilder()
+        .sqlQuery(queryString)
+        .unOrdered()
+        .expectsNumRecords(9)
+        .go();
   }
 
 }
diff --git a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestMongoProjectPushDown.java b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestMongoProjectPushDown.java
index 241ec2b..48d13ce 100644
--- a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestMongoProjectPushDown.java
+++ b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestMongoProjectPushDown.java
@@ -63,32 +63,42 @@ public class TestMongoProjectPushDown extends MongoTestBase {
                       "inner_3", mapOf()))
               .go();
     } finally {
-      test(String.format("alter session set `%s` = false", ExecConstants.MONGO_READER_READ_NUMBERS_AS_DOUBLE));
+      run("alter session set `%s` = false", ExecConstants.MONGO_READER_READ_NUMBERS_AS_DOUBLE);
     }
   }
 
   @Test
   public void testSingleColumnProject() throws Exception {
-    String query = String.format(TEST_QUERY_PROJECT_PUSH_DOWN_TEMPLATE_1,
-        EMPLOYEE_DB, EMPINFO_COLLECTION);
-    String expectedColNames = " \"columns\" : [ \"`employee_id`\" ]";
-    testHelper(query, expectedColNames, 19);
+    String query = String.format(TEST_QUERY_PROJECT_PUSH_DOWN_TEMPLATE_1, EMPLOYEE_DB, EMPINFO_COLLECTION);
+
+    testBuilder()
+        .sqlQuery(query)
+        .unOrdered()
+        .baselineColumns("employee_id")
+        .expectsNumRecords(19)
+        .go();
   }
 
   @Test
   public void testMultipleColumnsProject() throws Exception {
-    String query = String.format(TEST_QUERY_PROJECT_PUSH_DOWN__TEMPLATE_2,
-        EMPLOYEE_DB, EMPINFO_COLLECTION);
-    String expectedColNames = "\"columns\" : [ \"`employee_id`\", \"`rating`\" ]";
-    testHelper(query, expectedColNames, 19);
+    String query = String.format(TEST_QUERY_PROJECT_PUSH_DOWN__TEMPLATE_2, EMPLOYEE_DB, EMPINFO_COLLECTION);
+
+    testBuilder()
+        .sqlQuery(query)
+        .unOrdered()
+        .baselineColumns("employee_id", "rating")
+        .expectsNumRecords(19)
+        .go();
   }
 
   @Test
   public void testStarProject() throws Exception {
-    String query = String.format(TEST_QUERY_PROJECT_PUSH_DOWN__TEMPLATE_3,
-        EMPLOYEE_DB, EMPINFO_COLLECTION);
-    String expectedColNames = "*";
-    testHelper(query, expectedColNames, 19);
+    String query = String.format(TEST_QUERY_PROJECT_PUSH_DOWN__TEMPLATE_3, EMPLOYEE_DB, EMPINFO_COLLECTION);
+    testBuilder()
+        .sqlQuery(query)
+        .unOrdered()
+        .expectsNumRecords(19)
+        .go();
   }
 
 }
diff --git a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestMongoQueries.java b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestMongoQueries.java
index 49d2746..cdec4f7 100644
--- a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestMongoQueries.java
+++ b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestMongoQueries.java
@@ -27,66 +27,79 @@ public class TestMongoQueries extends MongoTestBase {
 
   @Test
   public void testBooleanFilter() throws Exception {
-    String queryString = String.format(TEST_BOOLEAN_FILTER_QUERY_TEMPLATE1,
-        EMPLOYEE_DB, EMPINFO_COLLECTION);
-    runMongoSQLVerifyCount(queryString, 11);
-    queryString = String.format(TEST_BOOLEAN_FILTER_QUERY_TEMPLATE2,
-        EMPLOYEE_DB, EMPINFO_COLLECTION);
-    runMongoSQLVerifyCount(queryString, 8);
+    testBuilder()
+        .sqlQuery(String.format(TEST_BOOLEAN_FILTER_QUERY_TEMPLATE1, EMPLOYEE_DB, EMPINFO_COLLECTION))
+        .unOrdered()
+        .expectsNumRecords(11)
+        .go();
+
+    testBuilder()
+        .sqlQuery(String.format(TEST_BOOLEAN_FILTER_QUERY_TEMPLATE2, EMPLOYEE_DB, EMPINFO_COLLECTION))
+        .unOrdered()
+        .expectsNumRecords(8)
+        .go();
   }
 
   @Test
   public void testWithANDOperator() throws Exception {
-    String queryString = String.format(TEST_BOOLEAN_FILTER_QUERY_TEMPLATE3,
-        EMPLOYEE_DB, EMPINFO_COLLECTION);
-    runMongoSQLVerifyCount(queryString, 4);
+    testBuilder()
+        .sqlQuery(String.format(TEST_BOOLEAN_FILTER_QUERY_TEMPLATE3, EMPLOYEE_DB, EMPINFO_COLLECTION))
+        .unOrdered()
+        .expectsNumRecords(4)
+        .go();
   }
 
   @Test
   public void testWithOROperator() throws Exception {
-    String queryString = String.format(TEST_BOOLEAN_FILTER_QUERY_TEMPLATE3,
-        EMPLOYEE_DB, EMPINFO_COLLECTION);
-    runMongoSQLVerifyCount(queryString, 4);
+    testBuilder()
+        .sqlQuery(String.format(TEST_BOOLEAN_FILTER_QUERY_TEMPLATE3, EMPLOYEE_DB, EMPINFO_COLLECTION))
+        .unOrdered()
+        .expectsNumRecords(4)
+        .go();
   }
 
   @Test
   public void testResultCount() throws Exception {
-    String queryString = String.format(TEST_BOOLEAN_FILTER_QUERY_TEMPLATE4,
-        EMPLOYEE_DB, EMPINFO_COLLECTION);
-    runMongoSQLVerifyCount(queryString, 5);
+    testBuilder()
+        .sqlQuery(String.format(TEST_BOOLEAN_FILTER_QUERY_TEMPLATE4, EMPLOYEE_DB, EMPINFO_COLLECTION))
+        .unOrdered()
+        .expectsNumRecords(5)
+        .go();
   }
 
   @Test
   public void testUnShardedDBInShardedCluster() throws Exception {
-    String queryString = String.format(TEST_STAR_QUERY_UNSHARDED_DB,
-        DONUTS_DB, DONUTS_COLLECTION);
-    runMongoSQLVerifyCount(queryString, 5);
+    testBuilder()
+        .sqlQuery(String.format(TEST_STAR_QUERY_UNSHARDED_DB, DONUTS_DB, DONUTS_COLLECTION))
+        .unOrdered()
+        .expectsNumRecords(5)
+        .go();
   }
 
   @Test
   public void testEmptyCollection() throws Exception {
-    String queryString = String.format(TEST_STAR_QUERY_UNSHARDED_DB, EMPLOYEE_DB, EMPTY_COLLECTION);
-    runMongoSQLVerifyCount(queryString, 0);
+    testBuilder()
+        .sqlQuery(String.format(TEST_STAR_QUERY_UNSHARDED_DB, EMPLOYEE_DB, EMPTY_COLLECTION))
+        .unOrdered()
+        .expectsNumRecords(0)
+        .go();
   }
 
   @Test
   public void testUnShardedDBInShardedClusterWithProjectionAndFilter() throws Exception {
-    String queryString = String.format(TEST_STAR_QUERY_UNSHARDED_DB_PROJECT_FILTER,
-        DONUTS_DB, DONUTS_COLLECTION);
-    runMongoSQLVerifyCount(queryString, 2);
+    testBuilder()
+        .sqlQuery(String.format(TEST_STAR_QUERY_UNSHARDED_DB_PROJECT_FILTER, DONUTS_DB, DONUTS_COLLECTION))
+        .unOrdered()
+        .expectsNumRecords(2)
+        .go();
   }
 
   @Test
   public void testUnShardedDBInShardedClusterWithGroupByProjectionAndFilter() throws Exception {
-    String queryString = String.format(TEST_STAR_QUERY_UNSHARDED_DB_GROUP_PROJECT_FILTER,
-        DONUTS_DB, DONUTS_COLLECTION);
-    runMongoSQLVerifyCount(queryString, 5);
-  }
-
-  @Test
-  public void testPhysicalPlanSubmission() throws Exception {
-    String query = String.format(TEST_BOOLEAN_FILTER_QUERY_TEMPLATE1,
-        EMPLOYEE_DB, EMPINFO_COLLECTION);
-    testPhysicalPlanExecutionBasedOnQuery(query);
+    testBuilder()
+        .sqlQuery(String.format(TEST_STAR_QUERY_UNSHARDED_DB_GROUP_PROJECT_FILTER, DONUTS_DB, DONUTS_COLLECTION))
+        .unOrdered()
+        .expectsNumRecords(5)
+        .go();
   }
 }
diff --git a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestTableGenerator.java b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestTableGenerator.java
index 4f2c6c8..3ef4617 100644
--- a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestTableGenerator.java
+++ b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestTableGenerator.java
@@ -17,10 +17,11 @@
  */
 package org.apache.drill.exec.store.mongo;
 
+import java.io.File;
 import java.io.IOException;
+import java.net.URISyntaxException;
 
 import de.flapdoodle.embed.mongo.MongoImportProcess;
-import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -40,10 +41,9 @@ public class TestTableGenerator implements MongoTestConstants {
       .getLogger(TestTableGenerator.class);
 
   public static void importData(String dbName, String collectionName,
-      String fileName) throws InterruptedException,IOException {
-    String jsonFile = Resources.getResource(fileName).toString();
-    jsonFile = jsonFile.replaceFirst("file:", StringUtils.EMPTY);
-    generateTable(dbName, collectionName, jsonFile, true, true, false);
+                                String fileName) throws InterruptedException, IOException, URISyntaxException {
+    File jsonFile = new File(Resources.getResource(fileName).toURI());
+    generateTable(dbName, collectionName, jsonFile.getAbsolutePath(), true, true, false);
   }
 
   public static void generateTable(String dbName, String collection,
diff --git a/contrib/storage-opentsdb/src/main/resources/bootstrap-storage-plugins.json b/contrib/storage-opentsdb/src/main/resources/bootstrap-storage-plugins.json
index d1055c1..3c683d0 100644
--- a/contrib/storage-opentsdb/src/main/resources/bootstrap-storage-plugins.json
+++ b/contrib/storage-opentsdb/src/main/resources/bootstrap-storage-plugins.json
@@ -1,9 +1,9 @@
 {
   "storage": {
-    openTSDB: {
-      type: "openTSDB",
-      connection: "http://localhost:10000",
-      enabled: false
+    "openTSDB": {
+      "type": "openTSDB",
+      "connection": "http://localhost:10000",
+      "enabled": false
     }
   }
 }
diff --git a/exec/java-exec/src/main/java/org/apache/calcite/jdbc/DynamicRootSchema.java b/exec/java-exec/src/main/java/org/apache/calcite/jdbc/DynamicRootSchema.java
index 7de5d6a..744f8b5 100644
--- a/exec/java-exec/src/main/java/org/apache/calcite/jdbc/DynamicRootSchema.java
+++ b/exec/java-exec/src/main/java/org/apache/calcite/jdbc/DynamicRootSchema.java
@@ -44,12 +44,8 @@ import java.util.List;
 public class DynamicRootSchema extends DynamicSchema {
   private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(DynamicRootSchema.class);
 
-  protected SchemaConfig schemaConfig;
-  protected StoragePluginRegistry storages;
-
-  public StoragePluginRegistry getSchemaFactories() {
-    return storages;
-  }
+  private SchemaConfig schemaConfig;
+  private StoragePluginRegistry storages;
 
   /** Creates a root schema. */
   DynamicRootSchema(StoragePluginRegistry storages, SchemaConfig schemaConfig) {
@@ -78,11 +74,11 @@ public class DynamicRootSchema extends DynamicSchema {
    * @param schemaName the name of the schema
    * @param caseSensitive whether matching for the schema name is case sensitive
    */
-  public void loadSchemaFactory(String schemaName, boolean caseSensitive) {
+  private void loadSchemaFactory(String schemaName, boolean caseSensitive) {
     try {
       SchemaPlus schemaPlus = this.plus();
-      StoragePlugin plugin = getSchemaFactories().getPlugin(schemaName);
-      if (plugin != null && plugin.getConfig().isEnabled()) {
+      StoragePlugin plugin = storages.getPlugin(schemaName);
+      if (plugin != null) {
         plugin.registerSchemas(schemaConfig, schemaPlus);
         return;
       }
@@ -90,7 +86,7 @@ public class DynamicRootSchema extends DynamicSchema {
       // Could not find the plugin of schemaName. The schemaName could be `dfs.tmp`, a 2nd level schema under 'dfs'
       List<String> paths = SchemaUtilites.getSchemaPathAsList(schemaName);
       if (paths.size() == 2) {
-        plugin = getSchemaFactories().getPlugin(paths.get(0));
+        plugin = storages.getPlugin(paths.get(0));
         if (plugin == null) {
           return;
         }
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StorageResources.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StorageResources.java
index 7bce8f9..c3de7f5 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StorageResources.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StorageResources.java
@@ -49,8 +49,8 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.drill.common.exceptions.ExecutionSetupException;
 import org.apache.drill.common.logical.StoragePluginConfig;
 import org.apache.drill.exec.server.rest.DrillRestServer.UserAuthEnabled;
-import org.apache.drill.exec.store.StoragePlugin;
 import org.apache.drill.exec.store.StoragePluginRegistry;
+import org.apache.drill.exec.store.sys.PersistentStore;
 import org.glassfish.jersey.server.mvc.Viewable;
 
 import com.fasterxml.jackson.core.JsonParseException;
@@ -121,10 +121,9 @@ public class StorageResources {
   @Produces(MediaType.APPLICATION_JSON)
   public PluginConfigWrapper getPluginConfig(@PathParam("name") String name) {
     try {
-      // TODO: DRILL-6412: No need to get StoragePlugin. It is enough to have plugin name and config here
-      StoragePlugin plugin = storage.getPlugin(name);
-      if (plugin != null) {
-        return new PluginConfigWrapper(name, plugin.getConfig());
+      PersistentStore<StoragePluginConfig> configStorage = storage.getStore();
+      if (configStorage.contains(name)) {
+        return new PluginConfigWrapper(name, configStorage.get(name));
       }
     } catch (Exception e) {
       logger.error("Failure while trying to access storage config: {}", name, e);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/StoragePluginRegistryImpl.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/StoragePluginRegistryImpl.java
index 4718a20..23029ee 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/StoragePluginRegistryImpl.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/StoragePluginRegistryImpl.java
@@ -133,23 +133,17 @@ public class StoragePluginRegistryImpl implements StoragePluginRegistry {
       boolean done = false;
       try {
         if (oldPlugin != null) {
-          if (config.isEnabled()) {
-            done = enabledPlugins.replace(name, oldPlugin, newPlugin);
-          } else {
-            done = enabledPlugins.remove(name, oldPlugin);
-          }
-          if (done) {
-            closePlugin(oldPlugin);
-          }
-        } else if (config.isEnabled()) {
+          done = newPlugin == null
+              ? enabledPlugins.remove(name, oldPlugin)
+              : enabledPlugins.replace(name, oldPlugin, newPlugin);
+        } else if (newPlugin != null) {
           done = (null == enabledPlugins.putIfAbsent(name, newPlugin));
         } else {
           done = true;
         }
       } finally {
-        if (!done) {
-          closePlugin(newPlugin);
-        }
+        StoragePlugin pluginToClose = done ? oldPlugin : newPlugin;
+        closePlugin(pluginToClose);
       }
 
       if (done) {
@@ -511,17 +505,27 @@ public class StoragePluginRegistryImpl implements StoragePluginRegistry {
     enabledPlugins.putAll(activePlugins);
   }
 
+  /**
+   * Creates plugin instance with the given {@code name} and configuration {@code pluginConfig}.
+   * The plugin need to be present in a list of available plugins and be enabled in the configuration
+   *
+   * @param name name of the plugin
+   * @param pluginConfig plugin configuration
+   * @return plugin client or {@code null} if plugin is disabled
+   */
   private StoragePlugin create(String name, StoragePluginConfig pluginConfig) throws ExecutionSetupException {
-    // TODO: DRILL-6412: clients for storage plugins shouldn't be created, if storage plugin is disabled
-    // Creating of the StoragePlugin leads to instantiating storage clients
+    if (!pluginConfig.isEnabled()) {
+      return null;
+    }
+
     StoragePlugin plugin;
-    Constructor<? extends StoragePlugin> c = availablePlugins.get(pluginConfig.getClass());
-    if (c == null) {
+    Constructor<? extends StoragePlugin> constructor = availablePlugins.get(pluginConfig.getClass());
+    if (constructor == null) {
       throw new ExecutionSetupException(String.format("Failure finding StoragePlugin constructor for config %s",
           pluginConfig));
     }
     try {
-      plugin = c.newInstance(pluginConfig, context, name);
+      plugin = constructor.newInstance(pluginConfig, context, name);
       plugin.start();
       return plugin;
     } catch (ReflectiveOperationException | IOException e) {
diff --git a/exec/java-exec/src/main/resources/bootstrap-storage-plugins.json b/exec/java-exec/src/main/resources/bootstrap-storage-plugins.json
index afcf53d..75e363f 100644
--- a/exec/java-exec/src/main/resources/bootstrap-storage-plugins.json
+++ b/exec/java-exec/src/main/resources/bootstrap-storage-plugins.json
@@ -1,178 +1,166 @@
 {
-  "storage":{
-    "dfs": {
-      "type": "file",
-      "connection": "file:///",
-      "workspaces": {
+  "storage" : {
+    "dfs" : {
+      "type" : "file",
+      "connection" : "file:///",
+      "workspaces" : {
         "root" : {
-          "location": "/",
-          "writable": false,
-          "allowAccessOutsideWorkspace": false
+          "location" : "/",
+          "writable" : false,
+          "allowAccessOutsideWorkspace" : false
         },
         "tmp" : {
-          "location": "/tmp",
-          "writable": true,
-          "allowAccessOutsideWorkspace": false
+          "location" : "/tmp",
+          "writable" : true,
+          "allowAccessOutsideWorkspace" : false
         }
       },
-      "formats": {
+      "formats" : {
         "psv" : {
-          "type": "text",
-          "extensions": [ "tbl" ],
-          "delimiter": "|"
+          "type" : "text",
+          "extensions" : [ "tbl" ],
+          "delimiter" : "|"
         },
         "csv" : {
-          "type": "text",
-          "extensions": [ "csv" ],
-          "delimiter": ","
+          "type" : "text",
+          "extensions" : [ "csv" ],
+          "delimiter" : ","
         },
         "tsv" : {
-          "type": "text",
-          "extensions": [ "tsv" ],
-          "delimiter": "\t"
+          "type" : "text",
+          "extensions" : [ "tsv" ],
+          "delimiter" : "\t"
         },
         "httpd" : {
-          "type": "httpd",
-          "logFormat": "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"",
-          "timestampFormat": "dd/MMM/yyyy:HH:mm:ss ZZ"
+          "type" : "httpd",
+          "logFormat" : "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"",
+          "timestampFormat" : "dd/MMM/yyyy:HH:mm:ss ZZ"
         },
         "parquet" : {
-          "type": "parquet"
+          "type" : "parquet"
         },
         "json" : {
-          "type": "json",
-          "extensions": [ "json" ]
+          "type" : "json",
+          "extensions" : [ "json" ]
         },
         "pcap" : {
-          "type": "pcap"
+          "type" : "pcap"
         },
         "pcapng" : {
-          "type": "pcapng"
+          "type" : "pcapng"
         },
         "avro" : {
-          "type": "avro"
+          "type" : "avro"
         },
-        "sequencefile": {
-          "type": "sequencefile",
-          "extensions": [ "seq" ]
+        "sequencefile" : {
+          "type" : "sequencefile",
+          "extensions" : [ "seq" ]
         },
         "csvh" : {
-          "type": "text",
-          "extensions": [ "csvh" ],
-          "delimiter": ",",
-          "extractHeader": true
+          "type" : "text",
+          "extensions" : [ "csvh" ],
+          "delimiter" : ",",
+          "extractHeader" : true
         },
         "image" : {
-          "type": "image",
-          "extensions": [
-            "jpg", "jpeg", "jpe", "tif", "tiff", "dng", "psd", "png", "bmp", "gif",
-            "ico", "pcx", "wav", "wave", "avi", "webp", "mov", "mp4", "m4a", "m4p",
-            "m4b", "m4r", "m4v", "3gp", "3g2", "eps", "epsf", "epsi", "ai", "arw",
-            "crw", "cr2", "nef", "orf", "raf", "rw2", "rwl", "srw", "x3f"
-          ]
+          "type" : "image",
+          "extensions" : [ "jpg", "jpeg", "jpe", "tif", "tiff", "dng", "psd", "png", "bmp", "gif", "ico", "pcx", "wav", "wave", "avi", "webp", "mov", "mp4", "m4a", "m4p", "m4b", "m4r", "m4v", "3gp", "3g2", "eps", "epsf", "epsi", "ai", "arw", "crw", "cr2", "nef", "orf", "raf", "rw2", "rwl", "srw", "x3f" ]
         }
       },
       "enabled" : true
     },
-
-    "s3": {
-      "type": "file",
-      "connection": "s3a://my.bucket.location.com",
+    "s3" : {
+      "type" : "file",
+      "connection" : "s3a://my.bucket.location.com",
       "config" : {
-        "fs.s3a.access.key": "ID",
-        "fs.s3a.secret.key": "SECRET"
+        "fs.s3a.access.key" : "ID",
+        "fs.s3a.secret.key" : "SECRET"
       },
-      "workspaces": {
+      "workspaces" : {
         "root" : {
-          "location": "/",
-          "writable": false
+          "location" : "/",
+          "writable" : false
         },
         "tmp" : {
-          "location": "/tmp",
-          "writable": true
+          "location" : "/tmp",
+          "writable" : true
         }
       },
-      "formats": {
+      "formats" : {
         "psv" : {
-          "type": "text",
-          "extensions": [ "tbl" ],
-          "delimiter": "|"
+          "type" : "text",
+          "extensions" : [ "tbl" ],
+          "delimiter" : "|"
         },
         "csv" : {
-          "type": "text",
-          "extensions": [ "csv" ],
-          "delimiter": ","
+          "type" : "text",
+          "extensions" : [ "csv" ],
+          "delimiter" : ","
         },
         "tsv" : {
-          "type": "text",
-          "extensions": [ "tsv" ],
-          "delimiter": "\t"
+          "type" : "text",
+          "extensions" : [ "tsv" ],
+          "delimiter" : "\t"
         },
         "parquet" : {
-          "type": "parquet"
+          "type" : "parquet"
         },
         "json" : {
-          "type": "json",
-          "extensions": [ "json" ]
+          "type" : "json",
+          "extensions" : [ "json" ]
         },
         "avro" : {
-          "type": "avro"
+          "type" : "avro"
         },
-        "sequencefile": {
-          "type": "sequencefile",
-          "extensions": [ "seq" ]
+        "sequencefile" : {
+          "type" : "sequencefile",
+          "extensions" : [ "seq" ]
         },
         "csvh" : {
-          "type": "text",
-          "extensions": [ "csvh" ],
-          "delimiter": ",",
-          "extractHeader": true
+          "type" : "text",
+          "extensions" : [ "csvh" ],
+          "delimiter" : ",",
+          "extractHeader" : true
         }
       },
       "enabled" : false
     },
-
-    "cp": {
-      "type": "file",
-      "connection": "classpath:///",
-      "formats": {
+    "cp" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "formats" : {
         "csv" : {
-          "type": "text",
-          "extensions": [ "csv" ],
-          "delimiter": ","
+          "type" : "text",
+          "extensions" : [ "csv" ],
+          "delimiter" : ","
         },
         "tsv" : {
-                  "type": "text",
-                  "extensions": [ "tsv" ],
-                  "delimiter": "\t"
+          "type" : "text",
+          "extensions" : [ "tsv" ],
+          "delimiter" : "\t"
         },
         "json" : {
-          "type": "json",
-          "extensions": [ "json" ]
+          "type" : "json",
+          "extensions" : [ "json" ]
         },
         "parquet" : {
-          "type": "parquet"
+          "type" : "parquet"
         },
         "avro" : {
-          "type": "avro"
+          "type" : "avro"
         },
         "csvh" : {
-          "type": "text",
-          "extensions": [ "csvh" ],
-          "delimiter": ",",
-          "extractHeader": true
+          "type" : "text",
+          "extensions" : [ "csvh" ],
+          "delimiter" : ",",
+          "extractHeader" : true
         },
         "image" : {
-          "type": "image",
-          "extensions": [
-            "jpg", "jpeg", "jpe", "tif", "tiff", "dng", "psd", "png", "bmp", "gif",
-            "ico", "pcx", "wav", "wave", "avi", "webp", "mov", "mp4", "m4a", "m4p",
-            "m4b", "m4r", "m4v", "3gp", "3g2", "eps", "epsf", "epsi", "ai", "arw",
-            "crw", "cr2", "nef", "orf", "raf", "rw2", "rwl", "srw", "x3f"
-          ]
+          "type" : "image",
+          "extensions" : [ "jpg", "jpeg", "jpe", "tif", "tiff", "dng", "psd", "png", "bmp", "gif", "ico", "pcx", "wav", "wave", "avi", "webp", "mov", "mp4", "m4a", "m4p", "m4b", "m4r", "m4v", "3gp", "3g2", "eps", "epsf", "epsi", "ai", "arw", "crw", "cr2", "nef", "orf", "raf", "rw2", "rwl", "srw", "x3f" ]
         }
       },
       "enabled" : true
     }
   }
-}
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/store/TestDisabledPlugin.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/store/TestDisabledPlugin.java
index 0f31e57..c342e8f 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/store/TestDisabledPlugin.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/store/TestDisabledPlugin.java
@@ -31,6 +31,7 @@ import org.junit.experimental.categories.Category;
 
 import static org.apache.drill.exec.util.StoragePluginTestUtils.CP_PLUGIN_NAME;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -77,4 +78,9 @@ public class TestDisabledPlugin extends ClusterTest {
         e.getMessage().contains("VALIDATION ERROR: Schema"));
     }
   }
+
+  @Test
+  public void testDisabledPluginGet() throws Exception {
+    assertNull(pluginRegistry.getPlugin(CP_PLUGIN_NAME));
+  }
 }
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 35b200a..a824020 100644
--- a/exec/java-exec/src/test/resources/agg/hashagg/q6.json
+++ b/exec/java-exec/src/test/resources/agg/hashagg/q6.json
@@ -1,13 +1,13 @@
 {
-  head : {
-    version : 1,
-    generator : {
-      type : "optiq",
-      info : "na"
+  "head" : {
+    "version" : 1,
+    "generator" : {
+      "type" : "optiq",
+      "info" : "na"
     },
-    type : "APACHE_DRILL_PHYSICAL"
+    "type" : "APACHE_DRILL_PHYSICAL"
   },
-  graph : [ {
+  "graph" : [ {
     "pop" : "parquet-scan",
     "@id" : 1,
     "entries" : [ {
@@ -15,50 +15,51 @@
     } ],
     "storage" : {
       "type" : "file",
-      "connection" : "classpath:///"
+      "connection" : "classpath:///",
+      "enabled" : true
     },
     "format" : {
       "type" : "parquet"
     }
   }, {
-    pop : "project",
-    @id : 2,
-    exprs : [ {
-      ref : "$f0",
-      expr : "N_REGIONKEY"
+    "pop" : "project",
+    "@id" : 2,
+    "exprs" : [ {
+      "ref" : "$f0",
+      "expr" : "N_REGIONKEY"
     }, {
-      ref : "$f1",
-      expr : "N_NATIONKEY"
+      "ref" : "$f1",
+      "expr" : "N_NATIONKEY"
     } ],
-    child : 1
+    "child" : 1
   }, {
-    pop : "hash-aggregate",
-    @id : 3,
-    child : 2,
-    phase : "PHASE_1of1",
-    keys : [ {
-      ref : "$f0",
-      expr : "$f0"
+    "pop" : "hash-aggregate",
+    "@id" : 3,
+    "child" : 2,
+    "phase" : "PHASE_1of1",
+    "keys" : [ {
+      "ref" : "$f0",
+      "expr" : "$f0"
     } ],
-    exprs : [ {
-      ref : "SUM",
-      expr : "sum($f1) "
+    "exprs" : [ {
+      "ref" : "SUM",
+      "expr" : "sum($f1) "
     }, {
-      ref : "MIN",
-      expr : "min($f1) "
+      "ref" : "MIN",
+      "expr" : "min($f1) "
     }, {
-      ref : "MAX",
-      expr : "max($f1) "
+      "ref" : "MAX",
+      "expr" : "max($f1) "
     }, {
-      ref : "COUNT",
-      expr : "count($f1) "
+      "ref" : "COUNT",
+      "expr" : "count($f1) "
     }, {
-      ref : "AVG",
-      expr : "avg($f1) "
+      "ref" : "AVG",
+      "expr" : "avg($f1) "
     } ]
   }, {
-    pop : "screen",
-    @id : 4,
-    child : 3
+    "pop" : "screen",
+    "@id" : 4,
+    "child" : 3
   } ]
-}
+}
\ No newline at end of file
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 3494c79..c09fff2 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
@@ -1,13 +1,13 @@
 {
-  head : {
-    version : 1,
-    generator : {
-      type : "optiq",
-      info : "na"
+  "head" : {
+    "version" : 1,
+    "generator" : {
+      "type" : "optiq",
+      "info" : "na"
     },
-    type : "APACHE_DRILL_PHYSICAL"
+    "type" : "APACHE_DRILL_PHYSICAL"
   },
-  graph : [ {
+  "graph" : [ {
     "pop" : "parquet-scan",
     "@id" : 1,
     "entries" : [ {
@@ -15,44 +15,45 @@
     } ],
     "storage" : {
       "type" : "file",
-      "connection" : "classpath:///"
+      "connection" : "classpath:///",
+      "enabled" : true
     },
     "format" : {
       "type" : "parquet"
     }
   }, {
-    pop : "project",
-    @id : 2,
-    exprs : [ {
-      ref : "$f0",
-      expr : "N_REGIONKEY"
+    "pop" : "project",
+    "@id" : 2,
+    "exprs" : [ {
+      "ref" : "$f0",
+      "expr" : "N_REGIONKEY"
     }, {
-      ref : "$f1",
-      expr : "N_NATIONKEY"
+      "ref" : "$f1",
+      "expr" : "N_NATIONKEY"
     }, {
-      ref : "$f2",
-      expr : "N_NAME"
+      "ref" : "$f2",
+      "expr" : "N_NAME"
     } ],
-    child : 1
+    "child" : 1
   }, {
-    pop : "hash-aggregate",
-    @id : 3,
-    child : 2,
-    phase : "PHASE_1of1",
-    keys : [ {
-      ref : "$f0",
-      expr : "$f0"
+    "pop" : "hash-aggregate",
+    "@id" : 3,
+    "child" : 2,
+    "phase" : "PHASE_1of1",
+    "keys" : [ {
+      "ref" : "$f0",
+      "expr" : "$f0"
     }, {
-      ref : "$f2",
-      expr : "$f2"
+      "ref" : "$f2",
+      "expr" : "$f2"
     } ],
-    exprs : [ {
-      ref : "Y",
-      expr : "sum($f1) "
+    "exprs" : [ {
+      "ref" : "Y",
+      "expr" : "sum($f1) "
     } ]
   }, {
-    pop : "screen",
-    @id : 4,
-    child : 3
+    "pop" : "screen",
+    "@id" : 4,
+    "child" : 3
   } ]
-}
+}
\ No newline at end of file
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 f77c08b..20921ac 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
@@ -1,13 +1,13 @@
 {
-  head : {
-    version : 1,
-    generator : {
-      type : "optiq",
-      info : "na"
+  "head" : {
+    "version" : 1,
+    "generator" : {
+      "type" : "optiq",
+      "info" : "na"
     },
-    type : "APACHE_DRILL_PHYSICAL"
+    "type" : "APACHE_DRILL_PHYSICAL"
   },
-  graph : [ {
+  "graph" : [ {
     "pop" : "parquet-scan",
     "@id" : 1,
     "entries" : [ {
@@ -15,44 +15,45 @@
     } ],
     "storage" : {
       "type" : "file",
-      "connection" : "classpath:///"
+      "connection" : "classpath:///",
+      "enabled": true
     },
     "format" : {
       "type" : "parquet"
     }
   }, {
-    pop : "project",
-    @id : 2,
-    exprs : [ {
-      ref : "$f0",
-      expr : "N_REGIONKEY"
+    "pop" : "project",
+    "@id" : 2,
+    "exprs" : [ {
+      "ref" : "$f0",
+      "expr" : "N_REGIONKEY"
     }, {
-      ref : "$f1",
-      expr : "N_NAME"
+      "ref" : "$f1",
+      "expr" : "N_NAME"
     }, {
-      ref : "$f2",
-      expr : "N_NATIONKEY"
+      "ref" : "$f2",
+      "expr" : "N_NATIONKEY"
     } ],
-    child : 1
+    "child" : 1
   }, {
-    pop : "hash-aggregate",
-    @id : 3,
-    child : 2,
-    phase : "PHASE_1of1",
-    keys : [ {
-      ref : "$f0",
-      expr : "$f0"
+    "pop" : "hash-aggregate",
+    "@id" : 3,
+    "child" : 2,
+    "phase" : "PHASE_1of1",
+    "keys" : [ {
+      "ref" : "$f0",
+      "expr" : "$f0"
     }, {
-      ref : "$f1",
-      expr : "$f1"
+      "ref" : "$f1",
+      "expr" : "$f1"
     } ],
-    exprs : [ {
-      ref : "Y",
-      expr : "sum($f2) "
+    "exprs" : [ {
+      "ref" : "Y",
+      "expr" : "sum($f2) "
     } ]
   }, {
-    pop : "screen",
-    @id : 4,
-    child : 3
+    "pop" : "screen",
+    "@id" : 4,
+    "child" : 3
   } ]
-}
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/agg/hashagg/q7_3.json b/exec/java-exec/src/test/resources/agg/hashagg/q7_3.json
index 37ba0ad..a38e6e7 100644
--- a/exec/java-exec/src/test/resources/agg/hashagg/q7_3.json
+++ b/exec/java-exec/src/test/resources/agg/hashagg/q7_3.json
@@ -1,13 +1,13 @@
 {
-  head : {
-    version : 1,
-    generator : {
-      type : "optiq",
-      info : "na"
+  "head" : {
+    "version" : 1,
+    "generator" : {
+      "type" : "optiq",
+      "info" : "na"
     },
-    type : "APACHE_DRILL_PHYSICAL"
+    "type" : "APACHE_DRILL_PHYSICAL"
   },
-  graph : [ {
+  "graph" : [ {
     "pop" : "parquet-scan",
     "@id" : 1,
     "entries" : [ {
@@ -15,43 +15,44 @@
     } ],
     "storage" : {
       "type" : "file",
-      "connection" : "classpath:///"
+      "connection" : "classpath:///",
+      "enabled" : true
     },
     "format" : {
       "type" : "parquet"
     }
   }, {
-    pop : "project",
-    @id : 2,
-    exprs : [ {
-      ref : "$f0",
-      expr : "N_REGIONKEY"
+    "pop" : "project",
+    "@id" : 2,
+    "exprs" : [ {
+      "ref" : "$f0",
+      "expr" : "N_REGIONKEY"
     }, {
-      ref : "$f1",
-      expr : "N_NATIONKEY"
+      "ref" : "$f1",
+      "expr" : "N_NATIONKEY"
     }, {
-      ref : "$f2",
-      expr : "N_NAME"
+      "ref" : "$f2",
+      "expr" : "N_NAME"
     } ],
-    child : 1
+    "child" : 1
   }, {
-    pop : "hash-aggregate",
-    @id : 3,
-    child : 2,
-    phase : "PHASE_1of1",
-    keys : [ {
-      ref : "$f0",
-      expr : "$f0"
+    "pop" : "hash-aggregate",
+    "@id" : 3,
+    "child" : 2,
+    "phase" : "PHASE_1of1",
+    "keys" : [ {
+      "ref" : "$f0",
+      "expr" : "$f0"
     }, {
-      ref : "$f1",
-      expr : "$f1"
+      "ref" : "$f1",
+      "expr" : "$f1"
     }, {
-      ref : "$f2",
-      expr : "$f2 "
+      "ref" : "$f2",
+      "expr" : "$f2 "
     } ]
   }, {
-    pop : "screen",
-    @id : 4,
-    child : 3
+    "pop" : "screen",
+    "@id" : 4,
+    "child" : 3
   } ]
-}
+}
\ No newline at end of file
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 f67cd29..180ea9a 100644
--- a/exec/java-exec/src/test/resources/agg/hashagg/q8.json
+++ b/exec/java-exec/src/test/resources/agg/hashagg/q8.json
@@ -1,13 +1,13 @@
 {
-  head : {
-    version : 1,
-    generator : {
-      type : "optiq",
-      info : "na"
+  "head" : {
+    "version" : 1,
+    "generator" : {
+      "type" : "optiq",
+      "info" : "na"
     },
-    type : "APACHE_DRILL_PHYSICAL"
+    "type" : "APACHE_DRILL_PHYSICAL"
   },
-  graph : [ {
+  "graph" : [ {
     "pop" : "parquet-scan",
     "@id" : 1,
     "entries" : [ {
@@ -17,38 +17,39 @@
       "type" : "file",
       "connection" : "classpath:///",
       "workspaces" : null,
-      "formats" : null
+      "formats" : null,
+      "enabled" : true
     },
     "format" : {
       "type" : "parquet"
     }
   }, {
-    pop : "project",
-    @id : 2,
-    exprs : [ {
-      ref : "$f0",
-      expr : "O_CUSTKEY"
+    "pop" : "project",
+    "@id" : 2,
+    "exprs" : [ {
+      "ref" : "$f0",
+      "expr" : "O_CUSTKEY"
     }, {
-      ref : "$f1",
-      expr : "O_ORDERKEY"
+      "ref" : "$f1",
+      "expr" : "O_ORDERKEY"
     } ],
-    child : 1
+    "child" : 1
   }, {
-    pop : "hash-aggregate",
-    @id : 3,
-    child : 2,
-    phase : "PHASE_1of1",
-    keys : [ {
-      ref : "$f0",
-      expr : "$f0"
+    "pop" : "hash-aggregate",
+    "@id" : 3,
+    "child" : 2,
+    "phase" : "PHASE_1of1",
+    "keys" : [ {
+      "ref" : "$f0",
+      "expr" : "$f0"
     } ],
-    exprs : [ {
-      ref : "Y",
-      expr : "sum($f1) "
+    "exprs" : [ {
+      "ref" : "Y",
+      "expr" : "sum($f1) "
     } ]
   }, {
-    pop : "screen",
-    @id : 4,
-    child : 3
+    "pop" : "screen",
+    "@id" : 4,
+    "child" : 3
   } ]
-}
+}
\ No newline at end of file
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 73ce4be..0278e1f 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
@@ -1,13 +1,13 @@
 {
-  head : {
-    version : 1,
-    generator : {
-      type : "optiq",
-      info : "na"
+  "head" : {
+    "version" : 1,
+    "generator" : {
+      "type" : "optiq",
+      "info" : "na"
     },
-    type : "APACHE_DRILL_PHYSICAL"
+    "type" : "APACHE_DRILL_PHYSICAL"
   },
-  graph : [ {
+  "graph" : [ {
     "pop" : "parquet-scan",
     "@id" : 1,
     "entries" : [ {
@@ -15,60 +15,61 @@
     } ],
     "storage" : {
       "type" : "file",
-      "connection" : "classpath:///"
+      "connection" : "classpath:///",
+      "enabled" : true
     },
     "format" : {
       "type" : "parquet"
     }
   }, {
-    pop : "project",
-    @id : 2,
-    exprs : [ {
-      ref : "$f0",
-      expr : "O_CUSTKEY"
+    "pop" : "project",
+    "@id" : 2,
+    "exprs" : [ {
+      "ref" : "$f0",
+      "expr" : "O_CUSTKEY"
     }, {
-      ref : "$f1",
-      expr : "O_ORDERKEY"
+      "ref" : "$f1",
+      "expr" : "O_ORDERKEY"
     } ],
-    child : 1
+    "child" : 1
   }, {
-    pop : "hash-aggregate",
-    @id : 3,
-    child : 2,
-    phase : "PHASE_1of1",
-    keys : [ {
-      ref : "$f0",
-      expr : "$f0"
+    "pop" : "hash-aggregate",
+    "@id" : 3,
+    "child" : 2,
+    "phase" : "PHASE_1of1",
+    "keys" : [ {
+      "ref" : "$f0",
+      "expr" : "$f0"
     } ],
-    exprs : [ {
-      ref : "Y",
-      expr : "sum($f1) "
+    "exprs" : [ {
+      "ref" : "Y",
+      "expr" : "sum($f1) "
     } ]
   }, {
-   pop : "sort",
-    @id : 4,
-    child : 3,
-    orderings : [ {
-      order : "ASC",
-      expr : "$f0"
+    "pop" : "sort",
+    "@id" : 4,
+    "child" : 3,
+    "orderings" : [ {
+      "order" : "ASC",
+      "expr" : "$f0"
     }, {
-      order : "ASC",
-      expr : "Y"
+      "order" : "ASC",
+      "expr" : "Y"
     } ],
-    reverse : false
+    "reverse" : false
   }, {
-    pop : "selection-vector-remover",
-    @id : 5,
-    child : 4
+    "pop" : "selection-vector-remover",
+    "@id" : 5,
+    "child" : 4
   }, {
-    pop: "limit",
-    @id : 6,
-    child: 5,
-    first: 0,
-    last: 100
+    "pop" : "limit",
+    "@id" : 6,
+    "child" : 5,
+    "first" : 0,
+    "last" : 100
   }, {
-    pop : "screen",
-    @id : 7,
-    child : 6
+    "pop" : "screen",
+    "@id" : 7,
+    "child" : 6
   } ]
-}
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/common/test_hashtable1.json b/exec/java-exec/src/test/resources/common/test_hashtable1.json
index 7f0ccaa..39c47a5 100644
--- a/exec/java-exec/src/test/resources/common/test_hashtable1.json
+++ b/exec/java-exec/src/test/resources/common/test_hashtable1.json
@@ -1,40 +1,38 @@
 {
-    head:{
-        type:"APACHE_DRILL_PHYSICAL",
-        version:"1",
-        generator:{
-            type:"manual"
-        }
-    },
-  graph : [ {
-    pop : "parquet-scan",
-    @id : 1,
-    entries : [ {
-      path : "/tmp/parquet/nation.parquet"
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : "1",
+    "generator" : {
+      "type" : "manual"
+    }
+  },
+  "graph" : [ {
+    "pop" : "parquet-scan",
+    "@id" : 1,
+    "entries" : [ {
+      "path" : "/tmp/parquet/nation.parquet"
     } ],
-    storageengine : {
-      type : "parquet",
-      dfsName : "file:///"
+    "storageengine" : {
+      "type" : "parquet",
+      "dfsName" : "file:///",
+      "enabled": true
     },
-    ref : "_MAP",
-    fragmentPointer : 0
+    "ref" : "_MAP",
+    "fragmentPointer" : 0
   }, {
-    pop : "project",
-    @id : 2,
-    exprs : [ {
-      ref : "regionkey",
-      expr : "_MAP.N_REGIONKEY"
+    "pop" : "project",
+    "@id" : 2,
+    "exprs" : [ {
+      "ref" : "regionkey",
+      "expr" : "_MAP.N_REGIONKEY"
     }, {
-      ref : "nationkey",
-      expr : "_MAP.N_NATIONKEY"
+      "ref" : "nationkey",
+      "expr" : "_MAP.N_NATIONKEY"
     } ],
-    child : 1
+    "child" : 1
   }, {
-     @id: 3,
-     child: 2,
-     pop: "screen"
-   }
-  ]
-}
-
-
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/decimal/cast_decimal_float.json b/exec/java-exec/src/test/resources/decimal/cast_decimal_float.json
index af15504..1df37fe 100644
--- a/exec/java-exec/src/test/resources/decimal/cast_decimal_float.json
+++ b/exec/java-exec/src/test/resources/decimal/cast_decimal_float.json
@@ -1,45 +1,42 @@
 {
-  "head" : {
-    "version" : 1,
-    "generator" : {
-      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
-      "info" : ""
-    },
-    "type" : "APACHE_DRILL_PHYSICAL",
-    "resultMode" : "EXEC"
+  "head": {
+    "version": 1,
+    "generator": {"type": "org.apache.drill.exec.planner.logical.DrillImplementor", "info": ""},
+    "type": "APACHE_DRILL_PHYSICAL",
+    "resultMode": "EXEC"
   },
-  graph:[
+  "graph": [
+    {
+      "@id": 1,
+      "pop": "fs-scan",
+      "format": {"type": "json"},
+      "storage": {"type": "file", "connection": "classpath:///", "enabled": true},
+      "files": ["/input_simple_decimal.json"]
+    },
     {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["/input_simple_decimal.json"]
-    }, {
-      "pop" : "project",
-      "@id" : 2,
-      "exprs" : [
-        { "ref" : "DEC9_COL", "expr": "(cast(DEC9 as vardecimal(9, 4)))" },
-        { "ref" : "DEC38_COL", "expr": "(cast(DEC18 as vardecimal(38, 4)))" }
+      "pop": "project",
+      "@id": 2,
+      "exprs": [
+        {"ref": "DEC9_COL", "expr": "(cast(DEC9 as vardecimal(9, 4)))"},
+        {"ref": "DEC38_COL", "expr": "(cast(DEC18 as vardecimal(38, 4)))"}
       ],
-
-      "child" : 1
+      "child": 1
     },
     {
-      "pop" : "project",
-      "@id" : 4,
-      "exprs" : [
-        {"ref": "DEC9_FLOAT", "expr" : "cast(DEC9_COL as float4)"},
-        {"ref": "DEC38_FLOAT", "expr" : "cast(DEC38_COL as float4)"},
-        {"ref": "DEC9_DOUBLE", "expr" : "cast(DEC9_COL as float8)"},
-        {"ref": "DEC38_DOUBLE", "expr" : "cast(DEC38_COL as float8)"}
+      "pop": "project",
+      "@id": 4,
+      "exprs": [
+        {"ref": "DEC9_FLOAT", "expr": "cast(DEC9_COL as float4)"},
+        {"ref": "DEC38_FLOAT", "expr": "cast(DEC38_COL as float4)"},
+        {"ref": "DEC9_DOUBLE", "expr": "cast(DEC9_COL as float8)"},
+        {"ref": "DEC38_DOUBLE", "expr": "cast(DEC38_COL as float8)"}
       ],
-
-      "child" : 2
+      "child": 2
     },
     {
-      "pop" : "screen",
-      "@id" : 5,
-      "child" : 4
-    } ]
+      "pop": "screen",
+      "@id": 5,
+      "child": 4
+    }
+  ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/decimal/cast_decimal_int.json b/exec/java-exec/src/test/resources/decimal/cast_decimal_int.json
index 4e8b700..b518699 100644
--- a/exec/java-exec/src/test/resources/decimal/cast_decimal_int.json
+++ b/exec/java-exec/src/test/resources/decimal/cast_decimal_int.json
@@ -1,45 +1,42 @@
 {
-  "head" : {
-    "version" : 1,
-    "generator" : {
-      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
-      "info" : ""
-    },
-    "type" : "APACHE_DRILL_PHYSICAL",
-    "resultMode" : "EXEC"
+  "head": {
+    "version": 1,
+    "generator": {"type": "org.apache.drill.exec.planner.logical.DrillImplementor", "info": ""},
+    "type": "APACHE_DRILL_PHYSICAL",
+    "resultMode": "EXEC"
   },
-  graph:[
+  "graph": [
+    {
+      "@id": 1,
+      "pop": "fs-scan",
+      "format": {"type": "json"},
+      "storage": {"type": "file", "connection": "classpath:///", "enabled": true},
+      "files": ["/input_simple_decimal.json"]
+    },
     {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["/input_simple_decimal.json"]
-    }, {
-      "pop" : "project",
-      "@id" : 2,
-      "exprs" : [
-        { "ref" : "DEC9_COL", "expr": "(cast(cast(INT_COL as int) as vardecimal(10, 0)))" },
-        { "ref" : "DEC38_COL", "expr": "(cast(BIGINT_COL as vardecimal(38, 0)))" }
+      "pop": "project",
+      "@id": 2,
+      "exprs": [
+        {"ref": "DEC9_COL", "expr": "(cast(cast(INT_COL as int) as vardecimal(10, 0)))"},
+        {"ref": "DEC38_COL", "expr": "(cast(BIGINT_COL as vardecimal(38, 0)))"}
       ],
-
-      "child" : 1
+      "child": 1
     },
     {
-      "pop" : "project",
-      "@id" : 4,
-      "exprs" : [
-        {"ref": "DEC9_INT", "expr" : "cast(DEC9_COL as int)"},
-        {"ref": "DEC38_INT", "expr" : "cast(DEC38_COL as int)"},
-        {"ref": "DEC9_BIGINT", "expr" : "cast(DEC9_COL as bigint)"},
-        {"ref": "DEC38_BIGINT", "expr" : "cast(DEC38_COL as bigint)"}
+      "pop": "project",
+      "@id": 4,
+      "exprs": [
+        {"ref": "DEC9_INT", "expr": "cast(DEC9_COL as int)"},
+        {"ref": "DEC38_INT", "expr": "cast(DEC38_COL as int)"},
+        {"ref": "DEC9_BIGINT", "expr": "cast(DEC9_COL as bigint)"},
+        {"ref": "DEC38_BIGINT", "expr": "cast(DEC38_COL as bigint)"}
       ],
-
-      "child" : 2
+      "child": 2
     },
     {
-      "pop" : "screen",
-      "@id" : 5,
-      "child" : 4
-    } ]
+      "pop": "screen",
+      "@id": 5,
+      "child": 4
+    }
+  ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/decimal/cast_decimal_vardecimal.json b/exec/java-exec/src/test/resources/decimal/cast_decimal_vardecimal.json
index 4f79194..44dcb8a 100644
--- a/exec/java-exec/src/test/resources/decimal/cast_decimal_vardecimal.json
+++ b/exec/java-exec/src/test/resources/decimal/cast_decimal_vardecimal.json
@@ -1,56 +1,54 @@
 {
-  "head" : {
-    "version" : 1,
-    "generator" : {
-      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
-      "info" : ""
-    },
-    "type" : "APACHE_DRILL_PHYSICAL",
-    "resultMode" : "EXEC"
+  "head": {
+    "version": 1,
+    "generator": {"type": "org.apache.drill.exec.planner.logical.DrillImplementor", "info": ""},
+    "type": "APACHE_DRILL_PHYSICAL",
+    "resultMode": "EXEC"
+  }, "graph": [
+  {
+    "pop": "fs-scan",
+    "@id": 4,
+    "format": {"type": "json"},
+    "storage": {"type": "file", "connection": "classpath:///", "enabled": true},
+    "files": ["/input_complex_decimal.json"]
   },
-  "graph":[
-    {
-      "pop" : "fs-scan",
-      "@id" : 4,
-      "format": {"type": "json"},
-      "storage":{"type": "file", "connection": "classpath:///"},
-      "files":["/input_complex_decimal.json"]
-    }, {
-      "pop" : "project",
-      "@id" : 3,
-      "exprs" : [
-        { "ref" : "DEC28", "expr": "(cast(B as vardecimal(38, 20)))" },
-        { "ref" : "DEC38", "expr": "(cast(A as vardecimal(28, 16)))" },
-        { "ref" : "DEC18", "expr": "(cast(B as vardecimal(19, 0)))" },
-        { "ref" : "DEC9", "expr": "(cast(A as vardecimal(10, 0)))" }
-      ],
-
-      "child" : 4
-    }, {
-      "pop" : "project",
-      "@id" : 2,
-      "exprs" : [
-        {"ref": "DEC28_COL", "expr" : "cast(DEC28 as decimal38sparse(38, 20))"},
-        {"ref": "DEC38_COL", "expr" : "cast(DEC38 as decimal28sparse(28, 16))"},
-        {"ref": "DEC18_COL", "expr" : "cast(DEC18 as decimal18(19, 0))"},
-        {"ref": "DEC9_COL", "expr" : "cast(DEC9 as decimal9(10, 0))"}
-      ],
-
-      "child" : 3
-    }, {
-      "pop" : "project",
-      "@id" : 1,
-      "exprs" : [
-        {"ref": "DEC28_COL", "expr" : "cast(DEC28_COL as decimal38sparse(38, 16))"},
-        {"ref": "DEC38_COL", "expr" : "cast(DEC38_COL as decimal28sparse(28, 16))"},
-        {"ref": "DEC18_COL", "expr" : "cast(DEC18_COL as decimal18(18, 0))"},
-        {"ref": "DEC9_COL", "expr" : "cast(DEC9_COL as decimal9(9, 0))"}
-      ],
-
-      "child" : 2
-    }, {
-      "pop" : "screen",
-      "@id" : 0,
-      "child" : 1
-    } ]
-}
+  {
+    "pop": "project",
+    "@id": 3,
+    "exprs": [
+      {"ref": "DEC28", "expr": "(cast(B as vardecimal(38, 20)))"},
+      {"ref": "DEC38", "expr": "(cast(A as vardecimal(28, 16)))"},
+      {"ref": "DEC18", "expr": "(cast(B as vardecimal(19, 0)))"},
+      {"ref": "DEC9", "expr": "(cast(A as vardecimal(10, 0)))"}
+    ],
+    "child": 4
+  },
+  {
+    "pop": "project",
+    "@id": 2,
+    "exprs": [
+      {"ref": "DEC28_COL", "expr": "cast(DEC28 as decimal38sparse(38, 20))"},
+      {"ref": "DEC38_COL", "expr": "cast(DEC38 as decimal28sparse(28, 16))"},
+      {"ref": "DEC18_COL", "expr": "cast(DEC18 as decimal18(19, 0))"},
+      {"ref": "DEC9_COL", "expr": "cast(DEC9 as decimal9(10, 0))"}
+    ],
+    "child": 3
+  },
+  {
+    "pop": "project",
+    "@id": 1,
+    "exprs": [
+      {"ref": "DEC28_COL", "expr": "cast(DEC28_COL as decimal38sparse(38, 16))"},
+      {"ref": "DEC38_COL", "expr": "cast(DEC38_COL as decimal28sparse(28, 16))"},
+      {"ref": "DEC18_COL", "expr": "cast(DEC18_COL as decimal18(18, 0))"},
+      {"ref": "DEC9_COL", "expr": "cast(DEC9_COL as decimal9(9, 0))"}
+    ],
+    "child": 2
+  },
+  {
+    "pop": "screen",
+    "@id": 0,
+    "child": 1
+  }
+]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/decimal/cast_float_decimal.json b/exec/java-exec/src/test/resources/decimal/cast_float_decimal.json
index e8f318a..04906d7 100644
--- a/exec/java-exec/src/test/resources/decimal/cast_float_decimal.json
+++ b/exec/java-exec/src/test/resources/decimal/cast_float_decimal.json
@@ -1,47 +1,37 @@
 {
-  "head" : {
-    "version" : 1,
-    "generator" : {
-      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
-      "info" : ""
-    },
-    "type" : "APACHE_DRILL_PHYSICAL",
-    "resultMode" : "EXEC"
+  "head": {
+    "version": 1,
+    "generator": {"type": "org.apache.drill.exec.planner.logical.DrillImplementor", "info": ""},
+    "type": "APACHE_DRILL_PHYSICAL",
+    "resultMode": "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  }, {
-    "pop" : "project",
-    "@id" : 2,
-    "exprs" : [ {
-      "ref" : "F4",
-      "expr" : " (cast(DEC9 as float4)) "
+  "graph": [
+    {
+      "@id": 1,
+      "pop": "fs-scan",
+      "format": {"type": "json"},
+      "storage": {"type": "file", "connection": "classpath:///", "enabled": true},
+      "files": ["#{TEST_FILE}"]
     },
-    { "ref" : "F8", "expr": "(cast(DEC18 as float8))" }
-    ],
-
-    "child" : 1
-  },
-{
-    "pop" : "project",
-    "@id" : 4,
-    "exprs" : [ {
-      "ref" : "DECIMAL_9",
-      "expr" : " cast(F4 as vardecimal(9, 4))  "
+    {
+      "pop": "project",
+      "@id": 2,
+      "exprs": [{"ref": "F4", "expr": " (cast(DEC9 as float4)) "}, {"ref": "F8", "expr": "(cast(DEC18 as float8))"}],
+      "child": 1
     },
-    {"ref": "DECIMAL38", "expr" : "cast(F8 as vardecimal(38, 4))"}
-    ],
-
-    "child" : 2
-  },
-{
-    "pop" : "screen",
-    "@id" : 5,
-    "child" : 4
-  } ]
+    {
+      "pop": "project",
+      "@id": 4,
+      "exprs": [
+        {"ref": "DECIMAL_9", "expr": " cast(F4 as vardecimal(9, 4))  "},
+        {"ref": "DECIMAL38", "expr": "cast(F8 as vardecimal(38, 4))"}
+      ],
+      "child": 2
+    },
+    {
+      "pop": "screen",
+      "@id": 5,
+      "child": 4
+    }
+  ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/decimal/cast_int_decimal.json b/exec/java-exec/src/test/resources/decimal/cast_int_decimal.json
index 0ea7076..b4ceea8 100644
--- a/exec/java-exec/src/test/resources/decimal/cast_int_decimal.json
+++ b/exec/java-exec/src/test/resources/decimal/cast_int_decimal.json
@@ -1,45 +1,42 @@
 {
-  "head" : {
-    "version" : 1,
-    "generator" : {
-      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
-      "info" : ""
-    },
-    "type" : "APACHE_DRILL_PHYSICAL",
-    "resultMode" : "EXEC"
+  "head": {
+    "version": 1,
+    "generator": {"type": "org.apache.drill.exec.planner.logical.DrillImplementor", "info": ""},
+    "type": "APACHE_DRILL_PHYSICAL",
+    "resultMode": "EXEC"
   },
-  graph:[
+  "graph": [
+    {
+      "@id": 1,
+      "pop": "fs-scan",
+      "format": {"type": "json"},
+      "storage": {"type": "file", "connection": "classpath:///", "enabled": true},
+      "files": ["/input_simple_decimal.json"]
+    },
     {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["/input_simple_decimal.json"]
-    }, {
-      "pop" : "project",
-      "@id" : 2,
-      "exprs" : [
-        { "ref" : "INT_COL", "expr": "(cast(INT_COL as int))" },
-        { "ref" : "BIGINT_COL", "expr": "(cast(BIGINT_COL as bigint))" }
+      "pop": "project",
+      "@id": 2,
+      "exprs": [
+        {"ref": "INT_COL", "expr": "(cast(INT_COL as int))"},
+        {"ref": "BIGINT_COL", "expr": "(cast(BIGINT_COL as bigint))"}
       ],
-
-      "child" : 1
+      "child": 1
     },
     {
-      "pop" : "project",
-      "@id" : 4,
-      "exprs" : [
-        {"ref": "DEC9_INT", "expr" : "cast(INT_COL as vardecimal(10, 0))"},
-        {"ref": "DEC38_INT", "expr" : "cast(INT_COL as vardecimal(38, 0))"},
-        {"ref": "DEC9_BIGINT", "expr" : "cast(BIGINT_COL as vardecimal(19, 0))"},
-        {"ref": "DEC38_BIGINT", "expr" : "cast(BIGINT_COL as vardecimal(38, 0))"}
+      "pop": "project",
+      "@id": 4,
+      "exprs": [
+        {"ref": "DEC9_INT", "expr": "cast(INT_COL as vardecimal(10, 0))"},
+        {"ref": "DEC38_INT", "expr": "cast(INT_COL as vardecimal(38, 0))"},
+        {"ref": "DEC9_BIGINT", "expr": "cast(BIGINT_COL as vardecimal(19, 0))"},
+        {"ref": "DEC38_BIGINT", "expr": "cast(BIGINT_COL as vardecimal(38, 0))"}
       ],
-
-      "child" : 2
+      "child": 2
     },
     {
-      "pop" : "screen",
-      "@id" : 5,
-      "child" : 4
-    } ]
+      "pop": "screen",
+      "@id": 5,
+      "child": 4
+    }
+  ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/decimal/cast_simple_decimal.json b/exec/java-exec/src/test/resources/decimal/cast_simple_decimal.json
index 53ff360..4551ffb 100644
--- a/exec/java-exec/src/test/resources/decimal/cast_simple_decimal.json
+++ b/exec/java-exec/src/test/resources/decimal/cast_simple_decimal.json
@@ -1,47 +1,40 @@
 {
-  "head" : {
-    "version" : 1,
-    "generator" : {
-      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
-      "info" : ""
-    },
-    "type" : "APACHE_DRILL_PHYSICAL",
-    "resultMode" : "EXEC"
+  "head": {
+    "version": 1,
+    "generator": {"type": "org.apache.drill.exec.planner.logical.DrillImplementor", "info": ""},
+    "type": "APACHE_DRILL_PHYSICAL",
+    "resultMode": "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  }, {
-    "pop" : "project",
-    "@id" : 2,
-    "exprs" : [ {
-      "ref" : "DECIMAL_9",
-      "expr" : " (cast(DEC9 as vardecimal(9, 4))) "
+  "graph": [
+    {
+      "@id": 1,
+      "pop": "fs-scan",
+      "format": {"type": "json"},
+      "storage": {"type": "file", "connection": "classpath:///", "enabled": true},
+      "files": ["#{TEST_FILE}"]
     },
-    { "ref" : "DECIMAL_18", "expr": "(cast(DEC18 as vardecimal(18, 9)))" }
-    ],
-
-    "child" : 1
-  },
-{
-    "pop" : "project",
-    "@id" : 4,
-    "exprs" : [ {
-      "ref" : "DECIMAL_9",
-      "expr" : " cast(DECIMAL_9 as varchar(100))  "
+    {
+      "pop": "project",
+      "@id": 2,
+      "exprs": [
+        {"ref": "DECIMAL_9", "expr": " (cast(DEC9 as vardecimal(9, 4))) "},
+        {"ref": "DECIMAL_18", "expr": "(cast(DEC18 as vardecimal(18, 9)))"}
+      ],
+      "child": 1
     },
-    {"ref": "DECIMAL_18", "expr" : "cast(DECIMAL_18 as varchar(100))"}
-    ],
-
-    "child" : 2
-  },
-{
-    "pop" : "screen",
-    "@id" : 5,
-    "child" : 4
-  } ]
+    {
+      "pop": "project",
+      "@id": 4,
+      "exprs": [
+        {"ref": "DECIMAL_9", "expr": " cast(DECIMAL_9 as varchar(100))  "},
+        {"ref": "DECIMAL_18", "expr": "cast(DECIMAL_18 as varchar(100))"}
+      ],
+      "child": 2
+    },
+    {
+      "pop": "screen",
+      "@id": 5,
+      "child": 4
+    }
+  ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/decimal/cast_vardecimal_decimal.json b/exec/java-exec/src/test/resources/decimal/cast_vardecimal_decimal.json
index 1b5252d..fdd67d0 100644
--- a/exec/java-exec/src/test/resources/decimal/cast_vardecimal_decimal.json
+++ b/exec/java-exec/src/test/resources/decimal/cast_vardecimal_decimal.json
@@ -1,47 +1,44 @@
 {
-  "head" : {
-    "version" : 1,
-    "generator" : {
-      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
-      "info" : ""
-    },
-    "type" : "APACHE_DRILL_PHYSICAL",
-    "resultMode" : "EXEC"
+  "head": {
+    "version": 1,
+    "generator": {"type": "org.apache.drill.exec.planner.logical.DrillImplementor", "info": ""},
+    "type": "APACHE_DRILL_PHYSICAL",
+    "resultMode": "EXEC"
   },
-  graph:[
+  "graph": [
+    {
+      "@id": 1,
+      "pop": "fs-scan",
+      "format": {"type": "json"},
+      "storage": {"type": "file", "connection": "classpath:///", "enabled": true},
+      "files": ["/input_complex_decimal.json"]
+    },
     {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["/input_complex_decimal.json"]
-    }, {
-      "pop" : "project",
-      "@id" : 2,
-      "exprs" : [
-        { "ref" : "DEC28", "expr": "(cast(B as vardecimal(38, 16)))" },
-        { "ref" : "DEC38", "expr": "(cast(A as vardecimal(28, 16)))" },
-        { "ref" : "DEC18", "expr": "(cast(B as vardecimal(18, 0)))" },
-        { "ref" : "DEC9", "expr": "(cast(A as vardecimal(10, 0)))" }
+      "pop": "project",
+      "@id": 2,
+      "exprs": [
+        {"ref": "DEC28", "expr": "(cast(B as vardecimal(38, 16)))"},
+        {"ref": "DEC38", "expr": "(cast(A as vardecimal(28, 16)))"},
+        {"ref": "DEC18", "expr": "(cast(B as vardecimal(18, 0)))"},
+        {"ref": "DEC9", "expr": "(cast(A as vardecimal(10, 0)))"}
       ],
-
-      "child" : 1
+      "child": 1
     },
     {
-      "pop" : "project",
-      "@id" : 4,
-      "exprs" : [
-        {"ref": "DEC28_COL", "expr" : "cast(DEC28 as decimal38sparse(38, 16))"},
-        {"ref": "DEC38_COL", "expr" : "cast(DEC38 as decimal28sparse(28, 16))"},
-        {"ref": "DEC18_COL", "expr" : "cast(DEC18 as decimal18(18, 0))"},
-        {"ref": "DEC9_COL", "expr" : "cast(DEC9 as decimal9(10, 0))"}
+      "pop": "project",
+      "@id": 4,
+      "exprs": [
+        {"ref": "DEC28_COL", "expr": "cast(DEC28 as decimal38sparse(38, 16))"},
+        {"ref": "DEC38_COL", "expr": "cast(DEC38 as decimal28sparse(28, 16))"},
+        {"ref": "DEC18_COL", "expr": "cast(DEC18 as decimal18(18, 0))"},
+        {"ref": "DEC9_COL", "expr": "cast(DEC9 as decimal9(10, 0))"}
       ],
-
-      "child" : 2
+      "child": 2
     },
     {
-      "pop" : "screen",
-      "@id" : 5,
-      "child" : 4
-    } ]
-}
+      "pop": "screen",
+      "@id": 5,
+      "child": 4
+    }
+  ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/decimal/simple_decimal_arithmetic.json b/exec/java-exec/src/test/resources/decimal/simple_decimal_arithmetic.json
index c774230..98fcd55 100644
--- a/exec/java-exec/src/test/resources/decimal/simple_decimal_arithmetic.json
+++ b/exec/java-exec/src/test/resources/decimal/simple_decimal_arithmetic.json
@@ -1,55 +1,51 @@
 {
-  "head" : {
-    "version" : 1,
-    "generator" : {
-      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
-      "info" : ""
-    },
-    "type" : "APACHE_DRILL_PHYSICAL",
-    "resultMode" : "EXEC"
+  "head": {
+    "version": 1,
+    "generator": {"type": "org.apache.drill.exec.planner.logical.DrillImplementor", "info": ""},
+    "type": "APACHE_DRILL_PHYSICAL",
+    "resultMode": "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  },  {
-          "pop" : "project",
-          "@id" : 2,
-          "exprs" : [
-          { "ref" : "DECIMAL18_1", "expr": "(cast(DEC18 as vardecimal(18, 1)))" },
-          { "ref" : "DECIMAL18_2", "expr": "(cast(DEC9 as vardecimal(18, 1)))" }
-          ],
-
-          "child" : 1
-        },
-        {
-          "pop" : "project",
-          "@id" : 3,
-          "exprs" : [
-          { "ref": "DEC18ADD", "expr" : "DECIMAL18_1 + DECIMAL18_2"},
-          { "ref": "DEC18SUB", "expr" : "DECIMAL18_1 - DECIMAL18_2"},
-          { "ref": "DEC18MUL", "expr" : "DECIMAL18_1 * DECIMAL18_2"}
-          ],
-
-          "child" : 2
-        },
-      {
-          "pop" : "project",
-          "@id" : 4,
-          "exprs" : [
-          {"ref": "DECIMAL18ADD", "expr" : "cast(DEC18ADD as varchar(100))" },
-          {"ref": "DECIMAL18SUB", "expr" : "cast(DEC18SUB as varchar(100))" },
-          {"ref": "DECIMAL18MUL", "expr" : "cast(DEC18MUL as varchar(100))" }
-          ],
-
-          "child" : 3
-        },
-      {
-          "pop" : "screen",
-          "@id" : 5,
-          "child" : 4
-        } ]
-      }
+  "graph": [
+    {
+      "@id": 1,
+      "pop": "fs-scan",
+      "format": {"type": "json"},
+      "storage": {"type": "file", "connection": "classpath:///", "enabled": true},
+      "files": ["#{TEST_FILE}"]
+    },
+    {
+      "pop": "project",
+      "@id": 2,
+      "exprs": [
+        {"ref": "DECIMAL18_1", "expr": "(cast(DEC18 as vardecimal(18, 1)))"},
+        {"ref": "DECIMAL18_2", "expr": "(cast(DEC9 as vardecimal(18, 1)))"}
+      ],
+      "child": 1
+    },
+    {
+      "pop": "project",
+      "@id": 3,
+      "exprs": [
+        {"ref": "DEC18ADD", "expr": "DECIMAL18_1 + DECIMAL18_2"},
+        {"ref": "DEC18SUB", "expr": "DECIMAL18_1 - DECIMAL18_2"},
+        {"ref": "DEC18MUL", "expr": "DECIMAL18_1 * DECIMAL18_2"}
+      ],
+      "child": 2
+    },
+    {
+      "pop": "project",
+      "@id": 4,
+      "exprs": [
+        {"ref": "DECIMAL18ADD", "expr": "cast(DEC18ADD as varchar(100))"},
+        {"ref": "DECIMAL18SUB", "expr": "cast(DEC18SUB as varchar(100))"},
+        {"ref": "DECIMAL18MUL", "expr": "cast(DEC18MUL as varchar(100))"}
+      ],
+      "child": 3
+    },
+    {
+      "pop": "screen",
+      "@id": 5,
+      "child": 4
+    }
+  ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/decimal/simple_decimal_math.json b/exec/java-exec/src/test/resources/decimal/simple_decimal_math.json
index f7eb7f2..36e84e9 100644
--- a/exec/java-exec/src/test/resources/decimal/simple_decimal_math.json
+++ b/exec/java-exec/src/test/resources/decimal/simple_decimal_math.json
@@ -1,41 +1,34 @@
 {
-  "head" : {
-    "version" : 1,
-    "generator" : {
-      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
-      "info" : ""
-    },
-    "type" : "APACHE_DRILL_PHYSICAL",
-    "resultMode" : "EXEC"
-  },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  }, {
-    "pop" : "project",
-    "@id" : 2,
-    "exprs" : [
-    { "ref" : "DECIMAL_18", "expr": "log((cast(DEC18 as vardecimal(18, 9))))" }
-    ],
-
-    "child" : 1
-  },
-{
-    "pop" : "project",
-    "@id" : 4,
-    "exprs" : [
-    {"ref": "DECIMAL_18", "expr" : "cast(DECIMAL_18 as varchar(100))"}
-    ],
-
-    "child" : 2
+  "head": {
+    "version": 1,
+    "generator": {"type": "org.apache.drill.exec.planner.logical.DrillImplementor", "info": ""},
+    "type": "APACHE_DRILL_PHYSICAL",
+    "resultMode": "EXEC"
   },
-{
-    "pop" : "screen",
-    "@id" : 5,
-    "child" : 4
-  } ]
+  "graph": [
+    {
+      "@id": 1,
+      "pop": "fs-scan",
+      "format": {"type": "json"},
+      "storage": {"type": "file", "connection": "classpath:///", "enabled": true},
+      "files": ["#{TEST_FILE}"]
+    },
+    {
+      "pop": "project",
+      "@id": 2,
+      "exprs": [{"ref": "DECIMAL_18", "expr": "log((cast(DEC18 as vardecimal(18, 9))))"}],
+      "child": 1
+    },
+    {
+      "pop": "project",
+      "@id": 4,
+      "exprs": [{"ref": "DECIMAL_18", "expr": "cast(DECIMAL_18 as varchar(100))"}],
+      "child": 2
+    },
+    {
+      "pop": "screen",
+      "@id": 5,
+      "child": 4
+    }
+  ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/decimal/test_decimal_complex.json b/exec/java-exec/src/test/resources/decimal/test_decimal_complex.json
index f341421..85ef0ed 100644
--- a/exec/java-exec/src/test/resources/decimal/test_decimal_complex.json
+++ b/exec/java-exec/src/test/resources/decimal/test_decimal_complex.json
@@ -1,59 +1,46 @@
 {
-  "head" : {
-    "version" : 1,
-    "generator" : {
-      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
-      "info" : ""
-    },
-    "type" : "APACHE_DRILL_PHYSICAL",
-    "resultMode" : "EXEC"
+  "head": {
+    "version": 1,
+    "generator": {"type": "org.apache.drill.exec.planner.logical.DrillImplementor", "info": ""},
+    "type": "APACHE_DRILL_PHYSICAL",
+    "resultMode": "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  },{
-        "pop" : "project",
-        "@id" : 2,
-        "exprs" : [ {
-          "ref" : "DE",
-          "expr" : " (cast(B as vardecimal(28, 9))) "
-        },
-        {"ref" : "DE1", "expr": " cast(A as vardecimal(15, 6))" }
-        ],
-
-        "child" : 1
-      },
+  "graph": [
+    {
+      "@id": 1,
+      "pop": "fs-scan",
+      "format": {"type": "json"},
+      "storage": {"type": "file", "connection": "classpath:///", "enabled": true},
+      "files": ["#{TEST_FILE}"]
+    },
     {
-        "pop" : "project",
-        "@id" : 3,
-        "exprs" : [ {
-          "ref" : "DEC38ADD",
-          "expr" : " (DE + DE1)  "
-        },
-        {"ref" : "DEC38SUB" , "expr" : " (DE - DE1) " }
-        ],
-
-        "child" : 2
-      },
+      "pop": "project",
+      "@id": 2,
+      "exprs": [
+        {"ref": "DE", "expr": " (cast(B as vardecimal(28, 9))) "},
+        {"ref": "DE1", "expr": " cast(A as vardecimal(15, 6))"}
+      ],
+      "child": 1
+    },
     {
-        "pop" : "project",
-        "@id" : 4,
-        "exprs" : [ {
-          "ref" : "DEC38ADD",
-          "expr" : " cast(DEC38ADD as varchar(100))  "
-        },
-        {"ref" : "DEC38SUB" , "expr" : " cast(DEC38SUB as varchar(100)) " }
-        ],
-
-        "child" : 3
-      },
+      "pop": "project",
+      "@id": 3,
+      "exprs": [{"ref": "DEC38ADD", "expr": " (DE + DE1)  "}, {"ref": "DEC38SUB", "expr": " (DE - DE1) "}],
+      "child": 2
+    },
+    {
+      "pop": "project",
+      "@id": 4,
+      "exprs": [
+        {"ref": "DEC38ADD", "expr": " cast(DEC38ADD as varchar(100))  "},
+        {"ref": "DEC38SUB", "expr": " cast(DEC38SUB as varchar(100)) "}
+      ],
+      "child": 3
+    },
     {
-        "pop" : "screen",
-        "@id" : 5,
-        "child" : 4
-      } ]
-    }
\ No newline at end of file
+      "pop": "screen",
+      "@id": 5,
+      "child": 4
+    }
+  ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/decimal/test_decimal_dense_sparse.json b/exec/java-exec/src/test/resources/decimal/test_decimal_dense_sparse.json
index bc10f50..31db7fb 100644
--- a/exec/java-exec/src/test/resources/decimal/test_decimal_dense_sparse.json
+++ b/exec/java-exec/src/test/resources/decimal/test_decimal_dense_sparse.json
@@ -1,78 +1,57 @@
 {
-  "head" : {
-    "version" : 1,
-    "generator" : {
-      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
-      "info" : ""
-    },
-    "type" : "APACHE_DRILL_PHYSICAL",
-    "resultMode" : "EXEC"
-  },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  }, {
-
-    "pop" : "project",
-    "@id" : 2,
-    "exprs" : [ {
-      "ref" : "SPARSE",
-      "expr" : " (cast(B as decimal38sparse(38, 12))) "
-    }
-    ],
-
-    "child" : 1
+  "head": {
+    "version": 1,
+    "generator": {"type": "org.apache.drill.exec.planner.logical.DrillImplementor", "info": ""},
+    "type": "APACHE_DRILL_PHYSICAL",
+    "resultMode": "EXEC"
   },
-{
-    "pop" : "project",
-    "@id" : 3,
-    "exprs" : [ {
-      "ref" : "DENSE",
-      "expr" : " cast(SPARSE as decimal38dense(38, 12))  "
+  "graph": [
+    {
+      "@id": 1,
+      "pop": "fs-scan",
+      "format": {"type": "json"},
+      "storage": {"type": "file", "connection": "classpath:///", "enabled": true},
+      "files": ["#{TEST_FILE}"]
+    },
+    {
+      "pop": "project",
+      "@id": 2,
+      "exprs": [{"ref": "SPARSE", "expr": " (cast(B as decimal38sparse(38, 12))) "}],
+      "child": 1
+    },
+    {
+      "pop": "project",
+      "@id": 3,
+      "exprs": [{"ref": "DENSE", "expr": " cast(SPARSE as decimal38dense(38, 12))  "}],
+      "child": 2
+    },
+    {
+      "@id": 4,
+      "child": 3,
+      "pop": "sort",
+      "orderings": [{"expr": "DENSE"}],
+    },
+    {
+      "@id": 5,
+      "child": 4,
+      "pop": "selection-vector-remover",
+    },
+    {
+      "pop": "project",
+      "@id": 6,
+      "exprs": [{"ref": "SPARSE", "expr": "cast(DENSE as decimal38sparse(38, 12))"}],
+      "child": 5
+    },
+    {
+      "pop": "project",
+      "@id": 7,
+      "exprs": [{"ref": "STRINGSPARSE", "expr": "cast(SPARSE as varchar(100))"}],
+      "child": 6
+    },
+    {
+      "pop": "screen",
+      "@id": 8,
+      "child": 7
     }
-    ],
-
-    "child" : 2
-  },
-{
-            @id:4,
-            child: 3,
-            pop:"sort",
-            orderings: [
-              {expr: "DENSE"}
-            ]
-        },
-        {
-            @id:5,
-            child: 4,
-            pop:"selection-vector-remover"
-        },
-{
-    "pop" : "project",
-    "@id" : 6,
-    "exprs" : [
-    { "ref" : "SPARSE", "expr" : "cast(DENSE as decimal38sparse(38, 12))" }
-    ],
-
-    "child" : 5
-  },
-{
-    "pop" : "project",
-    "@id" : 7,
-    "exprs" : [
-    { "ref" : "STRINGSPARSE", "expr" : "cast(SPARSE as varchar(100))" }
-    ],
-
-    "child" : 6
-  },
-{
-    "pop" : "screen",
-    "@id" : 8,
-    "child" : 7
-  } ]
-}
-
+  ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/decimal/test_decimal_sort_complex.json b/exec/java-exec/src/test/resources/decimal/test_decimal_sort_complex.json
index 8ff0253..efcdf7a 100644
--- a/exec/java-exec/src/test/resources/decimal/test_decimal_sort_complex.json
+++ b/exec/java-exec/src/test/resources/decimal/test_decimal_sort_complex.json
@@ -1,56 +1,48 @@
 {
-  "head" : {
-    "version" : 1,
-    "generator" : {
-      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
-      "info" : ""
-    },
-    "type" : "APACHE_DRILL_PHYSICAL",
-    "resultMode" : "EXEC"
+  "head": {
+    "version": 1,
+    "generator": {"type": "org.apache.drill.exec.planner.logical.DrillImplementor", "info": ""},
+    "type": "APACHE_DRILL_PHYSICAL",
+    "resultMode": "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  },{
-        "pop" : "project",
-        "@id" : 2,
-        "exprs" : [ {
-          "ref" : "DEC",
-          "expr" : " (cast(B as vardecimal(38, 12)))"
-        }
-        ],
-        "child" : 1
-      },
-     {
-                @id:3,
-                child: 2,
-                pop:"external-sort",
-                orderings: [
-                  {expr: "DEC"}
-                ]
-            },
-            {
-                @id:4,
-                child: 3,
-                pop:"selection-vector-remover"
-            },
-     {
-        "pop" : "project",
-        "@id" : 5,
-        "exprs" : [ {
-          "ref" : "DESTR",
-          "expr" : " (cast(DEC as varchar(100)))"
-        }
-        ],
-        "child" : 4
-      },
+  "graph": [
+    {
+      "@id": 1,
+      "pop": "fs-scan",
+      "format": {"type": "json"},
+      "storage": {"type": "file", "connection": "classpath:///", "enabled": true},
+      "files": ["#{TEST_FILE}"]
+    },
+    {
+      "pop": "project",
+      "@id": 2,
+      "exprs": [
+        {"ref": "DEC", "expr": " (cast(B as vardecimal(38, 12)))"}
+      ],
+      "child": 1
+    },
+    {
+      "@id": 3,
+      "child": 2,
+      "pop": "external-sort",
+      "orderings": [{"expr": "DEC"}]},
+    {
+      "@id": 4,
+      "child": 3,
+      "pop": "selection-vector-remover"
+    },
+    {
+      "pop": "project",
+      "@id": 5,
+      "exprs": [
+        {"ref": "DESTR", "expr": " (cast(DEC as varchar(100)))"}
+      ],
+      "child": 4
+    },
     {
-        "pop" : "screen",
-        "@id" : 6,
-        "child" : 5
-      } ]
-    }
\ No newline at end of file
+      "pop": "screen",
+      "@id": 6,
+      "child": 5
+    }
+  ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/decimal/test_decimal_sparse_dense_dense.json b/exec/java-exec/src/test/resources/decimal/test_decimal_sparse_dense_dense.json
index b1a2c43..eae1abb 100644
--- a/exec/java-exec/src/test/resources/decimal/test_decimal_sparse_dense_dense.json
+++ b/exec/java-exec/src/test/resources/decimal/test_decimal_sparse_dense_dense.json
@@ -8,47 +8,43 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled" : true
+    },
+    "files" : [ "#{TEST_FILE}" ]
   }, {
     "pop" : "project",
     "@id" : 2,
     "exprs" : [ {
       "ref" : "DECIMAL28SPARSE_1",
       "expr" : " (cast(DEC9 as decimal28sparse(28, 4))) "
-    }
-    ],
-
+    } ],
     "child" : 1
-  },
-{
+  }, {
     "pop" : "project",
     "@id" : 3,
     "exprs" : [ {
       "ref" : "DECIMAL28DENSE_1",
       "expr" : " cast(DECIMAL28SPARSE_1 as decimal28dense(28, 4))  "
-    }
-    ],
-
+    } ],
     "child" : 2
-  },
-{
+  }, {
     "pop" : "project",
     "@id" : 4,
     "exprs" : [ {
       "ref" : "DECIMAL38DENSE_1",
       "expr" : " cast(DECIMAL28DENSE_1 as decimal38dense(38, 4))  "
-    }
-    ],
-
+    } ],
     "child" : 3
-  },
-{
+  }, {
     "pop" : "screen",
     "@id" : 5,
     "child" : 4
diff --git a/exec/java-exec/src/test/resources/functions/cast/testCastVarCharNull.json b/exec/java-exec/src/test/resources/functions/cast/testCastVarCharNull.json
index dceecd1..d17919c 100644
--- a/exec/java-exec/src/test/resources/functions/cast/testCastVarCharNull.json
+++ b/exec/java-exec/src/test/resources/functions/cast/testCastVarCharNull.json
@@ -1,31 +1,37 @@
 {
-    head:{
-        type:"APACHE_DRILL_PHYSICAL",
-        version:"1",
-        generator:{
-            type:"manual"
-        }
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : "1",
+    "generator" : {
+      "type" : "manual"
+    }
+  },
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
     },
-    graph:[
-        {
-            @id:1,
-          pop:"fs-scan",
-          format: {type: "json"},
-          storage:{type: "file", connection: "classpath:///"},
-          files:["#{TEST_FILE}"]
-       }, {
-            @id:2,
-            child: 1,
-            pop:"project",
-            exprs: [
-                { ref: "int2varchar", expr:"cast(integer as varchar(20))" },
-                { ref: "float2varchar", expr:"cast(float as varchar(20))" }
-            ]
-        },
-        {
-            @id: 3,
-            child: 2,
-            pop: "screen"
-        }
-    ]
-}
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled": true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
+    "@id" : 2,
+    "child" : 1,
+    "pop" : "project",
+    "exprs" : [ {
+      "ref" : "int2varchar",
+      "expr" : "cast(integer as varchar(20))"
+    }, {
+      "ref" : "float2varchar",
+      "expr" : "cast(float as varchar(20))"
+    } ]
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/functions/cast/test_cast_varchar_to_bigint.json b/exec/java-exec/src/test/resources/functions/cast/test_cast_varchar_to_bigint.json
index 018dbad..174036d 100644
--- a/exec/java-exec/src/test/resources/functions/cast/test_cast_varchar_to_bigint.json
+++ b/exec/java-exec/src/test/resources/functions/cast/test_cast_varchar_to_bigint.json
@@ -1,32 +1,34 @@
 {
-    head:{
-        type:"APACHE_DRILL_PHYSICAL",
-        version:"1",
-        generator:{
-            type:"manual"
-        }
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : "1",
+    "generator" : {
+      "type" : "manual"
+    }
+  },
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
     },
-        graph:[
-        {
-            @id:1,
-            pop:"fs-scan",
-            format: {type: "json"},
-            storage:{type: "file", connection: "classpath:///"},
-            files:["#{TEST_FILE}"]
-        },
-        {
-            pop:"project",
-            @id:2,
-            child: 1,
-            exprs: [ {
-              ref: "INTEGER",
-              expr: "cast(integer as bigint)"
-            } ]
-        },
-        {
-            @id: 3,
-            child: 2,
-            pop: "screen"
-        }
-    ]
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled": true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
+    "pop" : "project",
+    "@id" : 2,
+    "child" : 1,
+    "exprs" : [ {
+      "ref" : "INTEGER",
+      "expr" : "cast(integer as bigint)"
+    } ]
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/functions/conv/conversionTestWithLogicalPlan.json b/exec/java-exec/src/test/resources/functions/conv/conversionTestWithLogicalPlan.json
index d137f85..acae9e7 100644
--- a/exec/java-exec/src/test/resources/functions/conv/conversionTestWithLogicalPlan.json
+++ b/exec/java-exec/src/test/resources/functions/conv/conversionTestWithLogicalPlan.json
@@ -1,61 +1,87 @@
 {
-  head: {
-    version: 1,
-    generator: {
-      type: "org.apache.drill.exec.planner.logical.DrillImplementor",
-      info: ""
+  "head" : {
+    "version" : 1,
+    "generator" : {
+      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
+      "info" : ""
     },
-    type: "APACHE_DRILL_LOGICAL",
-    resultMode: "EXEC"
+    "type" : "APACHE_DRILL_LOGICAL",
+    "resultMode" : "EXEC"
   },
-  storage: {
-    mock : {
-      type : "mock"
+  "storage" : {
+    "mock" : {
+      "type" : "mock",
+      "enabled": true
     }
   },
-  query: [{
-    op: "scan",
-    @id: 1,
-    storageengine: "mock",
-    selection: [
-    {
-      records : 10,
-      types : [
-        {name : "tinyint_val", type : "TINYINT", mode : "REQUIRED"},
-        {name : "smallint_val", type : "SMALLINT", mode : "REQUIRED"},
-        {name : "int_val", type : "INT", mode : "REQUIRED"},
-        {name : "bigint_val", type : "BIGINT", mode : "REQUIRED"},
-        {name : "uint8_val", type : "UINT8", mode : "REQUIRED"}
-       ]
-     }]
-  },
-  {
-    op: "project",
-    @id: 2,
-    input: 1,
-    projections: [
-      {ref: "col_tinyint", expr: "convert_from(convert_to(tinyint_val, 'TINYINT_BE'), 'TINYINT_BE')"},
-      {ref: "col_smallint", expr: "convert_from(convert_to(smallint_val, 'SMALLINT'), 'SMALLINT')"},
-      {ref: "col_int", expr: "convert_from(convert_to(int_val, 'INT'), 'INT')"},
-      {ref: "col_bigint", expr: "convert_from(convert_to(bigint_val, 'BIGINT'), 'BIGINT')"},
-      {ref: "col_uint8", expr: "convert_from(convert_to(uint8_val, 'UINT8'), 'UINT8')"},
-      {ref: "col_smallint_be", expr: "convert_from(convert_to(smallint_val, 'SMALLINT_BE'), 'SMALLINT_BE')"},
-      {ref: "col_int_be", expr: "convert_from(convert_to(int_val, 'INT_BE'), 'INT_BE')"},
-      {ref: "col_bigint_be", expr: "convert_from(convert_to(bigint_val, 'BIGINT_BE'), 'BIGINT_BE')"}
-    ]
-  },
-  {
-    op: "limit",
-    @id: 3,
-    input: 2,
-    first: 0,
-    last: 10
-  },
-  {
-    op: "store",
-    @id: 4,
-    input: 3,
-    target: null,
-    storageEngine: "--SCREEN--"
-  }]
-}
+  "query" : [ {
+    "op" : "scan",
+    "@id" : 1,
+    "storageengine" : "mock",
+    "selection" : [ {
+      "records" : 10,
+      "types" : [ {
+        "name" : "tinyint_val",
+        "type" : "TINYINT",
+        "mode" : "REQUIRED"
+      }, {
+        "name" : "smallint_val",
+        "type" : "SMALLINT",
+        "mode" : "REQUIRED"
+      }, {
+        "name" : "int_val",
+        "type" : "INT",
+        "mode" : "REQUIRED"
+      }, {
+        "name" : "bigint_val",
+        "type" : "BIGINT",
+        "mode" : "REQUIRED"
+      }, {
+        "name" : "uint8_val",
+        "type" : "UINT8",
+        "mode" : "REQUIRED"
+      } ]
+    } ]
+  }, {
+    "op" : "project",
+    "@id" : 2,
+    "input" : 1,
+    "projections" : [ {
+      "ref" : "col_tinyint",
+      "expr" : "convert_from(convert_to(tinyint_val, 'TINYINT_BE'), 'TINYINT_BE')"
+    }, {
+      "ref" : "col_smallint",
+      "expr" : "convert_from(convert_to(smallint_val, 'SMALLINT'), 'SMALLINT')"
+    }, {
+      "ref" : "col_int",
+      "expr" : "convert_from(convert_to(int_val, 'INT'), 'INT')"
+    }, {
+      "ref" : "col_bigint",
+      "expr" : "convert_from(convert_to(bigint_val, 'BIGINT'), 'BIGINT')"
+    }, {
+      "ref" : "col_uint8",
+      "expr" : "convert_from(convert_to(uint8_val, 'UINT8'), 'UINT8')"
+    }, {
+      "ref" : "col_smallint_be",
+      "expr" : "convert_from(convert_to(smallint_val, 'SMALLINT_BE'), 'SMALLINT_BE')"
+    }, {
+      "ref" : "col_int_be",
+      "expr" : "convert_from(convert_to(int_val, 'INT_BE'), 'INT_BE')"
+    }, {
+      "ref" : "col_bigint_be",
+      "expr" : "convert_from(convert_to(bigint_val, 'BIGINT_BE'), 'BIGINT_BE')"
+    } ]
+  }, {
+    "op" : "limit",
+    "@id" : 3,
+    "input" : 2,
+    "first" : 0,
+    "last" : 10
+  }, {
+    "op" : "store",
+    "@id" : 4,
+    "input" : 3,
+    "target" : null,
+    "storageEngine" : "--SCREEN--"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/functions/date/age.json b/exec/java-exec/src/test/resources/functions/date/age.json
index 96dc981..23ebf38 100644
--- a/exec/java-exec/src/test/resources/functions/date/age.json
+++ b/exec/java-exec/src/test/resources/functions/date/age.json
@@ -8,29 +8,38 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  },
-        {
-            pop:"project",
-            @id:2,
-            child: 1,
-            exprs: [
-              { ref: "TS1", expr: "age(cast('2010-01-01 10:10:10' as timestamp), cast('2001-01-01 11:10:10' as timestamp))"},
-              { ref: "D1", expr: "age(cast('2005-07-11' as date), cast('1991-04-29' as date))"},
-              { ref: "D2", expr: "age(cast('1991-04-29' as date), cast('2005-07-11' as date))"},
-              { ref: "TS2", expr: "age(cast('1997-12-17 23:37:54' as timestamp), cast('2001-03-20 17:17:27' as timestamp))"}
-            ]
-        },
-        {
-            @id: 3,
-            child: 2,
-            pop: "screen"
-        }
-    ]
-}
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled": true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
+    "pop" : "project",
+    "@id" : 2,
+    "child" : 1,
+    "exprs" : [ {
+      "ref" : "TS1",
+      "expr" : "age(cast('2010-01-01 10:10:10' as timestamp), cast('2001-01-01 11:10:10' as timestamp))"
+    }, {
+      "ref" : "D1",
+      "expr" : "age(cast('2005-07-11' as date), cast('1991-04-29' as date))"
+    }, {
+      "ref" : "D2",
+      "expr" : "age(cast('1991-04-29' as date), cast('2005-07-11' as date))"
+    }, {
+      "ref" : "TS2",
+      "expr" : "age(cast('1997-12-17 23:37:54' as timestamp), cast('2001-03-20 17:17:27' as timestamp))"
+    } ]
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/functions/date/date_difference_arithmetic.json b/exec/java-exec/src/test/resources/functions/date/date_difference_arithmetic.json
index e215b7b..4e4b070 100644
--- a/exec/java-exec/src/test/resources/functions/date/date_difference_arithmetic.json
+++ b/exec/java-exec/src/test/resources/functions/date/date_difference_arithmetic.json
@@ -8,28 +8,35 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  },
-        {
-            pop:"project",
-            @id:2,
-            child: 1,
-            exprs: [
-              { ref: "Date1", expr: "cast('2008-2-23' as date) - cast('2007-2-23' as date)"},
-              { ref: "TimeStamp1", expr: "cast('2008-2-23 12:00:00' as timestamp) - cast('2009-2-23 12:01:00' as timestamp) "},
-              { ref: "Time2", expr: "cast('12:20:30' as time) - cast('1:20:30' as time)"}
-            ]
-        },
-        {
-            @id: 3,
-            child: 2,
-            pop: "screen"
-        }
-    ]
-}
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled": true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
+    "pop" : "project",
+    "@id" : 2,
+    "child" : 1,
+    "exprs" : [ {
+      "ref" : "Date1",
+      "expr" : "cast('2008-2-23' as date) - cast('2007-2-23' as date)"
+    }, {
+      "ref" : "TimeStamp1",
+      "expr" : "cast('2008-2-23 12:00:00' as timestamp) - cast('2009-2-23 12:01:00' as timestamp) "
+    }, {
+      "ref" : "Time2",
+      "expr" : "cast('12:20:30' as time) - cast('1:20:30' as time)"
+    } ]
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/functions/date/date_interval_arithmetic.json b/exec/java-exec/src/test/resources/functions/date/date_interval_arithmetic.json
index c1e10a3..0845cd5 100644
--- a/exec/java-exec/src/test/resources/functions/date/date_interval_arithmetic.json
+++ b/exec/java-exec/src/test/resources/functions/date/date_interval_arithmetic.json
@@ -8,39 +8,67 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  },
-        {
-            pop:"project",
-            @id:2,
-            child: 1,
-            exprs: [
-              { ref: "Date1", expr: "cast('2008-2-23' as date) + cast('P1Y' as intervalyear)"},
-              { ref: "Date2", expr: "cast('2008-2-23' as date) + cast('P1D' as intervalday)"},
-              { ref: "Time1", expr: "cast('12:20:30' as time) + cast('PT1H0M3S' as intervalday)"},
-              { ref: "TimeStamp1", expr: "cast('2008-2-23 12:00:00' as timestamp) + cast('P1D' as intervalday)"},
-              { ref: "TimeStamp2", expr: "cast('2008-2-23 12:00:00' as timestamp) + cast('P1Y2M' as intervalyear)"},
-              { ref: "TimeStampTZ1", expr: "cast('2008-2-23 12:00:00 America/Los_Angeles' as timestamptz) + cast('P1D' as intervalday)"},
-              { ref: "TimeStampTZ2", expr: "cast('2008-2-23 12:00:00 America/Los_Angeles' as timestamptz) + cast('P1Y2M' as intervalyear)"},
-              { ref: "Date3", expr: "cast('P1Y' as intervalyear) + cast('2008-2-23' as date)"},
-              { ref: "Date4", expr: "cast('P1D' as intervalday) + cast('2008-2-23' as date) "},
-              { ref: "Time2", expr: "cast('PT1H0M3S' as intervalday) + cast('12:20:30' as time)"},
-              { ref: "TimeStamp3", expr: "cast('P1D' as intervalday) + cast('2008-2-23 12:00:00' as timestamp)"},
-              { ref: "TimeStamp4", expr: "cast('P1Y2M' as intervalyear) + cast('2008-2-23 12:00:00' as timestamp)"},
-              { ref: "TimeStampTZ3", expr: "cast('P1D' as intervalday) + cast('2008-2-23 12:00:00 America/Los_Angeles' as timestamptz) "},
-              { ref: "TimeStampTZ4", expr: "cast('P1Y2M' as intervalyear) + cast('2008-2-23 12:00:00 America/Los_Angeles' as timestamptz) "}
-            ]
-        },
-        {
-            @id: 3,
-            child: 2,
-            pop: "screen"
-        }
-    ]
-}
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///"
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
+    "pop" : "project",
+    "@id" : 2,
+    "child" : 1,
+    "exprs" : [ {
+      "ref" : "Date1",
+      "expr" : "cast('2008-2-23' as date) + cast('P1Y' as intervalyear)"
+    }, {
+      "ref" : "Date2",
+      "expr" : "cast('2008-2-23' as date) + cast('P1D' as intervalday)"
+    }, {
+      "ref" : "Time1",
+      "expr" : "cast('12:20:30' as time) + cast('PT1H0M3S' as intervalday)"
+    }, {
+      "ref" : "TimeStamp1",
+      "expr" : "cast('2008-2-23 12:00:00' as timestamp) + cast('P1D' as intervalday)"
+    }, {
+      "ref" : "TimeStamp2",
+      "expr" : "cast('2008-2-23 12:00:00' as timestamp) + cast('P1Y2M' as intervalyear)"
+    }, {
+      "ref" : "TimeStampTZ1",
+      "expr" : "cast('2008-2-23 12:00:00 America/Los_Angeles' as timestamptz) + cast('P1D' as intervalday)"
+    }, {
+      "ref" : "TimeStampTZ2",
+      "expr" : "cast('2008-2-23 12:00:00 America/Los_Angeles' as timestamptz) + cast('P1Y2M' as intervalyear)"
+    }, {
+      "ref" : "Date3",
+      "expr" : "cast('P1Y' as intervalyear) + cast('2008-2-23' as date)"
+    }, {
+      "ref" : "Date4",
+      "expr" : "cast('P1D' as intervalday) + cast('2008-2-23' as date) "
+    }, {
+      "ref" : "Time2",
+      "expr" : "cast('PT1H0M3S' as intervalday) + cast('12:20:30' as time)"
+    }, {
+      "ref" : "TimeStamp3",
+      "expr" : "cast('P1D' as intervalday) + cast('2008-2-23 12:00:00' as timestamp)"
+    }, {
+      "ref" : "TimeStamp4",
+      "expr" : "cast('P1Y2M' as intervalyear) + cast('2008-2-23 12:00:00' as timestamp)"
+    }, {
+      "ref" : "TimeStampTZ3",
+      "expr" : "cast('P1D' as intervalday) + cast('2008-2-23 12:00:00 America/Los_Angeles' as timestamptz) "
+    }, {
+      "ref" : "TimeStampTZ4",
+      "expr" : "cast('P1Y2M' as intervalyear) + cast('2008-2-23 12:00:00 America/Los_Angeles' as timestamptz) "
+    } ]
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/functions/date/interval_arithmetic.json b/exec/java-exec/src/test/resources/functions/date/interval_arithmetic.json
index 3bf5f6c..24ac9b9 100644
--- a/exec/java-exec/src/test/resources/functions/date/interval_arithmetic.json
+++ b/exec/java-exec/src/test/resources/functions/date/interval_arithmetic.json
@@ -8,37 +8,62 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  },
-        {
-            pop:"project",
-            @id:2,
-            child: 1,
-            exprs: [
-              { ref: "IntervalYear1", expr: "cast('P1Y2M' as intervalyear) + cast('P1Y' as intervalyear)"},
-              { ref: "IntervalDay1", expr: "cast('P1DT1H2M3S' as intervalday) + cast('P1D' as intervalday)"},
-              { ref: "IntervalYear2", expr: "cast('P1Y2M' as intervalyear) - cast('P1Y' as intervalyear)"},
-              { ref: "IntervalDay2", expr: "cast('P1DT1H2M3S' as intervalday) - cast('P1D' as intervalday)"},
-              { ref: "IntervalYear3", expr: "cast('P1Y2M' as intervalyear) * 2"},
-              { ref: "IntervalDay3", expr: " 2 * cast('PT1H0M3S' as intervalday)"},
-              { ref: "IntervalYear4", expr: "cast('P1Y2M' as intervalyear) / 2"},
-              { ref: "IntervalDay4", expr: " cast('PT1H0M3S' as intervalday) / 2"},
-              { ref: "IntervalYear5", expr: "cast('P1Y2M' as intervalyear) * 2.4"},
-              { ref: "IntervalDay5", expr: " 2.4 * cast('PT1H0M3S' as intervalday)"},
-              { ref: "IntervalYear6", expr: "cast('P1Y2M' as intervalyear) / 2.1"},
-              { ref: "IntervalDay6", expr: " cast('PT1H0M3S' as intervalday) / 2.1"}
-            ]
-        },
-        {
-            @id: 3,
-            child: 2,
-            pop: "screen"
-        }
-    ]
-}
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled": true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
+    "pop" : "project",
+    "@id" : 2,
+    "child" : 1,
+    "exprs" : [ {
+      "ref" : "IntervalYear1",
+      "expr" : "cast('P1Y2M' as intervalyear) + cast('P1Y' as intervalyear)"
+    }, {
+      "ref" : "IntervalDay1",
+      "expr" : "cast('P1DT1H2M3S' as intervalday) + cast('P1D' as intervalday)"
+    }, {
+      "ref" : "IntervalYear2",
+      "expr" : "cast('P1Y2M' as intervalyear) - cast('P1Y' as intervalyear)"
+    }, {
+      "ref" : "IntervalDay2",
+      "expr" : "cast('P1DT1H2M3S' as intervalday) - cast('P1D' as intervalday)"
+    }, {
+      "ref" : "IntervalYear3",
+      "expr" : "cast('P1Y2M' as intervalyear) * 2"
+    }, {
+      "ref" : "IntervalDay3",
+      "expr" : " 2 * cast('PT1H0M3S' as intervalday)"
+    }, {
+      "ref" : "IntervalYear4",
+      "expr" : "cast('P1Y2M' as intervalyear) / 2"
+    }, {
+      "ref" : "IntervalDay4",
+      "expr" : " cast('PT1H0M3S' as intervalday) / 2"
+    }, {
+      "ref" : "IntervalYear5",
+      "expr" : "cast('P1Y2M' as intervalyear) * 2.4"
+    }, {
+      "ref" : "IntervalDay5",
+      "expr" : " 2.4 * cast('PT1H0M3S' as intervalday)"
+    }, {
+      "ref" : "IntervalYear6",
+      "expr" : "cast('P1Y2M' as intervalyear) / 2.1"
+    }, {
+      "ref" : "IntervalDay6",
+      "expr" : " cast('PT1H0M3S' as intervalday) / 2.1"
+    } ]
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/functions/date/to_char.json b/exec/java-exec/src/test/resources/functions/date/to_char.json
index 57bee61..53e5040 100644
--- a/exec/java-exec/src/test/resources/functions/date/to_char.json
+++ b/exec/java-exec/src/test/resources/functions/date/to_char.json
@@ -8,28 +8,35 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  },
-        {
-            pop:"project",
-            @id:2,
-            child: 1,
-            exprs: [
-              { ref: "Date1", expr: "to_char((cast('2008-2-23' as date)), 'yyyy-MMM-dd')"},
-              { ref: "Time1", expr: "to_char(cast('12:20:30' as time), 'HH mm ss')"},
-              { ref: "TimeStamp2", expr: "to_char(cast('2008-2-23 12:00:00' as timestamp), 'yyyy MMM dd HH:mm:ss')"}
-            ]
-        },
-        {
-            @id: 3,
-            child: 2,
-            pop: "screen"
-        }
-    ]
-}
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled": true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
+    "pop" : "project",
+    "@id" : 2,
+    "child" : 1,
+    "exprs" : [ {
+      "ref" : "Date1",
+      "expr" : "to_char((cast('2008-2-23' as date)), 'yyyy-MMM-dd')"
+    }, {
+      "ref" : "Time1",
+      "expr" : "to_char(cast('12:20:30' as time), 'HH mm ss')"
+    }, {
+      "ref" : "TimeStamp2",
+      "expr" : "to_char(cast('2008-2-23 12:00:00' as timestamp), 'yyyy MMM dd HH:mm:ss')"
+    } ]
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/functions/date/to_date_type.json b/exec/java-exec/src/test/resources/functions/date/to_date_type.json
index ab429d1..4692d7b 100644
--- a/exec/java-exec/src/test/resources/functions/date/to_date_type.json
+++ b/exec/java-exec/src/test/resources/functions/date/to_date_type.json
@@ -8,29 +8,37 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  },
-        {
-            pop:"project",
-            @id:2,
-            child: 1,
-            exprs: [
-              { ref: "Date1", expr: "to_date('2008-FEB-23', 'yyyy-MMM-dd')"},
-              { ref: "Time1", expr: "to_time('12:20:30', 'HH:mm:ss')"},
-              { ref: "TimeStamp2", expr: "to_timestamp('2008-2-23 12:00:00', 'yyyy-MM-dd HH:mm:ss')"},
-              { ref: "TimeStampTZ1", expr: "to_timestamptz('2008-2-23 12:00:00 America/Los_Angeles', 'yyyy-MM-dd HH:mm:ss ZZZ')"}
-            ]
-        },
-        {
-            @id: 3,
-            child: 2,
-            pop: "screen"
-        }
-    ]
-}
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///"
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
+    "pop" : "project",
+    "@id" : 2,
+    "child" : 1,
+    "exprs" : [ {
+      "ref" : "Date1",
+      "expr" : "to_date('2008-FEB-23', 'yyyy-MMM-dd')"
+    }, {
+      "ref" : "Time1",
+      "expr" : "to_time('12:20:30', 'HH:mm:ss')"
+    }, {
+      "ref" : "TimeStamp2",
+      "expr" : "to_timestamp('2008-2-23 12:00:00', 'yyyy-MM-dd HH:mm:ss')"
+    }, {
+      "ref" : "TimeStampTZ1",
+      "expr" : "to_timestamptz('2008-2-23 12:00:00 America/Los_Angeles', 'yyyy-MM-dd HH:mm:ss ZZZ')"
+    } ]
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/functions/extractFrom.json b/exec/java-exec/src/test/resources/functions/extractFrom.json
index 4e58a3c..6d31e35 100644
--- a/exec/java-exec/src/test/resources/functions/extractFrom.json
+++ b/exec/java-exec/src/test/resources/functions/extractFrom.json
@@ -8,38 +8,49 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-        {
-            @id:1,
-            pop:"fs-scan",
-            format: {type: "json"},
-            storage:{type: "file", connection: "classpath:///"},
-            files:["#{TEST_FILE}"]
-        },
-        {
-            pop:"project",
-            @id:2,
-            child: 1,
-            exprs: [ {
-              ref: "castExp", expr: "cast(#{COLUMN_NAME} as #{TEST_TYPE})"
-            } ]
-        },
-        {
-            pop:"project",
-            @id:3,
-            child: 2,
-            exprs: [
-              { ref: "extractMinute", expr: "extractMinute(castExp)" },
-              { ref: "extractHour", expr: "extractHour(castExp)" },
-              { ref: "extractDay", expr: "extractDay(castExp)" },
-              { ref: "extractMonth", expr: "extractMonth(castExp)" },
-              { ref: "extractYear", expr: "extractYear(castExp)" }
-            ]
-        },
-        {
-            @id: 4,
-            child: 3,
-            pop: "screen"
-        }
-    ]
-}
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled": true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
+    "pop" : "project",
+    "@id" : 2,
+    "child" : 1,
+    "exprs" : [ {
+      "ref" : "castExp",
+      "expr" : "cast(#{COLUMN_NAME} as #{TEST_TYPE})"
+    } ]
+  }, {
+    "pop" : "project",
+    "@id" : 3,
+    "child" : 2,
+    "exprs" : [ {
+      "ref" : "extractMinute",
+      "expr" : "extractMinute(castExp)"
+    }, {
+      "ref" : "extractHour",
+      "expr" : "extractHour(castExp)"
+    }, {
+      "ref" : "extractDay",
+      "expr" : "extractDay(castExp)"
+    }, {
+      "ref" : "extractMonth",
+      "expr" : "extractMonth(castExp)"
+    }, {
+      "ref" : "extractYear",
+      "expr" : "extractYear(castExp)"
+    } ]
+  }, {
+    "@id" : 4,
+    "child" : 3,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/functions/test_covariance.json b/exec/java-exec/src/test/resources/functions/test_covariance.json
index 3572090..0d74f70 100644
--- a/exec/java-exec/src/test/resources/functions/test_covariance.json
+++ b/exec/java-exec/src/test/resources/functions/test_covariance.json
@@ -8,30 +8,31 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
- },
- {
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled" : true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
     "pop" : "project",
     "@id" : 2,
     "exprs" : [ {
       "ref" : "`A`",
       "expr" : "`A`"
-    },
-    {
+    }, {
       "ref" : "`B`",
       "expr" : "`B`"
-    },
-    {
+    }, {
       "ref" : "`C`",
       "expr" : "`C`"
-    },
-    {
+    }, {
       "ref" : "`D`",
       "expr" : "`D`"
     } ],
@@ -44,36 +45,28 @@
     "exprs" : [ {
       "ref" : "`EXPR$1`",
       "expr" : "covar_samp(`A`, `B`) "
-    },
-    {
+    }, {
       "ref" : "`EXPR$2`",
       "expr" : "covar_samp(`A`, `C`) "
-    },
-    {
+    }, {
       "ref" : "`EXPR$3`",
       "expr" : "covar_samp(`C`, `D`) "
-    },
-    {
+    }, {
       "ref" : "`EXPR$4`",
       "expr" : "covar_pop(`A`, `B`) "
-    },
-    {
+    }, {
       "ref" : "`EXPR$5`",
       "expr" : "covar_pop(`A`, `C`) "
-    },
-    {
+    }, {
       "ref" : "`EXPR$6`",
       "expr" : "covar_pop(`C`, `D`) "
-    },
-    {
+    }, {
       "ref" : "`EXPR$7`",
       "expr" : "corr(`A`, `B`) "
-    },
-    {
+    }, {
       "ref" : "`EXPR$7`",
       "expr" : "corr(`A`, `C`) "
-    },
-    {
+    }, {
       "ref" : "`EXPR$8`",
       "expr" : "corr(`C`, `D`) "
     } ]
diff --git a/exec/java-exec/src/test/resources/functions/test_logical_aggr.json b/exec/java-exec/src/test/resources/functions/test_logical_aggr.json
index b6680be..f6d83b5 100644
--- a/exec/java-exec/src/test/resources/functions/test_logical_aggr.json
+++ b/exec/java-exec/src/test/resources/functions/test_logical_aggr.json
@@ -8,30 +8,31 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
- },
- {
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled": true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
     "pop" : "project",
     "@id" : 2,
     "exprs" : [ {
       "ref" : "`A`",
       "expr" : "`A`"
-    },
-    {
+    }, {
       "ref" : "`B`",
       "expr" : "`B`"
-    },
-    {
+    }, {
       "ref" : "`C`",
       "expr" : "`C`"
-    },
-    {
+    }, {
       "ref" : "`D`",
       "expr" : "`D`"
     } ],
@@ -47,34 +48,28 @@
     }, {
       "ref" : "`EXPR$1`",
       "expr" : "bit_and(`A`) "
-    },
-    {
+    }, {
       "ref" : "`EXPR$2`",
       "expr" : "every(`A`) "
-    },
-    {
+    }, {
       "ref" : "`EXPR$3`",
       "expr" : "bit_or(`A`) "
-    },
-    {
+    }, {
       "ref" : "`EXPR$4`",
       "expr" : "bit_or(`B`) "
-    },
-    {
+    }, {
       "ref" : "`EXPR$5`",
       "expr" : "bit_or(`D`) "
-    },
-    {
+    }, {
       "ref" : "`EXPR$5`",
       "expr" : "bool_or(`C`) "
-    },
-    {
+    }, {
       "ref" : "`EXPR$6`",
       "expr" : "bool_and(`C`) "
-    }]
+    } ]
   }, {
     "pop" : "screen",
     "@id" : 4,
     "child" : 3
   } ]
-}
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/functions/test_stddev_variance.json b/exec/java-exec/src/test/resources/functions/test_stddev_variance.json
index 5ba8d3e..97fdb96 100644
--- a/exec/java-exec/src/test/resources/functions/test_stddev_variance.json
+++ b/exec/java-exec/src/test/resources/functions/test_stddev_variance.json
@@ -8,15 +8,19 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
- },
- {
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled": true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
     "pop" : "project",
     "@id" : 2,
     "exprs" : [ {
@@ -53,4 +57,4 @@
     "@id" : 4,
     "child" : 3
   } ]
-}
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/hive/test.json b/exec/java-exec/src/test/resources/hive/test.json
index a039d9e..d55444a 100644
--- a/exec/java-exec/src/test/resources/hive/test.json
+++ b/exec/java-exec/src/test/resources/hive/test.json
@@ -1,75 +1,74 @@
 {
-    head:{
-        type:"APACHE_DRILL_PHYSICAL",
-        version:"1",
-        generator:{
-            type:"manual"
-        }
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : "1",
+    "generator" : {
+      "type" : "manual"
+    }
+  },
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "hive-scan",
+    "storageengine" : {
+      "type" : "hive"
     },
-    graph:[
-        {
-            @id:1,
-            pop:"hive-scan",
-            storageengine: { type: "hive"},
-            hive-table: {
-                          "tableName" : "nation",
-                          "dbName" : "default",
-                          "owner" : "root",
-                          "createTime" : 1386876893,
-                          "lastAccessTime" : 0,
-                          "retention" : 0,
-                          "sd" : {
-                            "cols" : [ {
-                              "name" : "n_nationkey",
-                              "type" : "bigint",
-                              "comment" : null
-                            }, {
-                              "name" : "n_name",
-                              "type" : "string",
-                              "comment" : null
-                            }, {
-                              "name" : "n_regionkey",
-                              "type" : "bigint",
-                              "comment" : null
-                            }, {
-                              "name" : "n_comment",
-                              "type" : "string",
-                              "comment" : null
-                            } ],
-                            "location" : "maprfs:/user/hive/warehouse/nation",
-                            "inputFormat" : "org.apache.hadoop.mapred.TextInputFormat",
-                            "outputFormat" : "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
-                            "compressed" : false,
-                            "numBuckets" : 0,
-                            "serDeInfo" : {
-                              "name" : null,
-                              "serializationLib" : "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe",
-                              "parameters" : {
-                                "serialization.format" : "|",
-                                "field.delim" : "|"
-                              }
-                            },
-                            "sortCols" : [ ],
-                            "parameters" : { }
-                          },
-                          "partitionKeys" : [ ],
-                          "parameters" : {
-                            "numPartitions" : "0",
-                            "numFiles" : "1",
-                            "transient_lastDdlTime" : "1386877487",
-                            "totalSize" : "2224",
-                            "numRows" : "0",
-                            "rawDataSize" : "0"
-                          },
-                          "viewOriginalText" : null,
-                          "viewExpandedText" : null,
-                          "tableType" : "MANAGED_TABLE"
-                        }
+    "hive-table" : {
+      "tableName" : "nation",
+      "dbName" : "default",
+      "owner" : "root",
+      "createTime" : 1386876893,
+      "lastAccessTime" : 0,
+      "retention" : 0,
+      "sd" : {
+        "cols" : [ {
+          "name" : "n_nationkey",
+          "type" : "bigint",
+          "comment" : null
+        }, {
+          "name" : "n_name",
+          "type" : "string",
+          "comment" : null
+        }, {
+          "name" : "n_regionkey",
+          "type" : "bigint",
+          "comment" : null
+        }, {
+          "name" : "n_comment",
+          "type" : "string",
+          "comment" : null
+        } ],
+        "location" : "maprfs:/user/hive/warehouse/nation",
+        "inputFormat" : "org.apache.hadoop.mapred.TextInputFormat",
+        "outputFormat" : "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
+        "compressed" : false,
+        "numBuckets" : 0,
+        "serDeInfo" : {
+          "name" : null,
+          "serializationLib" : "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe",
+          "parameters" : {
+            "serialization.format" : "|",
+            "field.delim" : "|"
+          }
         },
-        {
-            @id: 2,
-            child: 1,
-            pop: "screen"
-        }
-    ]
+        "sortCols" : [ ],
+        "parameters" : { }
+      },
+      "partitionKeys" : [ ],
+      "parameters" : {
+        "numPartitions" : "0",
+        "numFiles" : "1",
+        "transient_lastDdlTime" : "1386877487",
+        "totalSize" : "2224",
+        "numRows" : "0",
+        "rawDataSize" : "0"
+      },
+      "viewOriginalText" : null,
+      "viewExpandedText" : null,
+      "tableType" : "MANAGED_TABLE"
+    }
+  }, {
+    "@id" : 2,
+    "child" : 1,
+    "pop" : "screen"
+  } ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/join/hashJoinExpr.json b/exec/java-exec/src/test/resources/join/hashJoinExpr.json
index 13a1c0f..2ef2e9a 100644
--- a/exec/java-exec/src/test/resources/join/hashJoinExpr.json
+++ b/exec/java-exec/src/test/resources/join/hashJoinExpr.json
@@ -127,4 +127,4 @@
       "outputRowCount" : 25.0
     }
   } ]
-}
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/join/hash_join.json b/exec/java-exec/src/test/resources/join/hash_join.json
index dbeb4ef..596b971 100644
--- a/exec/java-exec/src/test/resources/join/hash_join.json
+++ b/exec/java-exec/src/test/resources/join/hash_join.json
@@ -8,57 +8,66 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-    {
-        @id:1,
-        pop:"fs-scan",
-        format: {type: "json"},
-        storage:{type: "file", connection: "file:///"},
-        files:["#{TEST_FILE_1}"]
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
     },
-    {
-        @id:2,
-        pop:"fs-scan",
-        format: {type: "json"},
-        storage:{type: "file", connection: "file:///"},
-        files:["#{TEST_FILE_2}"]
+    "storage" : {
+      "type" : "file",
+      "connection" : "file:///",
+      "enabled": true
     },
-    {
-        "pop" : "project",
-        "@id" : 3,
-        "exprs" : [ {
-          "ref" : "A",
-          "expr" : "A"
-        },
-        { "ref" : "CCOL", "expr" : "C" }
-        ],
-
-        "child" : 1
+    "files" : [ "#{TEST_FILE_1}" ]
+  }, {
+    "@id" : 2,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
     },
-    {
-        "pop" : "project",
-        "@id" : 4,
-        "exprs" : [ {
-          "ref" : "B",
-          "expr" : "B"
-        },
-        { "ref" : "DCOL", "expr" : "D" }
-        ],
-
-        "child" : 2
+    "storage" : {
+      "type" : "file",
+      "connection" : "file:///",
+      "enabled": true
     },
-    {
-        @id: 5,
-        right: 3,
-        left: 4,
-        pop: "hash-join",
-        conditions: [ {relationship: "==", left: "B", right: "A"} ],
-        joinType : "INNER"
-    },
-    {
-        @id: 6,
-        child: 5,
-        pop: "screen"
-     }
-  ]
-}
+    "files" : [ "#{TEST_FILE_2}" ]
+  }, {
+    "pop" : "project",
+    "@id" : 3,
+    "exprs" : [ {
+      "ref" : "A",
+      "expr" : "A"
+    }, {
+      "ref" : "CCOL",
+      "expr" : "C"
+    } ],
+    "child" : 1
+  }, {
+    "pop" : "project",
+    "@id" : 4,
+    "exprs" : [ {
+      "ref" : "B",
+      "expr" : "B"
+    }, {
+      "ref" : "DCOL",
+      "expr" : "D"
+    } ],
+    "child" : 2
+  }, {
+    "@id" : 5,
+    "right" : 3,
+    "left" : 4,
+    "pop" : "hash-join",
+    "conditions" : [ {
+      "relationship" : "==",
+      "left" : "B",
+      "right" : "A"
+    } ],
+    "joinType" : "INNER"
+  }, {
+    "@id" : 6,
+    "child" : 5,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/join/hj_exchanges.json b/exec/java-exec/src/test/resources/join/hj_exchanges.json
index 318da06..e3f0e45 100644
--- a/exec/java-exec/src/test/resources/join/hj_exchanges.json
+++ b/exec/java-exec/src/test/resources/join/hj_exchanges.json
@@ -17,14 +17,15 @@
     "storage" : {
       "type" : "file",
       "connection" : "classpath:///",
+      "enabled": true,
       "workspaces" : {
         "default" : {
-          location: "/",
-          writable: false
+          "location" : "/",
+          "writable" : false
         },
         "home" : {
-          location: "/",
-          writable: false
+          "location" : "/",
+          "writable" : false
         }
       },
       "formats" : null
@@ -48,12 +49,12 @@
       "connection" : "classpath:///",
       "workspaces" : {
         "default" : {
-          location: "/",
-          writable: false
+          "location" : "/",
+          "writable" : false
         },
         "home" : {
-          location: "/",
-          writable: false
+          "location" : "/",
+          "writable" : false
         }
       },
       "formats" : null
@@ -102,4 +103,4 @@
     "@id" : 11,
     "child" : 10
   } ]
-}
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/join/hj_exchanges1.json b/exec/java-exec/src/test/resources/join/hj_exchanges1.json
index 6517845..3122b3a 100644
--- a/exec/java-exec/src/test/resources/join/hj_exchanges1.json
+++ b/exec/java-exec/src/test/resources/join/hj_exchanges1.json
@@ -17,6 +17,7 @@
     "storage" : {
       "type" : "file",
       "connection" : "classpath:///",
+      "enabled": true,
       "workspaces" : null,
       "formats" : {
         "json" : {
@@ -188,4 +189,4 @@
     "@id" : 20,
     "child" : 19
   } ]
-}
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/join/hj_multi_condition_join.json b/exec/java-exec/src/test/resources/join/hj_multi_condition_join.json
index 4033ca9..eab609c 100644
--- a/exec/java-exec/src/test/resources/join/hj_multi_condition_join.json
+++ b/exec/java-exec/src/test/resources/join/hj_multi_condition_join.json
@@ -8,60 +8,69 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "file:///"},
-      files:["#{TEST_FILE_1}"]
-  },
-  {
-      @id:2,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "file:///"},
-      files:["#{TEST_FILE_2}"]
-  },
-  {
-      "pop" : "project",
-      "@id" : 3,
-      "exprs" : [ {
-        "ref" : "A",
-        "expr" : "A"
-      },
-      { "ref" : "CCOL", "expr" : "C" }
-      ],
-
-      "child" : 1
-  },
-  {
-      "pop" : "project",
-      "@id" : 4,
-      "exprs" : [ {
-        "ref" : "B",
-        "expr" : "B"
-      },
-      { "ref" : "DCOL", "expr" : "D" }
-      ],
-
-      "child" : 2
-  },
-      {
-        @id: 5,
-        right: 3,
-        left: 4,
-        pop: "hash-join",
-        conditions: [
-        {relationship: "==", left: "B", right: "A"},
-        {relationship: "==", left: "DCOL", right: "CCOL"}
-        ],
-        joinType : "INNER"
-      },
-      {
-        @id: 6,
-        child: 5,
-        pop: "screen"
-      }
-    ]
-  }
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "file:///",
+      "enabled": true
+    },
+    "files" : [ "#{TEST_FILE_1}" ]
+  }, {
+    "@id" : 2,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "file:///"
+    },
+    "files" : [ "#{TEST_FILE_2}" ]
+  }, {
+    "pop" : "project",
+    "@id" : 3,
+    "exprs" : [ {
+      "ref" : "A",
+      "expr" : "A"
+    }, {
+      "ref" : "CCOL",
+      "expr" : "C"
+    } ],
+    "child" : 1
+  }, {
+    "pop" : "project",
+    "@id" : 4,
+    "exprs" : [ {
+      "ref" : "B",
+      "expr" : "B"
+    }, {
+      "ref" : "DCOL",
+      "expr" : "D"
+    } ],
+    "child" : 2
+  }, {
+    "@id" : 5,
+    "right" : 3,
+    "left" : 4,
+    "pop" : "hash-join",
+    "conditions" : [ {
+      "relationship" : "==",
+      "left" : "B",
+      "right" : "A"
+    }, {
+      "relationship" : "==",
+      "left" : "DCOL",
+      "right" : "CCOL"
+    } ],
+    "joinType" : "INNER"
+  }, {
+    "@id" : 6,
+    "child" : 5,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/join/mergeJoinExpr.json b/exec/java-exec/src/test/resources/join/mergeJoinExpr.json
index c0027ea..d596d7c 100644
--- a/exec/java-exec/src/test/resources/join/mergeJoinExpr.json
+++ b/exec/java-exec/src/test/resources/join/mergeJoinExpr.json
@@ -170,4 +170,4 @@
       "outputRowCount" : 25.0
     }
   } ]
-}
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/join/merge_inner_single_batch.json b/exec/java-exec/src/test/resources/join/merge_inner_single_batch.json
index 37ba9a4..1e7cdf4 100644
--- a/exec/java-exec/src/test/resources/join/merge_inner_single_batch.json
+++ b/exec/java-exec/src/test/resources/join/merge_inner_single_batch.json
@@ -1,42 +1,51 @@
 {
-  head:{
-    type:"APACHE_DRILL_PHYSICAL",
-    version:"1",
-    generator:{
-      type:"manual"
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : "1",
+    "generator" : {
+      "type" : "manual"
     }
   },
-  graph:[
-    {
-      @id:1,
-      pop:"fs-sub-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "file:///"},
-      files:[
-        { path: "#{LEFT_FILE}" }
-      ]
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-sub-scan",
+    "format" : {
+      "type" : "json"
     },
-    {
-      @id:2,
-      pop:"fs-sub-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "file:///"},
-      files:[
-        { path: "#{RIGHT_FILE}" }
-      ]
+    "storage" : {
+      "type" : "file",
+      "connection" : "file:///"
     },
-    {
-      @id: 3,
-      left: 1,
-      right: 2,
-      pop: "merge-join",
-      joinType: "INNER",
-      conditions: [ { relationship: "==", left: "a", right: "aa" } ]
+    "files" : [ {
+      "path" : "#{LEFT_FILE}"
+    } ]
+  }, {
+    "@id" : 2,
+    "pop" : "fs-sub-scan",
+    "format" : {
+      "type" : "json"
     },
-    {
-      @id: 4,
-      child: 3,
-      pop: "screen"
-    }
-  ]
-}
+    "storage" : {
+      "type" : "file",
+      "connection" : "file:///"
+    },
+    "files" : [ {
+      "path" : "#{RIGHT_FILE}"
+    } ]
+  }, {
+    "@id" : 3,
+    "left" : 1,
+    "right" : 2,
+    "pop" : "merge-join",
+    "joinType" : "INNER",
+    "conditions" : [ {
+      "relationship" : "==",
+      "left" : "a",
+      "right" : "aa"
+    } ]
+  }, {
+    "@id" : 4,
+    "child" : 3,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/join/merge_join_nullkey.json b/exec/java-exec/src/test/resources/join/merge_join_nullkey.json
index fb6bfc2..490500e 100644
--- a/exec/java-exec/src/test/resources/join/merge_join_nullkey.json
+++ b/exec/java-exec/src/test/resources/join/merge_join_nullkey.json
@@ -204,4 +204,4 @@
       "outputRowCount" : 18.0
     }
   } ]
-}
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/join/merge_multi_batch.json b/exec/java-exec/src/test/resources/join/merge_multi_batch.json
index f209a98..975f620 100644
--- a/exec/java-exec/src/test/resources/join/merge_multi_batch.json
+++ b/exec/java-exec/src/test/resources/join/merge_multi_batch.json
@@ -1,42 +1,52 @@
 {
-  head:{
-    type:"APACHE_DRILL_PHYSICAL",
-    version:"1",
-    generator:{
-      type:"manual"
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : "1",
+    "generator" : {
+      "type" : "manual"
     }
   },
-  graph:[
-    {
-      @id:1,
-      pop:"fs-sub-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "file:///"},
-      files:[
-        { path: "#{LEFT_FILE}" }
-      ]
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-sub-scan",
+    "format" : {
+      "type" : "json"
     },
-    {
-      @id:2,
-      pop:"fs-sub-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "file:///"},
-      files:[
-        { path: "#{RIGHT_FILE}" }
-      ]
+    "storage" : {
+      "type" : "file",
+      "connection" : "file:///",
+      "enabled": true
     },
-    {
-      @id: 3,
-      left: 1,
-      right: 2,
-      pop: "merge-join",
-      joinType: "LEFT",
-      conditions: [ { relationship: "==", left: "a", right: "aa" } ]
+    "files" : [ {
+      "path" : "#{LEFT_FILE}"
+    } ]
+  }, {
+    "@id" : 2,
+    "pop" : "fs-sub-scan",
+    "format" : {
+      "type" : "json"
     },
-    {
-      @id: 4,
-      child: 3,
-      pop: "screen"
-    }
-  ]
-}
+    "storage" : {
+      "type" : "file",
+      "connection" : "file:///"
+    },
+    "files" : [ {
+      "path" : "#{RIGHT_FILE}"
+    } ]
+  }, {
+    "@id" : 3,
+    "left" : 1,
+    "right" : 2,
+    "pop" : "merge-join",
+    "joinType" : "LEFT",
+    "conditions" : [ {
+      "relationship" : "==",
+      "left" : "a",
+      "right" : "aa"
+    } ]
+  }, {
+    "@id" : 4,
+    "child" : 3,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/join/merge_single_batch.json b/exec/java-exec/src/test/resources/join/merge_single_batch.json
index f209a98..975f620 100644
--- a/exec/java-exec/src/test/resources/join/merge_single_batch.json
+++ b/exec/java-exec/src/test/resources/join/merge_single_batch.json
@@ -1,42 +1,52 @@
 {
-  head:{
-    type:"APACHE_DRILL_PHYSICAL",
-    version:"1",
-    generator:{
-      type:"manual"
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : "1",
+    "generator" : {
+      "type" : "manual"
     }
   },
-  graph:[
-    {
-      @id:1,
-      pop:"fs-sub-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "file:///"},
-      files:[
-        { path: "#{LEFT_FILE}" }
-      ]
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-sub-scan",
+    "format" : {
+      "type" : "json"
     },
-    {
-      @id:2,
-      pop:"fs-sub-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "file:///"},
-      files:[
-        { path: "#{RIGHT_FILE}" }
-      ]
+    "storage" : {
+      "type" : "file",
+      "connection" : "file:///",
+      "enabled": true
     },
-    {
-      @id: 3,
-      left: 1,
-      right: 2,
-      pop: "merge-join",
-      joinType: "LEFT",
-      conditions: [ { relationship: "==", left: "a", right: "aa" } ]
+    "files" : [ {
+      "path" : "#{LEFT_FILE}"
+    } ]
+  }, {
+    "@id" : 2,
+    "pop" : "fs-sub-scan",
+    "format" : {
+      "type" : "json"
     },
-    {
-      @id: 4,
-      child: 3,
-      pop: "screen"
-    }
-  ]
-}
+    "storage" : {
+      "type" : "file",
+      "connection" : "file:///"
+    },
+    "files" : [ {
+      "path" : "#{RIGHT_FILE}"
+    } ]
+  }, {
+    "@id" : 3,
+    "left" : 1,
+    "right" : 2,
+    "pop" : "merge-join",
+    "joinType" : "LEFT",
+    "conditions" : [ {
+      "relationship" : "==",
+      "left" : "a",
+      "right" : "aa"
+    } ]
+  }, {
+    "@id" : 4,
+    "child" : 3,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/join/mj_multi_condition.json b/exec/java-exec/src/test/resources/join/mj_multi_condition.json
index 9cc1beb..05ad328 100644
--- a/exec/java-exec/src/test/resources/join/mj_multi_condition.json
+++ b/exec/java-exec/src/test/resources/join/mj_multi_condition.json
@@ -18,7 +18,8 @@
       "type" : "file",
       "connection" : "classpath:///",
       "workspaces" : null,
-      "formats" : null
+      "formats" : null,
+      "enabled": true
     },
     "format" : {
       "type" : "parquet"
@@ -126,4 +127,4 @@
     "@id" : 11,
     "child" : 10
   } ]
-}
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/largefiles/merging_receiver_large_data.json b/exec/java-exec/src/test/resources/largefiles/merging_receiver_large_data.json
index 265486d..b88ce82 100644
--- a/exec/java-exec/src/test/resources/largefiles/merging_receiver_large_data.json
+++ b/exec/java-exec/src/test/resources/largefiles/merging_receiver_large_data.json
@@ -1,9 +1,9 @@
 {
-  head:{
-    type:"APACHE_DRILL_PHYSICAL",
-    version:"1",
-    generator:{
-      type:"manual"
+  "head":{
+    "type":"APACHE_DRILL_PHYSICAL",
+    "version":"1",
+    "generator":{
+      "type":"manual"
     }
   },
   "graph" : [ {
@@ -13,6 +13,7 @@
     "storage" : {
       "type" : "file",
       "connection" : "file:///",
+      "enabled": true,
       "workspaces" : {
         "root" : {
           "location" : "/",
diff --git a/exec/java-exec/src/test/resources/lateraljoin/lateralplan1.json b/exec/java-exec/src/test/resources/lateraljoin/lateralplan1.json
index 9be5878..34ac456 100644
--- a/exec/java-exec/src/test/resources/lateraljoin/lateralplan1.json
+++ b/exec/java-exec/src/test/resources/lateraljoin/lateralplan1.json
@@ -53,7 +53,7 @@
     "exprs" : [ {
       "ref" : "`ITEM`",
       "expr" : "`o_shop`"
-    }],
+    } ],
     "child" : 7,
     "outputProj" : false,
     "initialAllocation" : 1000000,
@@ -64,7 +64,7 @@
     "@id" : 4,
     "left" : 5,
     "right" : 6,
-    "unnestForLateralJoin": 7,
+    "unnestForLateralJoin" : 7,
     "initialAllocation" : 1000000,
     "maxAllocation" : 10000000000,
     "cost" : 1000.0
@@ -83,7 +83,7 @@
     "initialAllocation" : 1000000,
     "maxAllocation" : 10000000000,
     "cost" : 1000.0
-  },  {
+  }, {
     "pop" : "screen",
     "@id" : 0,
     "child" : 3,
@@ -91,5 +91,4 @@
     "maxAllocation" : 10000000000,
     "cost" : 1000.0
   } ]
-}
-
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/limit/limit_exchanges.json b/exec/java-exec/src/test/resources/limit/limit_exchanges.json
index c2303c8..b706537 100644
--- a/exec/java-exec/src/test/resources/limit/limit_exchanges.json
+++ b/exec/java-exec/src/test/resources/limit/limit_exchanges.json
@@ -18,6 +18,7 @@
       "type" : "file",
       "connection" : "classpath:///",
       "workspaces" : null,
+      "enabled": true,
       "formats" : {
         "psv" : {
           "type" : "text",
@@ -63,8 +64,7 @@
     "pop" : "union-exchange",
     "@id" : 4,
     "child" : 3
-  },
-{
+  }, {
     "pop" : "project",
     "@id" : 5,
     "exprs" : [ {
@@ -72,8 +72,7 @@
       "expr" : "`N_NATIONKEY`"
     } ],
     "child" : 4
-  },
-{
+  }, {
     "pop" : "limit",
     "@id" : 6,
     "child" : 5,
@@ -84,4 +83,4 @@
     "@id" : 7,
     "child" : 6
   } ]
-}
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/logical_group.json b/exec/java-exec/src/test/resources/logical_group.json
index f4dd169..dd4bd84 100644
--- a/exec/java-exec/src/test/resources/logical_group.json
+++ b/exec/java-exec/src/test/resources/logical_group.json
@@ -1,90 +1,91 @@
 {
-  head : {
-    type : "APACHE_DRILL_LOGICAL",
-    version : 1,
-    generator : {
-      type : "optiq",
-      info : "na"
+  "head" : {
+    "type" : "APACHE_DRILL_LOGICAL",
+    "version" : 1,
+    "generator" : {
+      "type" : "optiq",
+      "info" : "na"
     }
   },
-  storage : {
-    parquet-local : {
-      type : "parquet",
-      dfsName : "file:///"
+  "storage" : {
+    "parquet-local" : {
+      "type" : "parquet",
+      "dfsName" : "file:///",
+      "enabled": true
     }
   },
-  query : [ {
-    op : "scan",
-    @id : 1,
-    memo : "initial_scan",
-    storageengine : "parquet-local",
-    selection : [ {
-      path : "/tmp/parquet"
+  "query" : [ {
+    "op" : "scan",
+    "@id" : 1,
+    "memo" : "initial_scan",
+    "storageengine" : "parquet-local",
+    "selection" : [ {
+      "path" : "/tmp/parquet"
     } ],
-    ref : "_MAP"
+    "ref" : "_MAP"
   }, {
-    op : "project",
-    @id : 2,
-    input : 1,
-    projections : [ {
-      ref : "$f0",
-      expr : "_MAP.b"
+    "op" : "project",
+    "@id" : 2,
+    "input" : 1,
+    "projections" : [ {
+      "ref" : "$f0",
+      "expr" : "_MAP.b"
     }, {
-      ref : "$f1",
-      expr : "_MAP.d"
+      "ref" : "$f1",
+      "expr" : "_MAP.d"
     }, {
-      ref : "$f2",
-      expr : "1"
+      "ref" : "$f2",
+      "expr" : "1"
     }, {
-      ref : "$f3",
-      expr : "2"
+      "ref" : "$f3",
+      "expr" : "2"
     } ]
   }, {
-    op : "segment",
-    @id : 3,
-    input : 2,
-    exprs : [ "$f0", "$f1" ],
-    name : "segment"
+    "op" : "segment",
+    "@id" : 3,
+    "input" : 2,
+    "exprs" : [ "$f0", "$f1" ],
+    "name" : "segment"
   }, {
-    op : "collapsingaggregate",
-    @id : 4,
-    input : 3,
-    within : "segment",
-    target : null,
-    carryovers : [ "$f0", "$f1" ],
-    aggregations : [ {
-      ref : "EXPR$0",
-      expr : "count($f2) "
+    "op" : "collapsingaggregate",
+    "@id" : 4,
+    "input" : 3,
+    "within" : "segment",
+    "target" : null,
+    "carryovers" : [ "$f0", "$f1" ],
+    "aggregations" : [ {
+      "ref" : "EXPR$0",
+      "expr" : "count($f2) "
     }, {
-      ref : "EXPR$1",
-      expr : "count($f3) "
+      "ref" : "EXPR$1",
+      "expr" : "count($f3) "
     } ]
   }, {
-    op : "project",
-    @id : 5,
-    input : 4,
-    projections : [ {
-      ref : "EXPR$0",
-      expr : "EXPR$0"
+    "op" : "project",
+    "@id" : 5,
+    "input" : 4,
+    "projections" : [ {
+      "ref" : "EXPR$0",
+      "expr" : "EXPR$0"
     }, {
-      ref : "EXPR$1",
-      expr : "EXPR$1"
+      "ref" : "EXPR$1",
+      "expr" : "EXPR$1"
     }, {
-      ref : "C",
-      expr : "$f0"
+      "ref" : "C",
+      "expr" : "$f0"
     }, {
-      ref : "X",
-      expr : "$f1"
+      "ref" : "X",
+      "expr" : "$f1"
     } ]
   }, {
-    op : "store",
-    @id : 6,
-    memo : "output sink",
-    input : 5,
-    target : {
-      number : 0
+    "op" : "store",
+    "@id" : 6,
+    "memo" : "output sink",
+    "input" : 5,
+    "target" : {
+      "number" : 0
     },
-    partition : null,
-    storageEngine : "queue"
+    "partition" : null,
+    "storageEngine" : "queue"
   } ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/logical_json_scan.json b/exec/java-exec/src/test/resources/logical_json_scan.json
index b1cc4ce..2fa2d6f 100644
--- a/exec/java-exec/src/test/resources/logical_json_scan.json
+++ b/exec/java-exec/src/test/resources/logical_json_scan.json
@@ -1,34 +1,35 @@
 {
-  head : {
-    type : "APACHE_DRILL_LOGICAL",
-    version : 1,
-    generator : {
-      type : "optiq",
-      info : "na"
+  "head" : {
+    "type" : "APACHE_DRILL_LOGICAL",
+    "version" : 1,
+    "generator" : {
+      "type" : "optiq",
+      "info" : "na"
     }
   },
-  storage : {
-    jsonl : {
-      type : "file",
-      connection : "file:///"
+  "storage" : {
+    "jsonl" : {
+      "type" : "file",
+      "connection" : "file:///",
+      "enabled": true
     }
   },
-  query : [ {
-    op : "scan",
-    @id : 1,
-    memo : "initial_scan",
-    storageengine : "jsonl",
-    files : [ path : "/src/drill/sandbox/prototype/exec/ref/src/test/resources/employees.json" ],
-    ref : "_MAP"
+  "query" : [ {
+    "op" : "scan",
+    "@id" : 1,
+    "memo" : "initial_scan",
+    "storageengine" : "jsonl",
+    "files" : { "path" : "/src/drill/sandbox/prototype/exec/ref/src/test/resources/employees.json" },
+    "ref" : "_MAP"
   }, {
-    op : "store",
-    @id : 2,
-    memo : "output sink",
-    input : 1,
-    target : {
-      number : 0
+    "op" : "store",
+    "@id" : 2,
+    "memo" : "output sink",
+    "input" : 1,
+    "target" : {
+      "number" : 0
     },
-    partition : null,
-    storageEngine : "queue"
+    "partition" : null,
+    "storageEngine" : "queue"
   } ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/logical_order.json b/exec/java-exec/src/test/resources/logical_order.json
index 3e7fdfa..c77a57b 100644
--- a/exec/java-exec/src/test/resources/logical_order.json
+++ b/exec/java-exec/src/test/resources/logical_order.json
@@ -1,57 +1,58 @@
 {
-  head : {
-    type : "APACHE_DRILL_LOGICAL",
-    version : 1,
-    generator : {
-      type : "optiq",
-      info : "na"
+  "head" : {
+    "type" : "APACHE_DRILL_LOGICAL",
+    "version" : 1,
+    "generator" : {
+      "type" : "optiq",
+      "info" : "na"
     }
   },
-  storage : {
-    parquet-local : {
-      type : "parquet",
-      dfsName : "file:///"
+  "storage" : {
+    "parquet-local" : {
+      "type" : "parquet",
+      "dfsName" : "file:///",
+      "enabled" : true
     }
   },
-  query : [ {
-    op : "scan",
-    @id : 1,
-    memo : "initial_scan",
-    storageengine : "parquet-local",
-    selection : [ {
-      path : "/tmp/parquet"
+  "query" : [ {
+    "op" : "scan",
+    "@id" : 1,
+    "memo" : "initial_scan",
+    "storageengine" : "parquet-local",
+    "selection" : [ {
+      "path" : "/tmp/parquet"
     } ],
-    ref : "_MAP"
+    "ref" : "_MAP"
   }, {
-    op : "project",
-    @id : 2,
-    input : 1,
-    projections : [ {
-      ref : "EXPR$0",
-      expr : "_MAP.d"
+    "op" : "project",
+    "@id" : 2,
+    "input" : 1,
+    "projections" : [ {
+      "ref" : "EXPR$0",
+      "expr" : "_MAP.d"
     }, {
-      ref : "C",
-      expr : "_MAP.b"
+      "ref" : "C",
+      "expr" : "_MAP.b"
     } ]
   }, {
-    op : "order",
-    @id : 3,
-    input : 2,
-    within : null,
-    orderings : [ {
-      order : "asc",
-      expr : "EXPR$0",
-      nullCollation : "NULLS_LAST"
+    "op" : "order",
+    "@id" : 3,
+    "input" : 2,
+    "within" : null,
+    "orderings" : [ {
+      "order" : "asc",
+      "expr" : "EXPR$0",
+      "nullCollation" : "NULLS_LAST"
     } ]
   }, {
-    op : "store",
-    @id : 4,
-    memo : "output sink",
-    input : 3,
-    target : {
-      number : 0
+    "op" : "store",
+    "@id" : 4,
+    "memo" : "output sink",
+    "input" : 3,
+    "target" : {
+      "number" : 0
     },
-    partition : null,
-    storageEngine : "queue"
+    "partition" : null,
+    "storageEngine" : "queue"
   } ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/logical_string_filter.json b/exec/java-exec/src/test/resources/logical_string_filter.json
index d8875d3..5e9f6c2 100644
--- a/exec/java-exec/src/test/resources/logical_string_filter.json
+++ b/exec/java-exec/src/test/resources/logical_string_filter.json
@@ -1,52 +1,53 @@
 {
-  head : {
-    type : "APACHE_DRILL_LOGICAL",
-    version : 1,
-    generator : {
-      type : "optiq",
-      info : "na"
+  "head" : {
+    "type" : "APACHE_DRILL_LOGICAL",
+    "version" : 1,
+    "generator" : {
+      "type" : "optiq",
+      "info" : "na"
     }
   },
-  storage : {
-    parquet-local : {
-      type : "parquet",
-      dfsName : "file:///"
+  "storage" : {
+    "parquet-local" : {
+      "type" : "parquet",
+      "dfsName" : "file:///",
+      "enabled" : true
     }
   },
-  query : [ {
-    op : "scan",
-    @id : 1,
-    memo : "initial_scan",
-    storageengine : "parquet-local",
-    selection : [ {
-      path : "/tmp/region.parquet"
+  "query" : [ {
+    "op" : "scan",
+    "@id" : 1,
+    "memo" : "initial_scan",
+    "storageengine" : "parquet-local",
+    "selection" : [ {
+      "path" : "/tmp/region.parquet"
     } ],
-    ref : "_MAP"
+    "ref" : "_MAP"
   }, {
-    op : "filter",
-    @id : 2,
-    input : 1,
-    expr : " (_MAP.R_NAME)  == ('AFRICA') "
+    "op" : "filter",
+    "@id" : 2,
+    "input" : 1,
+    "expr" : " (_MAP.R_NAME)  == ('AFRICA') "
   }, {
-    op : "project",
-    @id : 3,
-    input : 2,
-    projections : [ {
-      ref : "EXPR$0",
-      expr : "_MAP.R_REGIONKEY"
+    "op" : "project",
+    "@id" : 3,
+    "input" : 2,
+    "projections" : [ {
+      "ref" : "EXPR$0",
+      "expr" : "_MAP.R_REGIONKEY"
     }, {
-      ref : "NAME",
-      expr : "_MAP.R_NAME"
+      "ref" : "NAME",
+      "expr" : "_MAP.R_NAME"
     } ]
   }, {
-    op : "store",
-    @id : 4,
-    memo : "output sink",
-    input : 3,
-    target : {
-      number : 0
+    "op" : "store",
+    "@id" : 4,
+    "memo" : "output sink",
+    "input" : 3,
+    "target" : {
+      "number" : 0
     },
-    partition : null,
-    storageEngine : "queue"
+    "partition" : null,
+    "storageEngine" : "queue"
   } ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/parquet/par_writer_test.json b/exec/java-exec/src/test/resources/parquet/par_writer_test.json
index 34f2ba6..6737ae8 100644
--- a/exec/java-exec/src/test/resources/parquet/par_writer_test.json
+++ b/exec/java-exec/src/test/resources/parquet/par_writer_test.json
@@ -1,26 +1,26 @@
-  {
-    head : {
-      version : 1,
-          generator : {
-        type : "manual",
-            info : "na"
-      },
-      type : "APACHE_DRILL_PHYSICAL"
+{
+  "head" : {
+    "version" : 1,
+    "generator" : {
+      "type" : "manual",
+      "info" : "na"
     },
-    graph : [ {
-    pop : "parquet-scan",
-    @id : 1,
-        entries : [ {
-      path : "/tpch/lineitem.parquet"
+    "type" : "APACHE_DRILL_PHYSICAL"
+  },
+  "graph" : [ {
+    "pop" : "parquet-scan",
+    "@id" : 1,
+    "entries" : [ {
+      "path" : "/tpch/lineitem.parquet"
     } ],
-    storage : {
-      type : "file",
-      connection : "classpath:///"
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///"
     },
-    columns: [ "L_COMMENT"]
+    "columns" : [ "L_COMMENT" ]
   }, {
-    pop : "screen",
-    @id : 2,
-        child : 1
+    "pop" : "screen",
+    "@id" : 2,
+    "child" : 1
   } ]
-  }
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/parquet/parquet_group_scan_union_screen.json b/exec/java-exec/src/test/resources/parquet/parquet_group_scan_union_screen.json
index 0ec2994..8d9a4dd 100644
--- a/exec/java-exec/src/test/resources/parquet/parquet_group_scan_union_screen.json
+++ b/exec/java-exec/src/test/resources/parquet/parquet_group_scan_union_screen.json
@@ -1,54 +1,55 @@
 {
-  head : {
-    type : "APACHE_DRILL_PHYSICAL",
-    version : 1,
-    generator : {
-      type : "optiq",
-      info : "na"
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : 1,
+    "generator" : {
+      "type" : "optiq",
+      "info" : "na"
     }
   },
-  graph : [ {
-    pop : "parquet-scan",
-    @id : 1,
-    entries : [ {
-      path : "/tmp/tpc-h/supplier"
+  "graph" : [ {
+    "pop" : "parquet-scan",
+    "@id" : 1,
+    "entries" : [ {
+      "path" : "/tmp/tpc-h/supplier"
     } ],
-    storageengine : {
-      type : "parquet",
-      dfsName : "file:///"
+    "storageengine" : {
+      "type" : "parquet",
+      "dfsName" : "file:///",
+      "enabled": true
     },
-    ref : "_MAP",
-    fragmentPointer : 0
+    "ref" : "_MAP",
+    "fragmentPointer" : 0
   }, {
-    pop : "project",
-    @id : 2,
-    exprs : [ {
-      ref : "output.$f0",
-      expr : "1"
+    "pop" : "project",
+    "@id" : 2,
+    "exprs" : [ {
+      "ref" : "output.$f0",
+      "expr" : "1"
     } ],
-    child : 1
+    "child" : 1
   }, {
-    pop : "sort",
-    @id : 3,
-    child : 2,
-    orderings : [ ],
-    reverse : false
+    "pop" : "sort",
+    "@id" : 3,
+    "child" : 2,
+    "orderings" : [ ],
+    "reverse" : false
   }, {
-    pop : "streaming-aggregate",
-    @id : 4,
-    child : 3,
-    keys : [ ],
-    exprs : [ {
-      ref : "EXPR$0",
-      expr : "count($f0) "
+    "pop" : "streaming-aggregate",
+    "@id" : 4,
+    "child" : 3,
+    "keys" : [ ],
+    "exprs" : [ {
+      "ref" : "EXPR$0",
+      "expr" : "count($f0) "
     } ]
   }, {
-    pop : "selection-vector-remover",
-    @id : 5,
-    child : 4
+    "pop" : "selection-vector-remover",
+    "@id" : 5,
+    "child" : 4
   }, {
-    pop : "screen",
-    @id : 6,
-    child : 5
+    "pop" : "screen",
+    "@id" : 6,
+    "child" : 5
   } ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/parquet/parquet_nullable.json b/exec/java-exec/src/test/resources/parquet/parquet_nullable.json
index 3e09f83..e7df17d 100644
--- a/exec/java-exec/src/test/resources/parquet/parquet_nullable.json
+++ b/exec/java-exec/src/test/resources/parquet/parquet_nullable.json
@@ -1,42 +1,36 @@
 {
-  head:{
-    type:"APACHE_DRILL_LOGICAL",
-    version:"1",
-    generator:{
-      type:"manual",
-      info:"na"
+  "head" : {
+    "type" : "APACHE_DRILL_LOGICAL",
+    "version" : "1",
+    "generator" : {
+      "type" : "manual",
+      "info" : "na"
     }
   },
-  storage:{
-    "dfs" :
-      {
-        "type":"named",
-        "name":"dfs"
-      }
+  "storage" : {
+    "dfs" : {
+      "type" : "named",
+      "name" : "dfs"
+    }
   },
-  query:[
-    {
-      @id:"1",
-      op:"scan",
-      memo:"initial_scan",
-      storageengine:"dfs",
-      selection: {
-          format: {type: "parquet"},
-          files: [
-            "/tmp/nullable_test.parquet"
-          ]
-       }
-    },
-    {
-      @id:"2",
-      input: 1,
-      op: "store",
-      memo: "output sink",
-      target: {
-        file: "console:///stdout"
-      }
-
+  "query" : [ {
+    "@id" : "1",
+    "op" : "scan",
+    "memo" : "initial_scan",
+    "storageengine" : "dfs",
+    "selection" : {
+      "format" : {
+        "type" : "parquet"
+      },
+      "files" : [ "/tmp/nullable_test.parquet" ]
+    }
+  }, {
+    "@id" : "2",
+    "input" : 1,
+    "op" : "store",
+    "memo" : "output sink",
+    "target" : {
+      "file" : "console:///stdout"
     }
-
-  ]
+  } ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/parquet/parquet_nullable_varlen.json b/exec/java-exec/src/test/resources/parquet/parquet_nullable_varlen.json
index 9547f00..a450a2d 100644
--- a/exec/java-exec/src/test/resources/parquet/parquet_nullable_varlen.json
+++ b/exec/java-exec/src/test/resources/parquet/parquet_nullable_varlen.json
@@ -1,42 +1,36 @@
 {
-  head:{
-    type:"APACHE_DRILL_LOGICAL",
-    version:"1",
-    generator:{
-      type:"manual",
-      info:"na"
+  "head" : {
+    "type" : "APACHE_DRILL_LOGICAL",
+    "version" : "1",
+    "generator" : {
+      "type" : "manual",
+      "info" : "na"
     }
   },
-  storage:{
-    "dfs" :
-      {
-        "type":"named",
-        "name":"dfs"
-      }
+  "storage" : {
+    "dfs" : {
+      "type" : "named",
+      "name" : "dfs"
+    }
   },
-  query:[
-    {
-      @id:"1",
-      op:"scan",
-      memo:"initial_scan",
-      storageengine:"dfs",
-      selection: {
-          format: {type: "parquet"},
-          files: [
-            "/tmp/nullable_varlen.parquet"
-          ]
-       }
-    },
-    {
-      @id:"2",
-      input: 1,
-      op: "store",
-      memo: "output sink",
-      target: {
-        file: "console:///stdout"
-      }
-
+  "query" : [ {
+    "@id" : "1",
+    "op" : "scan",
+    "memo" : "initial_scan",
+    "storageengine" : "dfs",
+    "selection" : {
+      "format" : {
+        "type" : "parquet"
+      },
+      "files" : [ "/tmp/nullable_varlen.parquet" ]
+    }
+  }, {
+    "@id" : "2",
+    "input" : 1,
+    "op" : "store",
+    "memo" : "output sink",
+    "target" : {
+      "file" : "console:///stdout"
     }
-
-  ]
-}
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/parquet/parquet_scan_screen.json b/exec/java-exec/src/test/resources/parquet/parquet_scan_screen.json
index 50281f4..ad817bb 100644
--- a/exec/java-exec/src/test/resources/parquet/parquet_scan_screen.json
+++ b/exec/java-exec/src/test/resources/parquet/parquet_scan_screen.json
@@ -1,43 +1,37 @@
 {
-  head:{
-    type:"APACHE_DRILL_LOGICAL",
-    version:"1",
-    generator:{
-      type:"manual",
-      info:"na"
+  "head" : {
+    "type" : "APACHE_DRILL_LOGICAL",
+    "version" : "1",
+    "generator" : {
+      "type" : "manual",
+      "info" : "na"
     }
   },
-  storage:{
-    "dfs" :
-      {
-        "type":"named",
-        "name":"dfs"
-      }
+  "storage" : {
+    "dfs" : {
+      "type" : "named",
+      "name" : "dfs",
+      "enable" : true
+    }
   },
-  query:[
-    {
-      @id:"1",
-      op:"scan",
-      memo:"initial_scan",
-      storageengine:"dfs",
-      selection: {
-        format: {type: "parquet"},
-        files: [
-          "/tmp/parquet_test_file_many_types",
-          "/tmp/parquet_test_file_many_types"
-        ]
-      }
-    },
-    {
-      @id:"2",
-      input: 1,
-      op: "store",
-      memo: "output sink",
-      target: {
-        file: "console:///stdout"
-      }
-
+  "query" : [ {
+    "@id" : "1",
+    "op" : "scan",
+    "memo" : "initial_scan",
+    "storageengine" : "dfs",
+    "selection" : {
+      "format" : {
+        "type" : "parquet"
+      },
+      "files" : [ "/tmp/parquet_test_file_many_types", "/tmp/parquet_test_file_many_types" ]
+    }
+  }, {
+    "@id" : "2",
+    "input" : 1,
+    "op" : "store",
+    "memo" : "output sink",
+    "target" : {
+      "file" : "console:///stdout"
     }
-
-  ]
-}
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/parquet/parquet_scan_screen_read_entry_replace.json b/exec/java-exec/src/test/resources/parquet/parquet_scan_screen_read_entry_replace.json
index 1bd52b4..6b68192 100644
--- a/exec/java-exec/src/test/resources/parquet/parquet_scan_screen_read_entry_replace.json
+++ b/exec/java-exec/src/test/resources/parquet/parquet_scan_screen_read_entry_replace.json
@@ -11,7 +11,8 @@
     "fs" :
       {
         "type":"file",
-        "connection" : "file:///"
+        "connection" : "file:///",
+        "enabled": true
       }
   },
   query:[
diff --git a/exec/java-exec/src/test/resources/parquet/parquet_scan_union_screen_physical.json b/exec/java-exec/src/test/resources/parquet/parquet_scan_union_screen_physical.json
index a49b914..7e24b60 100644
--- a/exec/java-exec/src/test/resources/parquet/parquet_scan_union_screen_physical.json
+++ b/exec/java-exec/src/test/resources/parquet/parquet_scan_union_screen_physical.json
@@ -1,32 +1,28 @@
 {
-  head : {
-    type : "APACHE_DRILL_PHYSICAL",
-    version : 1,
-    generator : {
-      type : "manual"
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : 1,
+    "generator" : {
+      "type" : "manual"
     }
   },
-  graph : [ {
-    pop : "parquet-scan",
-    @id : 1,
-    entries : [
-    {
-        path : "/tmp/parquet_test_file_many_types"
+  "graph" : [ {
+    "pop" : "parquet-scan",
+    "@id" : 1,
+    "entries" : [ {
+      "path" : "/tmp/parquet_test_file_many_types"
+    } ],
+    "storage" : {
+      "type" : "file",
+      "connection" : "file:///"
     }
-    ],
-    storage:{
-                         "type":"file",
-                         "connection" : "file:///"
-                   }
-  },
-  {
-     "@id": 2,
-     "child": 1,
-     "pop": "union-exchange"
-  },
-  {
-    pop : "screen",
-    @id : 3,
-    child : 2
+  }, {
+    "@id" : 2,
+    "child" : 1,
+    "pop" : "union-exchange"
+  }, {
+    "pop" : "screen",
+    "@id" : 3,
+    "child" : 2
   } ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/parquet/parquet_selective_column_read.json b/exec/java-exec/src/test/resources/parquet/parquet_selective_column_read.json
index 515affc..519a016 100644
--- a/exec/java-exec/src/test/resources/parquet/parquet_selective_column_read.json
+++ b/exec/java-exec/src/test/resources/parquet/parquet_selective_column_read.json
@@ -1,27 +1,27 @@
 {
-  head : {
-    version : 1,
-    generator : {
-      type : "manual",
-      info : "na"
+  "head" : {
+    "version" : 1,
+    "generator" : {
+      "type" : "manual",
+      "info" : "na"
     },
-    type : "APACHE_DRILL_PHYSICAL"
+    "type" : "APACHE_DRILL_PHYSICAL"
   },
-  graph : [ {
-    pop : "parquet-scan",
-    @id : 1,
-    entries : [ {
-      path : "/tmp/test.parquet"
+  "graph" : [ {
+    "pop" : "parquet-scan",
+    "@id" : 1,
+    "entries" : [ {
+      "path" : "/tmp/test.parquet"
     } ],
-    storage : {
-      type : "file",
-      connection : "file:///"
+    "storage" : {
+      "type" : "file",
+      "connection" : "file:///",
+      "enabled" : true
     },
-    columns: [ "integer", "bigInt", "bin", "bin2"]
+    "columns" : [ "integer", "bigInt", "bin", "bin2" ]
   }, {
-    pop : "screen",
-    @id : 2,
-    child : 1
+    "pop" : "screen",
+    "@id" : 2,
+    "child" : 1
   } ]
-}
-
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/physical_filter.json b/exec/java-exec/src/test/resources/physical_filter.json
index 878f79d..3a61b83 100644
--- a/exec/java-exec/src/test/resources/physical_filter.json
+++ b/exec/java-exec/src/test/resources/physical_filter.json
@@ -1,44 +1,44 @@
 {
-  head : {
-    type : "APACHE_DRILL_PHYSICAL",
-    version : 1,
-    generator : {
-      type : "optiq",
-      info : "na"
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : 1,
+    "generator" : {
+      "type" : "optiq",
+      "info" : "na"
     }
   },
-  graph : [ {
-    pop : "parquet-scan",
-    @id : 1,
-    entries : [ {
-      path : "/tmp/parquet"
+  "graph" : [ {
+    "pop" : "parquet-scan",
+    "@id" : 1,
+    "entries" : [ {
+      "path" : "/tmp/parquet"
     } ],
-    storageengine: {
-      type: "parquet",
-      dfsName: "file:///"
+    "storageengine" : {
+      "type" : "parquet",
+      "dfsName" : "file:///"
     },
-    ref : "_MAP",
-    fragmentPointer : 0
+    "ref" : "_MAP",
+    "fragmentPointer" : 0
   }, {
-    pop : "filter",
-    @id : 2,
-    child : 1,
-    expr : " (_MAP.bigInt)  < (0) "
+    "pop" : "filter",
+    "@id" : 2,
+    "child" : 1,
+    "expr" : " (_MAP.bigInt)  < (0) "
   }, {
-    pop : "selection-vector-remover",
-    @id : 3,
-    child : 2
+    "pop" : "selection-vector-remover",
+    "@id" : 3,
+    "child" : 2
   }, {
-    pop : "project",
-    @id : 4,
-    exprs : [ {
-      ref : "KEY",
-      expr : "_MAP.bigInt"
+    "pop" : "project",
+    "@id" : 4,
+    "exprs" : [ {
+      "ref" : "KEY",
+      "expr" : "_MAP.bigInt"
     } ],
-    child : 3
+    "child" : 3
   }, {
-    pop : "screen",
-    @id : 5,
-    child : 4
+    "pop" : "screen",
+    "@id" : 5,
+    "child" : 4
   } ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/physical_join.json b/exec/java-exec/src/test/resources/physical_join.json
index 0ad268b..bf593d7 100644
--- a/exec/java-exec/src/test/resources/physical_join.json
+++ b/exec/java-exec/src/test/resources/physical_join.json
@@ -1,117 +1,123 @@
 {
-  head : {
-    type : "APACHE_DRILL_PHYSICAL",
-    version : 1,
-    generator : {
-      type : "optiq",
-      info : "na"
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : 1,
+    "generator" : {
+      "type" : "optiq",
+      "info" : "na"
     }
   },
-  graph : [ {
-    pop : "parquet-scan",
-    @id : 1,
-    entries : [ {
-      path : "/tmp/region.parquet"
+  "graph" : [ {
+    "pop" : "parquet-scan",
+    "@id" : 1,
+    "entries" : [ {
+      "path" : "/tmp/region.parquet"
     } ],
-    ref : "_MAP",
-    storageengine: {type: "parquet", dfsName: "file:///" },
-    fragmentPointer : 0
+    "ref" : "_MAP",
+    "storageengine" : {
+      "type" : "parquet",
+      "dfsName" : "file:///"
+    },
+    "fragmentPointer" : 0
   }, {
-    pop : "project",
-    @id : 2,
-    exprs : [ {
-      ref : "REGIONKEY",
-      expr : "_MAP.R_REGIONKEY"
+    "pop" : "project",
+    "@id" : 2,
+    "exprs" : [ {
+      "ref" : "REGIONKEY",
+      "expr" : "_MAP.R_REGIONKEY"
     }, {
-      ref : "NAME",
-      expr : "_MAP.R_NAME"
+      "ref" : "NAME",
+      "expr" : "_MAP.R_NAME"
     } ],
-    child : 1
+    "child" : 1
   }, {
-    pop : "project",
-    @id : 3,
-    exprs : [ {
-      ref : "REGIONKEY0",
-      expr : "REGIONKEY"
+    "pop" : "project",
+    "@id" : 3,
+    "exprs" : [ {
+      "ref" : "REGIONKEY0",
+      "expr" : "REGIONKEY"
     }, {
-      ref : "NAME0",
-      expr : "NAME"
+      "ref" : "NAME0",
+      "expr" : "NAME"
     } ],
-    child : 2
+    "child" : 2
   }, {
-    pop : "sort",
-    @id : 4,
-    child : 3,
-    orderings : [ {
-      order : "ASC",
-      expr : "NAME0"
+    "pop" : "sort",
+    "@id" : 4,
+    "child" : 3,
+    "orderings" : [ {
+      "order" : "ASC",
+      "expr" : "NAME0"
     } ],
-    reverse : false
+    "reverse" : false
   }, {
-    pop : "selection-vector-remover",
-    @id : 5,
-    child : 4
+    "pop" : "selection-vector-remover",
+    "@id" : 5,
+    "child" : 4
   }, {
-    pop : "parquet-scan",
-    @id : 6,
-    entries : [ {
-      path : "/tmp/nation.parquet"
+    "pop" : "parquet-scan",
+    "@id" : 6,
+    "entries" : [ {
+      "path" : "/tmp/nation.parquet"
     } ],
-    storageengine: {type: "parquet", dfsName: "file:///" },
-    ref : "_MAP",
-    fragmentPointer : 0
+    "storageengine" : {
+      "type" : "parquet",
+      "dfsName" : "file:///"
+    },
+    "ref" : "_MAP",
+    "fragmentPointer" : 0
   }, {
-    pop : "project",
-    @id : 7,
-    exprs : [ {
-      ref : "NAME",
-      expr : "_MAP.N_NAME"
+    "pop" : "project",
+    "@id" : 7,
+    "exprs" : [ {
+      "ref" : "NAME",
+      "expr" : "_MAP.N_NAME"
     }, {
-      ref : "REGIONKEY",
-      expr : "_MAP.N_REGIONKEY"
+      "ref" : "REGIONKEY",
+      "expr" : "_MAP.N_REGIONKEY"
     } ],
-    child : 6
+    "child" : 6
   }, {
-    pop : "sort",
-    @id : 8,
-    child : 7,
-    orderings : [ {
-      order : "ASC",
-      expr : "REGIONKEY"
+    "pop" : "sort",
+    "@id" : 8,
+    "child" : 7,
+    "orderings" : [ {
+      "order" : "ASC",
+      "expr" : "REGIONKEY"
     } ],
-    reverse : false
+    "reverse" : false
   }, {
-    pop : "selection-vector-remover",
-    @id : 9,
-    child : 8
+    "pop" : "selection-vector-remover",
+    "@id" : 9,
+    "child" : 8
   }, {
-    pop : "merge-join",
-    @id : 10,
-    left: 9,
-    right: 5,
-    conditions : [ {
-      relationship : "==",
-      left : "REGIONKEY",
-      right : "NAME0"
+    "pop" : "merge-join",
+    "@id" : 10,
+    "left" : 9,
+    "right" : 5,
+    "conditions" : [ {
+      "relationship" : "==",
+      "left" : "REGIONKEY",
+      "right" : "NAME0"
     } ]
   }, {
-    pop : "selection-vector-remover",
-    @id : 11,
-    child : 10
+    "pop" : "selection-vector-remover",
+    "@id" : 11,
+    "child" : 10
   }, {
-    pop : "project",
-    @id : 12,
-    exprs : [ {
-      ref : "NAME",
-      expr : "NAME"
+    "pop" : "project",
+    "@id" : 12,
+    "exprs" : [ {
+      "ref" : "NAME",
+      "expr" : "NAME"
     }, {
-      ref : "NAME0",
-      expr : "NAME0"
+      "ref" : "NAME0",
+      "expr" : "NAME0"
     } ],
-    child : 11
+    "child" : 11
   }, {
-    pop : "screen",
-    @id : 13,
-    child : 12
+    "pop" : "screen",
+    "@id" : 13,
+    "child" : 12
   } ]
-}
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/physical_json_scan_test1.json b/exec/java-exec/src/test/resources/physical_json_scan_test1.json
index 5013d6d..9019f5a 100644
--- a/exec/java-exec/src/test/resources/physical_json_scan_test1.json
+++ b/exec/java-exec/src/test/resources/physical_json_scan_test1.json
@@ -1,28 +1,30 @@
 {
-    head:{
-        type:"APACHE_DRILL_PHYSICAL",
-        version:"1",
-        generator:{
-            type:"manual"
-        }
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : "1",
+    "generator" : {
+      "type" : "manual"
+    }
+  },
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
     },
-    graph:[
-        {
-            @id:1,
-            pop:"fs-scan",
-            format: {type: "json"},
-            storage:{type: "file", connection: "file:///"},
-            files: [ "#{TEST_FILE}" ]
-        },
-        {
-            @id: 2,
-            child: 1,
-            pop: "union-exchange"
-        },
-        {
-            @id: 3,
-            child: 2,
-            pop: "screen"
-        }
-    ]
-}
+    "storage" : {
+      "type" : "file",
+      "connection" : "file:///",
+      "enabled" : true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
+    "@id" : 2,
+    "child" : 1,
+    "pop" : "union-exchange"
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/physical_order_varbinary.json b/exec/java-exec/src/test/resources/physical_order_varbinary.json
index 3493278..ef17d00 100644
--- a/exec/java-exec/src/test/resources/physical_order_varbinary.json
+++ b/exec/java-exec/src/test/resources/physical_order_varbinary.json
@@ -1,48 +1,51 @@
 {
-  head : {
-    type : "APACHE_DRILL_PHYSICAL",
-    version : 1,
-    generator : {
-      type : "optiq",
-      info : "na"
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : 1,
+    "generator" : {
+      "type" : "optiq",
+      "info" : "na"
     }
   },
-  graph : [ {
-    pop : "parquet-scan",
-    @id : 1,
-    entries : [ {
-      path : "/tmp/nation.parquet"
+  "graph" : [ {
+    "pop" : "parquet-scan",
+    "@id" : 1,
+    "entries" : [ {
+      "path" : "/tmp/nation.parquet"
     } ],
-    storageengine: {type: "parquet", dfsName: "file:///" },
-    ref : "_MAP",
-    fragmentPointer : 0
+    "storageengine" : {
+      "type" : "parquet",
+      "dfsName" : "file:///"
+    },
+    "ref" : "_MAP",
+    "fragmentPointer" : 0
   }, {
-    pop : "project",
-    @id : 2,
-    exprs : [ {
-      ref : "REGIONKEY",
-      expr : "_MAP.N_REGIONKEY"
+    "pop" : "project",
+    "@id" : 2,
+    "exprs" : [ {
+      "ref" : "REGIONKEY",
+      "expr" : "_MAP.N_REGIONKEY"
     }, {
-      ref : "NAME",
-      expr : "_MAP.N_NAME"
+      "ref" : "NAME",
+      "expr" : "_MAP.N_NAME"
     } ],
-    child : 1
+    "child" : 1
   }, {
-    pop : "sort",
-    @id : 3,
-    child : 2,
-    orderings : [ {
-      order : "ASC",
-      expr : "NAME"
+    "pop" : "sort",
+    "@id" : 3,
+    "child" : 2,
+    "orderings" : [ {
+      "order" : "ASC",
+      "expr" : "NAME"
     } ],
-    reverse : false
+    "reverse" : false
   }, {
-    pop : "selection-vector-remover",
-    @id : 4,
-    child : 3
+    "pop" : "selection-vector-remover",
+    "@id" : 4,
+    "child" : 3
   }, {
-    pop : "screen",
-    @id : 5,
-    child : 4
+    "pop" : "screen",
+    "@id" : 5,
+    "child" : 4
   } ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/record/vector/test_all_date_literals.json b/exec/java-exec/src/test/resources/record/vector/test_all_date_literals.json
index 657b016..e5bd788 100644
--- a/exec/java-exec/src/test/resources/record/vector/test_all_date_literals.json
+++ b/exec/java-exec/src/test/resources/record/vector/test_all_date_literals.json
@@ -8,29 +8,38 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  },
-        {
-            pop:"project",
-            @id:2,
-            child: 1,
-            exprs: [
-              {ref: "Date", expr: "cast(datetype(2008, 2, 27) as varchar(100))"},
-              {ref: "TimeStamp", expr: "cast(timestamptype(2008, 2, 27, 1, 2, 3, 0) as varchar(100))"},
-              {ref: "Time", expr: "cast(timetype(10,11,13, 999) as varchar(100))"},
-              {ref: "Interval", expr: "cast(intervaltype(2, 2, 3, 0, 1, 3, 89) as varchar(100))"}
-            ]
-        },
-        {
-            @id: 3,
-            child: 2,
-            pop: "screen"
-        }
-    ]
-}
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled": true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
+    "pop" : "project",
+    "@id" : 2,
+    "child" : 1,
+    "exprs" : [ {
+      "ref" : "Date",
+      "expr" : "cast(datetype(2008, 2, 27) as varchar(100))"
+    }, {
+      "ref" : "TimeStamp",
+      "expr" : "cast(timestamptype(2008, 2, 27, 1, 2, 3, 0) as varchar(100))"
+    }, {
+      "ref" : "Time",
+      "expr" : "cast(timetype(10,11,13, 999) as varchar(100))"
+    }, {
+      "ref" : "Interval",
+      "expr" : "cast(intervaltype(2, 2, 3, 0, 1, 3, 89) as varchar(100))"
+    } ]
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/record/vector/test_date.json b/exec/java-exec/src/test/resources/record/vector/test_date.json
index f07dcb3..cbdfab0 100644
--- a/exec/java-exec/src/test/resources/record/vector/test_date.json
+++ b/exec/java-exec/src/test/resources/record/vector/test_date.json
@@ -8,27 +8,29 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  },
-        {
-            pop:"project",
-            @id:2,
-            child: 1,
-            exprs: [ {
-              ref: "Datecast",
-              expr: "cast((cast(stringdate as date)) as varchar(100))"
-            } ]
-        },
-        {
-            @id: 3,
-            child: 2,
-            pop: "screen"
-        }
-    ]
-}
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled" : true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
+    "pop" : "project",
+    "@id" : 2,
+    "child" : 1,
+    "exprs" : [ {
+      "ref" : "Datecast",
+      "expr" : "cast((cast(stringdate as date)) as varchar(100))"
+    } ]
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/record/vector/test_date_add.json b/exec/java-exec/src/test/resources/record/vector/test_date_add.json
index fcef323..d0efd13 100644
--- a/exec/java-exec/src/test/resources/record/vector/test_date_add.json
+++ b/exec/java-exec/src/test/resources/record/vector/test_date_add.json
@@ -8,27 +8,32 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  },
-        {
-            pop:"project",
-            @id:2,
-            child: 1,
-            exprs: [
-              {ref: "DateIntervalAdd", expr: "cast(date_add(datetype(2008, 2, 27), intervaltype(0, 1, 0, 0, 0, 0, 0)) as varchar(100))"},
-              {ref: "DateIntervalAdd1", expr: "cast((date_add((cast('2008-2-27' as date)), (cast('P1M' as interval)))) as varchar(100))"}
-            ]
-        },
-        {
-            @id: 3,
-            child: 2,
-            pop: "screen"
-        }
-    ]
-}
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled" : true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
+    "pop" : "project",
+    "@id" : 2,
+    "child" : 1,
+    "exprs" : [ {
+      "ref" : "DateIntervalAdd",
+      "expr" : "cast(date_add(datetype(2008, 2, 27), intervaltype(0, 1, 0, 0, 0, 0, 0)) as varchar(100))"
+    }, {
+      "ref" : "DateIntervalAdd1",
+      "expr" : "cast((date_add((cast('2008-2-27' as date)), (cast('P1M' as interval)))) as varchar(100))"
+    } ]
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/record/vector/test_interval.json b/exec/java-exec/src/test/resources/record/vector/test_interval.json
index 1b45269..332d0d0 100644
--- a/exec/java-exec/src/test/resources/record/vector/test_interval.json
+++ b/exec/java-exec/src/test/resources/record/vector/test_interval.json
@@ -8,35 +8,35 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  },
-        {
-            pop:"project",
-            @id:2,
-            child: 1,
-            exprs: [ {
-              ref: "IntervalCast",
-              expr: "cast((cast(stringinterval as interval)) as varchar(100))"
-            },
-            {
-              ref: "IntervalYearCast",
-              expr: "cast((cast(stringinterval as intervalyear)) as varchar(100))"
-            },
-            {
-              ref: "IntervalDayCast",
-              expr: "cast((cast(stringinterval as intervalday)) as varchar(100))"
-            } ]
-        },
-        {
-            @id: 3,
-            child: 2,
-            pop: "screen"
-        }
-    ]
-}
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled" : true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
+    "pop" : "project",
+    "@id" : 2,
+    "child" : 1,
+    "exprs" : [ {
+      "ref" : "IntervalCast",
+      "expr" : "cast((cast(stringinterval as interval)) as varchar(100))"
+    }, {
+      "ref" : "IntervalYearCast",
+      "expr" : "cast((cast(stringinterval as intervalyear)) as varchar(100))"
+    }, {
+      "ref" : "IntervalDayCast",
+      "expr" : "cast((cast(stringinterval as intervalday)) as varchar(100))"
+    } ]
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/record/vector/test_sort_date.json b/exec/java-exec/src/test/resources/record/vector/test_sort_date.json
index e6b049b..e611709 100644
--- a/exec/java-exec/src/test/resources/record/vector/test_sort_date.json
+++ b/exec/java-exec/src/test/resources/record/vector/test_sort_date.json
@@ -8,49 +8,48 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  },
-        {
-            pop:"project",
-            @id:2,
-            child: 1,
-            exprs: [ {
-              ref: "Datecast",
-              expr: "(cast(stringdate as date))"
-            } ]
-        },
-        {
-            @id:3,
-            child: 2,
-            pop:"external-sort",
-            orderings: [
-              {expr: "Datecast"}
-            ]
-        },
-        {
-            @id:4,
-            child: 3,
-            pop:"selection-vector-remover"
-        },
-        {
-            pop:"project",
-            @id:5,
-            child: 4,
-            exprs: [ {
-              ref: "SortedDateStr",
-              expr: "(cast(Datecast as varchar(100)))"
-            } ]
-        },
-        {
-            @id: 6,
-            child: 5,
-            pop: "screen"
-        }
-    ]
-}
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled" : true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
+    "pop" : "project",
+    "@id" : 2,
+    "child" : 1,
+    "exprs" : [ {
+      "ref" : "Datecast",
+      "expr" : "(cast(stringdate as date))"
+    } ]
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "external-sort",
+    "orderings" : [ {
+      "expr" : "Datecast"
+    } ]
+  }, {
+    "@id" : 4,
+    "child" : 3,
+    "pop" : "selection-vector-remover"
+  }, {
+    "pop" : "project",
+    "@id" : 5,
+    "child" : 4,
+    "exprs" : [ {
+      "ref" : "SortedDateStr",
+      "expr" : "(cast(Datecast as varchar(100)))"
+    } ]
+  }, {
+    "@id" : 6,
+    "child" : 5,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/record/vector/test_timestamp.json b/exec/java-exec/src/test/resources/record/vector/test_timestamp.json
index 219fcfa..e64318a 100644
--- a/exec/java-exec/src/test/resources/record/vector/test_timestamp.json
+++ b/exec/java-exec/src/test/resources/record/vector/test_timestamp.json
@@ -8,27 +8,29 @@
     "type" : "APACHE_DRILL_PHYSICAL",
     "resultMode" : "EXEC"
   },
-  graph:[
-  {
-      @id:1,
-      pop:"fs-scan",
-      format: {type: "json"},
-      storage:{type: "file", connection: "classpath:///"},
-      files:["#{TEST_FILE}"]
-  },
-        {
-            pop:"project",
-            @id:2,
-            child: 1,
-            exprs: [ {
-              ref: "Datecast",
-              expr: "cast((cast(stringdate as timestamp)) as varchar(100))"
-            } ]
-        },
-        {
-            @id: 3,
-            child: 2,
-            pop: "screen"
-        }
-    ]
-}
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "classpath:///",
+      "enabled" : true
+    },
+    "files" : [ "#{TEST_FILE}" ]
+  }, {
+    "pop" : "project",
+    "@id" : 2,
+    "child" : 1,
+    "exprs" : [ {
+      "ref" : "Datecast",
+      "expr" : "cast((cast(stringdate as timestamp)) as varchar(100))"
+    } ]
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/scan_screen_logical.json b/exec/java-exec/src/test/resources/scan_screen_logical.json
index 005251b..1cf3800 100644
--- a/exec/java-exec/src/test/resources/scan_screen_logical.json
+++ b/exec/java-exec/src/test/resources/scan_screen_logical.json
@@ -1,47 +1,38 @@
 {
-  head:{
-    type:"APACHE_DRILL_LOGICAL",
-    version:"1",
-    generator:{
-      type:"manual",
-      info:"na"
+  "head" : {
+    "type" : "APACHE_DRILL_LOGICAL",
+    "version" : "1",
+    "generator" : {
+      "type" : "manual",
+      "info" : "na"
     }
   },
   "storage" : {
-  "mock" : {
-      "type" : "mock"
-  }
-},
-
-  query:[
-    {
-      @id:"1",
-      op:"scan",
-      memo:"initial_scan",
-      storageengine:"mock",
-      selection: [
-       {
-            records : 100,
-            types : [
-
-                    {
-                        name : "superhero_name",
-                        type : "VARCHAR",
-                        mode : "REQUIRED"
-
-                    }
-             ]
-         }
-      ]
-    },
-    {
-      @id:"2",
-      input: 1,
-      op: "store",
-      memo: "output sink",
-      target: {
-        file: "console:///stdout"
-      }
+    "mock" : {
+      "type" : "mock",
+      "enabled" : true
     }
-  ]
-}
+  },
+  "query" : [ {
+    "@id" : "1",
+    "op" : "scan",
+    "memo" : "initial_scan",
+    "storageengine" : "mock",
+    "selection" : [ {
+      "records" : 100,
+      "types" : [ {
+        "name" : "superhero_name",
+        "type" : "VARCHAR",
+        "mode" : "REQUIRED"
+      } ]
+    } ]
+  }, {
+    "@id" : "2",
+    "input" : 1,
+    "op" : "store",
+    "memo" : "output sink",
+    "target" : {
+      "file" : "console:///stdout"
+    }
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/sender/broadcast_exchange.json b/exec/java-exec/src/test/resources/sender/broadcast_exchange.json
index 1288736..15ce027 100644
--- a/exec/java-exec/src/test/resources/sender/broadcast_exchange.json
+++ b/exec/java-exec/src/test/resources/sender/broadcast_exchange.json
@@ -1,43 +1,53 @@
 {
-    head:{
-        type:"APACHE_DRILL_PHYSICAL",
-        version:"1",
-        generator:{
-            type:"manual"
-        }
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : "1",
+    "generator" : {
+      "type" : "manual"
+    }
+  },
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
     },
-    graph:[
-           {
-              @id:1,
-              pop:"fs-scan",
-              format: {type: "json"},
-              storage:{type: "file", connection: "file:///"},
-              files:["#{LEFT_FILE}"]
-            },
-            {
-              @id:2,
-              pop:"fs-scan",
-              format: {type: "json"},
-              storage:{type: "file", connection: "file:///"},
-              files:["#{RIGHT_FILE}"]
-            },
-        {
-            @id: 3,
-            child: 1,
-            pop: "broadcast-exchange"
-        },
-        {
-            pop : "merge-join",
-            @id : 4,
-            left: 3,
-            right: 2,
-            joinType: "LEFT",
-            conditions: [ { relationship: "==", left: "a", right: "aa" } ]
-          },
-        {
-            @id: 5,
-            child: 4,
-            pop: "screen"
-        }
-    ]
-}
+    "storage" : {
+      "type" : "file",
+      "connection" : "file:///",
+      "enabled" : true
+    },
+    "files" : [ "#{LEFT_FILE}" ]
+  }, {
+    "@id" : 2,
+    "pop" : "fs-scan",
+    "format" : {
+      "type" : "json"
+    },
+    "storage" : {
+      "type" : "file",
+      "connection" : "file:///",
+      "enabled" : true
+    },
+    "files" : [ "#{RIGHT_FILE}" ]
+  }, {
+    "@id" : 3,
+    "child" : 1,
+    "pop" : "broadcast-exchange"
+  }, {
+    "pop" : "merge-join",
+    "@id" : 4,
+    "left" : 3,
+    "right" : 2,
+    "joinType" : "LEFT",
+    "conditions" : [ {
+      "relationship" : "==",
+      "left" : "a",
+      "right" : "aa"
+    } ]
+  }, {
+    "@id" : 5,
+    "child" : 4,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/sender/hash_exchange2.json b/exec/java-exec/src/test/resources/sender/hash_exchange2.json
index 844dea7..bbc2202 100644
--- a/exec/java-exec/src/test/resources/sender/hash_exchange2.json
+++ b/exec/java-exec/src/test/resources/sender/hash_exchange2.json
@@ -1,47 +1,43 @@
 {
-    head:{
-        type:"APACHE_DRILL_PHYSICAL",
-        version:"1",
-        generator:{
-            type:"manual"
-        }
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : "1",
+    "generator" : {
+      "type" : "manual"
+    }
+  },
+  "graph" : [ {
+    "pop" : "parquet-scan",
+    "@id" : 1,
+    "entries" : [ {
+      "path" : "/Users/sphillips/tpc-h/supplier"
+    } ],
+    "storageengine" : {
+      "type" : "parquet",
+      "dfsName" : "file:///"
     },
-    graph:[
-    {pop : "parquet-scan",
-        @id : 1,
-        entries : [ {
-          path : "/Users/sphillips/tpc-h/supplier"
-        } ],
-        storageengine : {
-          type : "parquet",
-          dfsName : "file:///"
-        },
-        ref : "_MAP",
-        fragmentPointer : 0
-      },
-      {
-                  @id:2,
-                  child: 1,
-                  pop:"project",
-                  exprs: [
-                    { ref: "suppkey", expr:"_MAP.S_SUPPKEY"}
-                  ]
-              },
-         {
-            @id: 3,
-            child: 2,
-            pop: "hash-to-random-exchange",
-            expr: "hash(suppkey)"
-        },
-        {
-            @id: 4,
-            child: 3,
-            pop: "union-exchange"
-        },
-        {
-            @id: 5,
-            child: 4,
-            pop: "screen"
-        }
-    ]
+    "ref" : "_MAP",
+    "fragmentPointer" : 0
+  }, {
+    "@id" : 2,
+    "child" : 1,
+    "pop" : "project",
+    "exprs" : [ {
+      "ref" : "suppkey",
+      "expr" : "_MAP.S_SUPPKEY"
+    } ]
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "hash-to-random-exchange",
+    "expr" : "hash(suppkey)"
+  }, {
+    "@id" : 4,
+    "child" : 3,
+    "pop" : "union-exchange"
+  }, {
+    "@id" : 5,
+    "child" : 4,
+    "pop" : "screen"
+  } ]
 }
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/store/json/project_pushdown_json_physical_plan.json b/exec/java-exec/src/test/resources/store/json/project_pushdown_json_physical_plan.json
index b665207..cd22994 100644
--- a/exec/java-exec/src/test/resources/store/json/project_pushdown_json_physical_plan.json
+++ b/exec/java-exec/src/test/resources/store/json/project_pushdown_json_physical_plan.json
@@ -36,7 +36,7 @@
     "format" : {
       "type" : "json"
     },
-    "columns" : [ "`field_1`", "`field_3`.`inner_1`", "`field_3`.`inner_2`", "`field_4`.`inner_1`", "`non_existent_at_root`", "`non_existent`.`nested`.`field`"],
+    "columns" : [ "`field_1`", "`field_3`.`inner_1`", "`field_3`.`inner_2`", "`field_4`.`inner_1`", "`non_existent_at_root`", "`non_existent`.`nested`.`field`" ],
     "selectionRoot" : "/store/json/schema_change_int_to_string.json",
     "cost" : {
       "memoryCost" : 0,
@@ -53,4 +53,4 @@
       "outputRowCount" : 1.0
     }
   } ]
-}
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/store/text/test.json b/exec/java-exec/src/test/resources/store/text/test.json
index 78ac516..3c41b69 100644
--- a/exec/java-exec/src/test/resources/store/text/test.json
+++ b/exec/java-exec/src/test/resources/store/text/test.json
@@ -1,40 +1,37 @@
 {
-    head:{
-        type:"APACHE_DRILL_PHYSICAL",
-        version:"1",
-        generator:{
-            type:"manual"
-        }
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : "1",
+    "generator" : {
+      "type" : "manual"
+    }
+  },
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "fs-scan",
+    "files" : [ "#{DATA_FILE}" ],
+    "storage" : {
+      "type" : "named",
+      "name" : "dfs"
     },
-    graph:[
-        {
-            @id:1,
-            pop:"fs-scan",
-            files:[
-              "#{DATA_FILE}"
-            ],
-            storage : {
-              type : "named",
-              name: "dfs"
-            },
-            format: {
-              type: "named",
-              name: "csv"
-            }
-        },
-        {
-            @id:2,
-            child: 1,
-            pop:"project",
-            exprs: [
-              { ref: "col1", expr:"columns[0]" },
-              { ref: "col2", expr:"columns[1]" }
-            ]
-        },
-        {
-            @id: 3,
-            child: 2,
-            pop: "screen"
-        }
-    ]
-}
+    "format" : {
+      "type" : "named",
+      "name" : "csv"
+    }
+  }, {
+    "@id" : 2,
+    "child" : 1,
+    "pop" : "project",
+    "exprs" : [ {
+      "ref" : "col1",
+      "expr" : "columns[0]"
+    }, {
+      "ref" : "col2",
+      "expr" : "columns[1]"
+    } ]
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file
diff --git a/exec/java-exec/src/test/resources/writer/simple_csv_writer.json b/exec/java-exec/src/test/resources/writer/simple_csv_writer.json
index b3c215a..19b6a78 100644
--- a/exec/java-exec/src/test/resources/writer/simple_csv_writer.json
+++ b/exec/java-exec/src/test/resources/writer/simple_csv_writer.json
@@ -1,79 +1,97 @@
 {
-  head:{
-    type:"APACHE_DRILL_PHYSICAL",
-    version:"1",
-    generator:{
-      type:"manual"
+  "head" : {
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "version" : "1",
+    "generator" : {
+      "type" : "manual"
     }
   },
-  graph:[
-    {
-       @id:1,
-       pop:"mock-scan",
-       url: "http://apache.org",
-       entries:[
-         {records: 66000, types: [
-           {name: "red", type: "INT", mode: "REQUIRED"},
-           {name: "green", type: "BIGINT", mode: "OPTIONAL"},
-           {name: "blue", type: "VARCHAR", mode: "REQUIRED"}
-         ]},
-         {records: 66000, types: [
-           {name: "blue", type: "BIT", mode: "REQUIRED"},
-           {name: "green", type: "DECIMAL18", mode: "REQUIRED"},
-           {name: "red", type: "FLOAT8", mode: "OPTIONAL"}
-         ]}
-       ]
+  "graph" : [ {
+    "@id" : 1,
+    "pop" : "mock-scan",
+    "url" : "http://apache.org",
+    "entries" : [ {
+      "records" : 66000,
+      "types" : [ {
+        "name" : "red",
+        "type" : "INT",
+        "mode" : "REQUIRED"
+      }, {
+        "name" : "green",
+        "type" : "BIGINT",
+        "mode" : "OPTIONAL"
+      }, {
+        "name" : "blue",
+        "type" : "VARCHAR",
+        "mode" : "REQUIRED"
+      } ]
     }, {
-      @id: 2,
-      child: 1,
-      pop: "fs-writer",
-      "location" : "%TEST_DIR%",
-      "storage" : {
-        "type" : "file",
-        "connection" : "file:///",
-        "workspaces" : {
-          "root" : {
-            "location" : "%ROOT_DIR%",
-            "writable" : false
-          },
-          "tmp" : {
-            "location" : "%TMP_DIR%",
-            "writable" : true
-          }
+      "records" : 66000,
+      "types" : [ {
+        "name" : "blue",
+        "type" : "BIT",
+        "mode" : "REQUIRED"
+      }, {
+        "name" : "green",
+        "type" : "DECIMAL18",
+        "mode" : "REQUIRED"
+      }, {
+        "name" : "red",
+        "type" : "FLOAT8",
+        "mode" : "OPTIONAL"
+      } ]
+    } ]
+  }, {
+    "@id" : 2,
+    "child" : 1,
+    "pop" : "fs-writer",
+    "location" : "%TEST_DIR%",
+    "storage" : {
+      "type" : "file",
+      "connection" : "file:///",
+      "enabled" : true,
+      "workspaces" : {
+        "root" : {
+          "location" : "%ROOT_DIR%",
+          "writable" : false
         },
-        "formats" : {
-          "psv" : {
-            "type" : "text",
-            "extensions" : [ "tbl" ],
-            "delimiter" : "|"
-          },
-          "csv" : {
-            "type" : "text",
-            "extensions" : [ "csv" ],
-            "delimiter" : ","
-          },
-          "tsv" : {
-            "type" : "text",
-            "extensions" : [ "tsv" ],
-            "delimiter" : "\t"
-          },
-          "parquet" : {
-            "type" : "parquet"
-          },
-          "json" : {
-            "type" : "json"
-          }
+        "tmp" : {
+          "location" : "%TMP_DIR%",
+          "writable" : true
         }
       },
-      "format" : {
-        "type" : "text",
-        "extensions" : [ "csv" ],
-        "delimiter" : ","
+      "formats" : {
+        "psv" : {
+          "type" : "text",
+          "extensions" : [ "tbl" ],
+          "delimiter" : "|"
+        },
+        "csv" : {
+          "type" : "text",
+          "extensions" : [ "csv" ],
+          "delimiter" : ","
+        },
+        "tsv" : {
+          "type" : "text",
+          "extensions" : [ "tsv" ],
+          "delimiter" : "\t"
+        },
+        "parquet" : {
+          "type" : "parquet"
+        },
+        "json" : {
+          "type" : "json"
+        }
       }
-    }, {
-      @id: 3,
-      child: 2,
-      pop: "screen"
+    },
+    "format" : {
+      "type" : "text",
+      "extensions" : [ "csv" ],
+      "delimiter" : ","
     }
-  ]
-}
+  }, {
+    "@id" : 3,
+    "child" : 2,
+    "pop" : "screen"
+  } ]
+}
\ No newline at end of file


Mime
View raw message