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

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


The following commit(s) were added to refs/heads/master by this push:
     new 06797285e3f Make column-prune not effective for 
InformationSchemaTableScanNode
06797285e3f is described below

commit 06797285e3f1b08c1275bff717ec03870d62801c
Author: Weihao Li <[email protected]>
AuthorDate: Tue Dec 31 19:36:06 2024 +0800

    Make column-prune not effective for InformationSchemaTableScanNode
---
 .../iterative/rule/PruneTableScanColumns.java       | 13 ++++---------
 .../plan/relational/analyzer/ShowQueriesTest.java   | 21 +++++++++++++++++++++
 2 files changed, 25 insertions(+), 9 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableScanColumns.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableScanColumns.java
index bd94b448993..c9c577300e6 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableScanColumns.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableScanColumns.java
@@ -102,15 +102,10 @@ public class PruneTableScanColumns extends 
ProjectOffPushDownRule<TableScanNode>
               deviceTableScanNode.getPushDownOffset(),
               deviceTableScanNode.isPushLimitToEachDevice()));
     } else if (node instanceof InformationSchemaTableScanNode) {
-      return Optional.of(
-          new InformationSchemaTableScanNode(
-              node.getPlanNodeId(),
-              node.getQualifiedObjectName(),
-              newOutputs,
-              newAssignments,
-              node.getPushDownPredicate(),
-              node.getPushDownLimit(),
-              node.getPushDownOffset()));
+      // For the convenience of process in execution stage, column-prune for
+      // InformationSchemaTableScanNode is
+      // not supported now.
+      return Optional.empty();
     } else {
       throw new UnsupportedOperationException(
           "Unknown TableScanNode type: " + node.getClass().getSimpleName());
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ShowQueriesTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ShowQueriesTest.java
index e08cc5fae3e..bdf44401aad 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ShowQueriesTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ShowQueriesTest.java
@@ -40,6 +40,7 @@ import static 
org.apache.iotdb.db.queryengine.plan.relational.planner.assertions
 import static 
org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.mergeSort;
 import static 
org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.offset;
 import static 
org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.output;
+import static 
org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.project;
 import static 
org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.sort;
 
 public class ShowQueriesTest {
@@ -118,4 +119,24 @@ public class ShowQueriesTest {
         planTester.getFragmentPlan(2),
         sort(infoSchemaTableScan("information_schema.queries", 
Optional.of(2))));
   }
+
+  @Test
+  public void testNonSelectAll() {
+    // Optimizer column-prune for InformationSchemaTableScanNode is not 
supported now.
+    LogicalQueryPlan logicalQueryPlan =
+        planTester.createPlan("select query_id from 
information_schema.queries");
+    assertPlan(
+        logicalQueryPlan,
+        output(
+            project(
+                infoSchemaTableScan(
+                    "information_schema.queries",
+                    Optional.empty(),
+                    ImmutableList.of(
+                        QUERY_ID_TABLE_MODEL,
+                        START_TIME_TABLE_MODEL,
+                        DATA_NODE_ID_TABLE_MODEL,
+                        ELAPSED_TIME_TABLE_MODEL,
+                        STATEMENT.toLowerCase(Locale.ENGLISH))))));
+  }
 }

Reply via email to