Repository: calcite
Updated Branches:
  refs/heads/master 3b5d88e6a -> 29f518f0d


In EXPLAIN, give more descriptive names for streams derived from tables


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

Branch: refs/heads/master
Commit: a445ff2f18d09a72a0f66f0db9d816d6a4bcd7c2
Parents: 3b5d88e
Author: Julian Hyde <[email protected]>
Authored: Thu Jun 23 16:41:22 2016 -0700
Committer: Julian Hyde <[email protected]>
Committed: Sun Jun 26 17:55:30 2016 -0700

----------------------------------------------------------------------
 .../org/apache/calcite/prepare/RelOptTableImpl.java     |  9 +++------
 .../java/org/apache/calcite/rel/stream/StreamRules.java |  5 ++++-
 .../org/apache/calcite/sql2rel/SqlToRelConverter.java   |  3 ++-
 .../test/java/org/apache/calcite/test/StreamTest.java   | 12 ++++++------
 4 files changed, 15 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/a445ff2f/core/src/main/java/org/apache/calcite/prepare/RelOptTableImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/prepare/RelOptTableImpl.java 
b/core/src/main/java/org/apache/calcite/prepare/RelOptTableImpl.java
index 05c1127..969fa99 100644
--- a/core/src/main/java/org/apache/calcite/prepare/RelOptTableImpl.java
+++ b/core/src/main/java/org/apache/calcite/prepare/RelOptTableImpl.java
@@ -169,15 +169,12 @@ public class RelOptTableImpl implements 
Prepare.PreparingTable {
     }
   }
 
-  public static RelOptTableImpl create(
-      RelOptSchema schema,
-      RelDataType rowType,
-      Table table) {
+  public static RelOptTableImpl create(RelOptSchema schema,
+      RelDataType rowType, Table table, ImmutableList<String> names) {
     assert table instanceof TranslatableTable
         || table instanceof ScannableTable
         || table instanceof ModifiableTable;
-    return new RelOptTableImpl(schema, rowType, ImmutableList.<String>of(),
-        table, null, null);
+    return new RelOptTableImpl(schema, rowType, names, table, null, null);
   }
 
   public <T> T unwrap(Class<T> clazz) {

http://git-wip-us.apache.org/repos/asf/calcite/blob/a445ff2f/core/src/main/java/org/apache/calcite/rel/stream/StreamRules.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/stream/StreamRules.java 
b/core/src/main/java/org/apache/calcite/rel/stream/StreamRules.java
index acb4eb6..538261c 100644
--- a/core/src/main/java/org/apache/calcite/rel/stream/StreamRules.java
+++ b/core/src/main/java/org/apache/calcite/rel/stream/StreamRules.java
@@ -192,7 +192,10 @@ public class StreamRules {
         final Table table1 = streamableTable.stream();
         final RelOptTable relOptTable2 =
             RelOptTableImpl.create(relOptTable.getRelOptSchema(),
-                relOptTable.getRowType(), table1);
+                relOptTable.getRowType(), table1,
+                ImmutableList.<String>builder()
+                    .addAll(relOptTable.getQualifiedName())
+                    .add("(STREAM)").build());
         final LogicalTableScan newScan =
             LogicalTableScan.create(cluster, relOptTable2);
         call.transformTo(newScan);

http://git-wip-us.apache.org/repos/asf/calcite/blob/a445ff2f/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java 
b/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
index 8b13e26..898e402 100644
--- a/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
+++ b/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
@@ -2120,7 +2120,8 @@ public class SqlToRelConverter {
       final TranslatableTable table =
           udf.getTable(typeFactory, callBinding.operands());
       final RelDataType rowType = table.getRowType(typeFactory);
-      RelOptTable relOptTable = RelOptTableImpl.create(null, rowType, table);
+      RelOptTable relOptTable = RelOptTableImpl.create(null, rowType, table,
+          udf.getNameAsId().names);
       RelNode converted = toRel(relOptTable);
       bb.setRoot(converted, true);
       return;

http://git-wip-us.apache.org/repos/asf/calcite/blob/a445ff2f/core/src/test/java/org/apache/calcite/test/StreamTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/StreamTest.java 
b/core/src/test/java/org/apache/calcite/test/StreamTest.java
index 99403bd..6d79b1d 100644
--- a/core/src/test/java/org/apache/calcite/test/StreamTest.java
+++ b/core/src/test/java/org/apache/calcite/test/StreamTest.java
@@ -115,7 +115,7 @@ public class StreamTest {
             + "  LogicalProject(ROWTIME=[$0], ID=[$1], PRODUCT=[$2], 
UNITS=[$3])\n"
             + "    LogicalTableScan(table=[[STREAMS, ORDERS]])\n")
         .explainContains("EnumerableInterpreter\n"
-            + "  BindableTableScan(table=[[]])")
+            + "  BindableTableScan(table=[[STREAMS, ORDERS, (STREAM)]])")
         .returns(
             startsWith(
                 "ROWTIME=2015-02-15 10:15:00; ID=1; PRODUCT=paint; UNITS=10",
@@ -134,7 +134,7 @@ public class StreamTest {
         .explainContains(
             "EnumerableCalc(expr#0..3=[{inputs}], expr#4=[6], expr#5=[>($t3, 
$t4)], PRODUCT=[$t2], $condition=[$t5])\n"
                 + "  EnumerableInterpreter\n"
-                + "    BindableTableScan(table=[[]])")
+                + "    BindableTableScan(table=[[STREAMS, ORDERS, (STREAM)]])")
         .returns(
             startsWith("PRODUCT=paint",
                 "PRODUCT=brush"));
