This is an automated email from the ASF dual-hosted git repository.

gvvinblade pushed a commit to branch ignite-12248
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/ignite-12248 by this push:
     new f54e7a5  minor improvements
f54e7a5 is described below

commit f54e7a57855d6b5bc8076791ea9bfcd6ce6776ce
Author: Igor Seliverstov <gvvinbl...@gmail.com>
AuthorDate: Sat Sep 5 13:18:50 2020 +0300

    minor improvements
---
 .../query/calcite/externalize/RelJson.java         | 34 +++++++---------------
 .../query/calcite/externalize/RelJsonWriter.java   | 11 ++++---
 .../processors/query/calcite/PlannerTest.java      |  9 ++----
 3 files changed, 18 insertions(+), 36 deletions(-)

diff --git 
a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/externalize/RelJson.java
 
b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/externalize/RelJson.java
index 278268c..36b2068 100644
--- 
a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/externalize/RelJson.java
+++ 
b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/externalize/RelJson.java
@@ -95,6 +95,7 @@ import org.apache.calcite.sql.type.SqlTypeName;
 import org.apache.calcite.sql.validate.SqlNameMatchers;
 import org.apache.calcite.util.ImmutableBitSet;
 import org.apache.calcite.util.Util;
+import org.apache.ignite.IgniteException;
 import org.apache.ignite.internal.processors.query.calcite.rel.IgniteRel;
 import 
org.apache.ignite.internal.processors.query.calcite.trait.DistributionFunction;
 import 
org.apache.ignite.internal.processors.query.calcite.trait.DistributionFunction.AffinityDistribution;
@@ -103,6 +104,7 @@ import 
org.apache.ignite.internal.processors.query.calcite.trait.IgniteDistribut
 import 
org.apache.ignite.internal.processors.query.calcite.trait.IgniteDistributions;
 import org.apache.ignite.internal.processors.query.calcite.util.Commons;
 import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.U;
 
 /**
  * Utilities for converting {@link RelNode} into JSON format.
@@ -110,24 +112,12 @@ import org.apache.ignite.internal.util.typedef.F;
 @SuppressWarnings({"rawtypes", "unchecked"})
 class RelJson {
     /** */
-    @FunctionalInterface
+    @SuppressWarnings("PublicInnerClass") @FunctionalInterface
     public static interface RelFactory extends Function<RelInput, RelNode> {
         /** {@inheritDoc} */
         @Override RelNode apply(RelInput input);
     }
 
-    private static final Map<String,Class> PRIMITIVE_CLASSES = 
ImmutableMap.<String,Class>builder()
-        .put("int", Integer.TYPE)
-        .put("long", Long.TYPE)
-        .put("double", Double.TYPE)
-        .put("float", Float.TYPE)
-        .put("boolean", Boolean.TYPE)
-        .put("char", Character.TYPE)
-        .put("byte", Byte.TYPE)
-        .put("void", Void.TYPE)
-        .put("short", Short.TYPE)
-        .build();
-
     /** */
     private static final LoadingCache<String, RelFactory> FACTORIES_CACHE = 
CacheBuilder.newBuilder()
         .build(CacheLoader.from(RelJson::relFactory));
