You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2015/09/02 02:09:43 UTC

[07/18] incubator-calcite git commit: [CALCITE-812] Make JSON reader and writer use properly quoted key names (Marc Prud'hommeaux)

[CALCITE-812] Make JSON reader and writer use properly quoted key names (Marc Prud'hommeaux)

Fix Mongo test (Julian Hyde)

Close apache/incubator-calcite#116


Project: http://git-wip-us.apache.org/repos/asf/incubator-calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-calcite/commit/54249d04
Tree: http://git-wip-us.apache.org/repos/asf/incubator-calcite/tree/54249d04
Diff: http://git-wip-us.apache.org/repos/asf/incubator-calcite/diff/54249d04

Branch: refs/heads/master
Commit: 54249d04d4b578cfd7cb437e097d848e57737987
Parents: 77674a7
Author: Marc Prud'hommeaux <mw...@cornell.edu>
Authored: Wed Aug 5 13:15:45 2015 -0400
Committer: Julian Hyde <jh...@apache.org>
Committed: Tue Sep 1 16:17:15 2015 -0700

----------------------------------------------------------------------
 .../calcite/rel/externalize/RelJsonReader.java  |  3 --
 .../org/apache/calcite/util/JsonBuilder.java    |  2 +-
 .../org/apache/calcite/plan/RelWriterTest.java  | 54 ++++++++++----------
 .../java/org/apache/calcite/util/UtilTest.java  | 10 ++--
 .../org/apache/calcite/test/MongoAdapterIT.java | 42 +++++++--------
 5 files changed, 54 insertions(+), 57 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/54249d04/core/src/main/java/org/apache/calcite/rel/externalize/RelJsonReader.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/externalize/RelJsonReader.java b/core/src/main/java/org/apache/calcite/rel/externalize/RelJsonReader.java
index 12bf70c..b3f9a56 100644
--- a/core/src/main/java/org/apache/calcite/rel/externalize/RelJsonReader.java
+++ b/core/src/main/java/org/apache/calcite/rel/externalize/RelJsonReader.java
@@ -35,7 +35,6 @@ import org.apache.calcite.util.ImmutableBitSet;
 import org.apache.calcite.util.Pair;
 import org.apache.calcite.util.Util;
 
-import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.collect.ImmutableList;
@@ -77,8 +76,6 @@ public class RelJsonReader {
   public RelNode read(String s) throws IOException {
     lastRel = null;
     final ObjectMapper mapper = new ObjectMapper();
-    mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
-    mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
     Map<String, Object> o = mapper.readValue(s, TYPE_REF);
     readRels((List<Map<String, Object>>) o.get("rels"));
     System.out.println(lastRel);

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/54249d04/core/src/main/java/org/apache/calcite/util/JsonBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/JsonBuilder.java b/core/src/main/java/org/apache/calcite/util/JsonBuilder.java
index fcf4d30..b4acecb 100644
--- a/core/src/main/java/org/apache/calcite/util/JsonBuilder.java
+++ b/core/src/main/java/org/apache/calcite/util/JsonBuilder.java
@@ -113,7 +113,7 @@ public class JsonBuilder {
         buf.append(",");
         newline(buf, indent + 1);
       }
-      buf.append(entry.getKey());
+      append(buf, 0, entry.getKey());
       buf.append(": ");
       append(buf, indent + 1, entry.getValue());
     }

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/54249d04/core/src/test/java/org/apache/calcite/plan/RelWriterTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/plan/RelWriterTest.java b/core/src/test/java/org/apache/calcite/plan/RelWriterTest.java
index cff82e9..c766110 100644
--- a/core/src/test/java/org/apache/calcite/plan/RelWriterTest.java
+++ b/core/src/test/java/org/apache/calcite/plan/RelWriterTest.java
@@ -51,55 +51,55 @@ import static org.junit.Assert.assertThat;
  */
 public class RelWriterTest {
   public static final String XX = "{\n"
-      + "  rels: [\n"
+      + "  \"rels\": [\n"
       + "    {\n"
-      + "      id: \"0\",\n"
-      + "      relOp: \"LogicalTableScan\",\n"
-      + "      table: [\n"
+      + "      \"id\": \"0\",\n"
+      + "      \"relOp\": \"LogicalTableScan\",\n"
+      + "      \"table\": [\n"
       + "        \"hr\",\n"
       + "        \"emps\"\n"
       + "      ],\n"
-      + "      inputs: []\n"
+      + "      \"inputs\": []\n"
       + "    },\n"
       + "    {\n"
-      + "      id: \"1\",\n"
-      + "      relOp: \"LogicalFilter\",\n"
-      + "      condition: {\n"
-      + "        op: \"=\",\n"
-      + "        operands: [\n"
+      + "      \"id\": \"1\",\n"
+      + "      \"relOp\": \"LogicalFilter\",\n"
+      + "      \"condition\": {\n"
+      + "        \"op\": \"=\",\n"
+      + "        \"operands\": [\n"
       + "          {\n"
-      + "            input: 1\n"
+      + "            \"input\": 1\n"
       + "          },\n"
       + "          10\n"
       + "        ]\n"
       + "      }\n"
       + "    },\n"
       + "    {\n"
-      + "      id: \"2\",\n"
-      + "      relOp: \"LogicalAggregate\",\n"
-      + "      group: [\n"
+      + "      \"id\": \"2\",\n"
+      + "      \"relOp\": \"LogicalAggregate\",\n"
+      + "      \"group\": [\n"
       + "        0\n"
       + "      ],\n"
-      + "      aggs: [\n"
+      + "      \"aggs\": [\n"
       + "        {\n"
-      + "          agg: \"COUNT\",\n"
-      + "          type: {\n"
-      + "            type: \"BIGINT\",\n"
-      + "            nullable: false\n"
+      + "          \"agg\": \"COUNT\",\n"
+      + "          \"type\": {\n"
+      + "            \"type\": \"BIGINT\",\n"
+      + "            \"nullable\": false\n"
       + "          },\n"
-      + "          distinct: true,\n"
-      + "          operands: [\n"
+      + "          \"distinct\": true,\n"
+      + "          \"operands\": [\n"
       + "            1\n"
       + "          ]\n"
       + "        },\n"
       + "        {\n"
-      + "          agg: \"COUNT\",\n"
-      + "          type: {\n"
-      + "            type: \"BIGINT\",\n"
-      + "            nullable: false\n"
+      + "          \"agg\": \"COUNT\",\n"
+      + "          \"type\": {\n"
+      + "            \"type\": \"BIGINT\",\n"
+      + "            \"nullable\": false\n"
       + "          },\n"
-      + "          distinct: false,\n"
-      + "          operands: []\n"
+      + "          \"distinct\": false,\n"
+      + "          \"operands\": []\n"
       + "        }\n"
       + "      ]\n"
       + "    }\n"

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/54249d04/core/src/test/java/org/apache/calcite/util/UtilTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/util/UtilTest.java b/core/src/test/java/org/apache/calcite/util/UtilTest.java
index 92b5c34..0f0a463 100644
--- a/core/src/test/java/org/apache/calcite/util/UtilTest.java
+++ b/core/src/test/java/org/apache/calcite/util/UtilTest.java
@@ -1011,17 +1011,17 @@ public class UtilTest {
     map.put("nullValue", null);
     assertEquals(
         "{\n"
-            + "  foo: 1,\n"
-            + "  baz: true,\n"
-            + "  bar: \"can't\",\n"
-            + "  list: [\n"
+            + "  \"foo\": 1,\n"
+            + "  \"baz\": true,\n"
+            + "  \"bar\": \"can't\",\n"
+            + "  \"list\": [\n"
             + "    2,\n"
             + "    3,\n"
             + "    [],\n"
             + "    {},\n"
             + "    null\n"
             + "  ],\n"
-            + "  nullValue: null\n"
+            + "  \"nullValue\": null\n"
             + "}",
         builder.toJsonString(map));
   }

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/54249d04/mongodb/src/test/java/org/apache/calcite/test/MongoAdapterIT.java
----------------------------------------------------------------------
diff --git a/mongodb/src/test/java/org/apache/calcite/test/MongoAdapterIT.java b/mongodb/src/test/java/org/apache/calcite/test/MongoAdapterIT.java
index 2393660..1c37369 100644
--- a/mongodb/src/test/java/org/apache/calcite/test/MongoAdapterIT.java
+++ b/mongodb/src/test/java/org/apache/calcite/test/MongoAdapterIT.java
@@ -317,8 +317,8 @@ public class MongoAdapterIT {
         .queryContains(
             mongoChecker(
                 "{\n"
-                    + "  $match: {\n"
-                    + "    state: \"OK\"\n"
+                    + "  \"$match\": {\n"
+                    + "    \"state\": \"OK\"\n"
                     + "  }\n"
                     + "}",
                 "{$project: {CITY: '$city', LONGITUDE: '$loc[0]', LATITUDE: '$loc[1]', POP: '$pop', STATE: '$state', ID: '$_id'}}"));
@@ -345,8 +345,8 @@ public class MongoAdapterIT {
             // $match must occur before $project for good performance.
             mongoChecker(
                 "{\n"
-                    + "  $match: {\n"
-                    + "    warehouse_state_province: \"CA\"\n"
+                    + "  \"$match\": {\n"
+                    + "    \"warehouse_state_province\": \"CA\"\n"
                     + "  }\n"
                     + "}",
                 "{$project: {warehouse_id: 1, warehouse_state_province: 1}}"));
@@ -371,31 +371,31 @@ public class MongoAdapterIT {
         .queryContains(
             mongoChecker(
                 "{\n"
-                    + "  $match: {\n"
-                    + "    $or: [\n"
+                    + "  \"$match\": {\n"
+                    + "    \"$or\": [\n"
                     + "      {\n"
-                    + "        store_name: \"Store 1\"\n"
+                    + "        \"store_name\": \"Store 1\"\n"
                     + "      },\n"
                     + "      {\n"
-                    + "        store_name: \"Store 10\"\n"
+                    + "        \"store_name\": \"Store 10\"\n"
                     + "      },\n"
                     + "      {\n"
-                    + "        store_name: \"Store 11\"\n"
+                    + "        \"store_name\": \"Store 11\"\n"
                     + "      },\n"
                     + "      {\n"
-                    + "        store_name: \"Store 15\"\n"
+                    + "        \"store_name\": \"Store 15\"\n"
                     + "      },\n"
                     + "      {\n"
-                    + "        store_name: \"Store 16\"\n"
+                    + "        \"store_name\": \"Store 16\"\n"
                     + "      },\n"
                     + "      {\n"
-                    + "        store_name: \"Store 24\"\n"
+                    + "        \"store_name\": \"Store 24\"\n"
                     + "      },\n"
                     + "      {\n"
-                    + "        store_name: \"Store 3\"\n"
+                    + "        \"store_name\": \"Store 3\"\n"
                     + "      },\n"
                     + "      {\n"
-                    + "        store_name: \"Store 7\"\n"
+                    + "        \"store_name\": \"Store 7\"\n"
                     + "      }\n"
                     + "    ]\n"
                     + "  }\n"
@@ -541,9 +541,9 @@ public class MongoAdapterIT {
                 "{$group: {_id: '$STATE', C: {$sum: 1}}}",
                 "{$project: {STATE: '$_id', C: '$C'}}",
                 "{\n"
-                    + "  $match: {\n"
-                    + "    C: {\n"
-                    + "      $gt: 1500\n"
+                    + "  \"$match\": {\n"
+                    + "    \"C\": {\n"
+                    + "      \"$gt\": 1500\n"
                     + "    }\n"
                     + "  }\n"
                     + "}",
@@ -624,13 +624,13 @@ public class MongoAdapterIT {
         .queryContains(
             mongoChecker(
                 "{\n"
-                    + "  $match: {\n"
-                    + "    $or: [\n"
+                    + "  \"$match\": {\n"
+                    + "    \"$or\": [\n"
                     + "      {\n"
-                    + "        state: \"CA\"\n"
+                    + "        \"state\": \"CA\"\n"
                     + "      },\n"
                     + "      {\n"
-                    + "        state: \"TX\"\n"
+                    + "        \"state\": \"TX\"\n"
                     + "      }\n"
                     + "    ]\n"
                     + "  }\n"