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"