@@ -154,12 +144,12 @@ class RelJson {
             constructor = 
(Constructor<RelNode>)clazz.getConstructor(RelInput.class);
         }
         catch (NoSuchMethodException e) {
-            throw new RuntimeException("class does not have required 
constructor, "
+            throw new IgniteException("class does not have required 
constructor, "
                 + clazz + "(RelInput)");
         }
 
-        ParameterExpression input_ = Expressions.parameter(RelInput.class);
         BlockBuilder builder = new BlockBuilder();
+        ParameterExpression input_ = Expressions.parameter(RelInput.class);
         builder.add(Expressions.new_(constructor, input_));
         MethodDeclaration declaration = Expressions.methodDecl(
             Modifier.PUBLIC, RelNode.class, "apply", F.asList(input_), 
builder.toBlock());
@@ -208,18 +198,14 @@ class RelJson {
     /** */
     private static Class<?> classForName(String typeName, boolean 
skipNotFound) {
         try {
-            Class aClass = PRIMITIVE_CLASSES.get(typeName);
-            if (aClass == null)
-                aClass = Class.forName(typeName);
-
-            return aClass;
+            return U.forName(typeName, U.gridClassLoader());
         }
         catch (ClassNotFoundException e) {
-            if (skipNotFound)
-                return null;
-
-            throw new RuntimeException("unknown type " + typeName);
+            if (!skipNotFound)
+                throw new IgniteException("unknown type " + typeName);
         }
+
+        return null;
     }
 
     /** */
diff --git 
a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/externalize/RelJsonWriter.java
 
b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/externalize/RelJsonWriter.java
index 3bafa24..25e8d44 100644
--- 
a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/externalize/RelJsonWriter.java
+++ 
b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/externalize/RelJsonWriter.java
@@ -32,6 +32,7 @@ import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.sql.SqlExplainLevel;
 import org.apache.calcite.util.Pair;
 import org.apache.ignite.IgniteException;
+import org.apache.ignite.IgniteSystemProperties;
 
 /**
  * Callback for a relational expression to dump itself as JSON.
@@ -40,6 +41,9 @@ import org.apache.ignite.IgniteException;
  */
 public class RelJsonWriter implements RelWriter {
     /** */
+    private static final boolean PRETTY_PRINT = 
IgniteSystemProperties.getBoolean("IGNITE_CALCITE_REL_JSON_PRETTY_PRINT", 
false);
+
+    /** */
     private final RelJson relJson = new RelJson();
 
     /** */
@@ -58,13 +62,8 @@ public class RelJsonWriter implements RelWriter {
     private List<Pair<String, Object>> items = new ArrayList<>();
 
     /** */
-    public RelJsonWriter() {
-        this(false);
-    }
-
-    /** */
     public static String toJson(RelNode rel) {
-        RelJsonWriter writer = new RelJsonWriter();
+        RelJsonWriter writer = new RelJsonWriter(PRETTY_PRINT);
         rel.explain(writer);
 
         return writer.asString();
diff --git 
a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/PlannerTest.java
 
b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/PlannerTest.java
index 629a62b..524aaec 100644
--- 
a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/PlannerTest.java
+++ 
b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/PlannerTest.java
@@ -72,7 +72,6 @@ import 
org.apache.ignite.internal.processors.query.calcite.exec.rel.Node;
 import org.apache.ignite.internal.processors.query.calcite.exec.rel.Outbox;
 import org.apache.ignite.internal.processors.query.calcite.exec.rel.RootNode;
 import 
org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader;
-import 
org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonWriter;
 import 
org.apache.ignite.internal.processors.query.calcite.message.CalciteMessage;
 import 
org.apache.ignite.internal.processors.query.calcite.message.MessageServiceImpl;
 import 
org.apache.ignite.internal.processors.query.calcite.message.TestIoManager;
@@ -117,6 +116,7 @@ import static 
org.apache.calcite.tools.Frameworks.createRootSchema;
 import static org.apache.calcite.tools.Frameworks.newConfigBuilder;
 import static 
org.apache.ignite.configuration.IgniteConfiguration.DFLT_THREAD_KEEP_ALIVE_TIME;
 import static 
org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor.FRAMEWORK_CONFIG;
+import static 
org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonWriter.toJson;
 import static 
org.apache.ignite.internal.processors.query.calcite.metadata.NodesMapping.DEDUPLICATED;
 import static 
org.apache.ignite.internal.processors.query.calcite.metadata.NodesMapping.HAS_REPLICATED_CACHES;
 import static 
org.apache.ignite.internal.processors.query.calcite.metadata.NodesMapping.PARTIALLY_REPLICATED;
@@ -2364,11 +2364,8 @@ public class PlannerTest extends GridCommonAbstractTest {
         List<Fragment> fragments = new Splitter().go((IgniteRel)rel);
         List<String> serialized = new ArrayList<>(fragments.size());
 
-        for (Fragment fragment : fragments) {
-            RelJsonWriter writer = new RelJsonWriter();
-            fragment.root().explain(writer);
-            serialized.add(writer.asString());
-        }
+        for (Fragment fragment : fragments)
+            serialized.add(toJson(fragment.root()));
 
         assertNotNull(serialized);
 

Reply via email to