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 <953396...@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"