You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by za...@apache.org on 2019/10/27 21:57:43 UTC

[calcite] branch master updated: [CALCITE-3451] Support TableModify in RelMdNodeTypes (xy2953396113)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 8d65a24  [CALCITE-3451] Support TableModify in RelMdNodeTypes (xy2953396113)
8d65a24 is described below

commit 8d65a2411f25cca75c1da30b3317b08235161919
Author: dz <95...@qq.com>
AuthorDate: Sat Oct 26 17:42:49 2019 +0800

    [CALCITE-3451] Support TableModify in RelMdNodeTypes (xy2953396113)
    
    Close apache/calcite#1535
---
 .../java/org/apache/calcite/rel/metadata/RelMdNodeTypes.java   |  6 ++++++
 .../src/test/java/org/apache/calcite/test/RelMetadataTest.java | 10 ++++++++++
 2 files changed, 16 insertions(+)

diff --git a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdNodeTypes.java b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdNodeTypes.java
index 22737b6..c0d8566 100644
--- a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdNodeTypes.java
+++ b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdNodeTypes.java
@@ -27,6 +27,7 @@ import org.apache.calcite.rel.core.Join;
 import org.apache.calcite.rel.core.Minus;
 import org.apache.calcite.rel.core.Project;
 import org.apache.calcite.rel.core.Sort;
+import org.apache.calcite.rel.core.TableModify;
 import org.apache.calcite.rel.core.TableScan;
 import org.apache.calcite.rel.core.Union;
 import org.apache.calcite.rel.core.Values;
@@ -128,6 +129,11 @@ public class RelMdNodeTypes
     return getNodeTypes(rel, Values.class, mq);
   }
 
+  public Multimap<Class<? extends RelNode>, RelNode> getNodeTypes(TableModify rel,
+      RelMetadataQuery mq) {
+    return getNodeTypes(rel, TableModify.class, mq);
+  }
+
   private static Multimap<Class<? extends RelNode>, RelNode> getNodeTypes(RelNode rel,
       Class<? extends RelNode> c, RelMetadataQuery mq) {
     final Multimap<Class<? extends RelNode>, RelNode> nodeTypeCount = ArrayListMultimap.create();
diff --git a/core/src/test/java/org/apache/calcite/test/RelMetadataTest.java b/core/src/test/java/org/apache/calcite/test/RelMetadataTest.java
index 785ae17..ee60ff2 100644
--- a/core/src/test/java/org/apache/calcite/test/RelMetadataTest.java
+++ b/core/src/test/java/org/apache/calcite/test/RelMetadataTest.java
@@ -42,6 +42,7 @@ import org.apache.calcite.rel.core.JoinRelType;
 import org.apache.calcite.rel.core.Minus;
 import org.apache.calcite.rel.core.Project;
 import org.apache.calcite.rel.core.Sort;
+import org.apache.calcite.rel.core.TableModify;
 import org.apache.calcite.rel.core.TableScan;
 import org.apache.calcite.rel.core.Union;
 import org.apache.calcite.rel.core.Values;
@@ -2350,6 +2351,15 @@ public class RelMetadataTest extends SqlToRelTestBase {
     checkNodeTypeCount(sql, expected);
   }
 
+  @Test public void testNodeTypeTableModify() {
+    final String sql = "insert into emp select * from emp";
+    final Map<Class<? extends RelNode>, Integer> expected = new HashMap<>();
+    expected.put(TableScan.class, 1);
+    expected.put(TableModify.class, 1);
+    expected.put(Project.class, 1);
+    checkNodeTypeCount(sql, expected);
+  }
+
   @Test public void testNodeTypeCountJoinFinite() {
     final String sql = "select * from (select * from emp limit 14) as emp\n"
         + "inner join (select * from dept limit 4) as dept\n"