@@ -159,7 +159,7 @@ public class StreamTest {
                 + "  EnumerableAggregate(group=[{0, 1}], C=[COUNT()])\n"
                 + "    EnumerableCalc(expr#0..3=[{inputs}], 
expr#4=[FLAG(HOUR)], expr#5=[FLOOR($t0, $t4)], ROWTIME=[$t5], PRODUCT=[$t2])\n"
                 + "      EnumerableInterpreter\n"
-                + "        BindableTableScan(table=[[]])")
+                + "        BindableTableScan(table=[[STREAMS, ORDERS, 
(STREAM)]])")
         .returns(
             startsWith("ROWTIME=2015-02-15 10:00:00; PRODUCT=paint; C=2"));
   }
@@ -180,7 +180,7 @@ public class StreamTest {
             "EnumerableSort(sort0=[$0], sort1=[$1], dir0=[ASC], dir1=[DESC])\n"
                 + "  EnumerableCalc(expr#0..3=[{inputs}], expr#4=[FLAG(HOUR)], 
expr#5=[FLOOR($t0, $t4)], ROWTIME=[$t5], PRODUCT=[$t2], UNITS=[$t3])\n"
                 + "    EnumerableInterpreter\n"
-                + "      BindableTableScan(table=[[]])")
+                + "      BindableTableScan(table=[[STREAMS, ORDERS, 
(STREAM)]])")
         .returns(
             startsWith("ROWTIME=2015-02-15 10:00:00; PRODUCT=paper; UNITS=5",
                 "ROWTIME=2015-02-15 10:00:00; PRODUCT=paint; UNITS=10",
@@ -230,7 +230,7 @@ public class StreamTest {
         .query("select stream * from orders")
         .limit(100)
         .explainContains("EnumerableInterpreter\n"
-            + "  BindableTableScan(table=[[]])")
+            + "  BindableTableScan(table=[[INFINITE_STREAMS, ORDERS, 
(STREAM)]])")
         .returnsCount(100);
   }
 
@@ -252,7 +252,7 @@ public class StreamTest {
             + "  EnumerableJoin(condition=[=($4, $5)], joinType=[inner])\n"
             + "    EnumerableCalc(expr#0..3=[{inputs}], 
expr#4=[CAST($t2):VARCHAR(32) CHARACTER SET \"ISO-8859-1\" COLLATE 
\"ISO-8859-1$en_US$primary\" NOT NULL], proj#0..4=[{exprs}])\n"
             + "      EnumerableInterpreter\n"
-            + "        BindableTableScan(table=[[]])\n"
+            + "        BindableTableScan(table=[[STREAM_JOINS, ORDERS, 
(STREAM)]])\n"
             + "    EnumerableInterpreter\n"
             + "      BindableTableScan(table=[[STREAM_JOINS, PRODUCTS]])")
         .returns(

Reply via email to