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 640a0c7ac1b Isolate Show-Queries of TableModel and TreeModel
640a0c7ac1b is described below

commit 640a0c7ac1b54c7dbe72a97f199fdfb928619332
Author: Weihao Li <[email protected]>
AuthorDate: Thu Dec 19 17:11:47 2024 +0800

    Isolate Show-Queries of TableModel and TreeModel
---
 .../operator/source/ShowQueriesOperator.java       | 23 ++++++++++++---------
 .../InformationSchemaContentSupplierFactory.java   | 24 ++++++++++++----------
 .../plan/execution/IQueryExecution.java            |  3 ++-
 .../queryengine/plan/execution/QueryExecution.java |  5 +++--
 .../plan/execution/config/ConfigExecution.java     |  5 +++--
 .../operator/MergeTreeSortOperatorTest.java        |  4 ++--
 .../plan/relational/analyzer/ShowQueriesTest.java  | 20 ++++++++++++++++--
 .../planner/assertions/PlanMatchPattern.java       | 12 +++++++++++
 .../schema/column/ColumnHeaderConstant.java        |  2 +-
 .../schema/table/InformationSchemaTable.java       | 13 ++++--------
 10 files changed, 71 insertions(+), 40 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ShowQueriesOperator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ShowQueriesOperator.java
index d12eb84d850..14159f1de63 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ShowQueriesOperator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ShowQueriesOperator.java
@@ -19,6 +19,7 @@
 
 package org.apache.iotdb.db.queryengine.execution.operator.source;
 
+import org.apache.iotdb.db.protocol.session.IClientSession;
 import org.apache.iotdb.db.queryengine.common.header.DatasetHeaderFactory;
 import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper;
 import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext;
@@ -131,16 +132,18 @@ public class ShowQueriesOperator implements 
SourceOperator {
       int dataNodeId = Integer.parseInt(splits[splits.length - 1]);
 
       for (IQueryExecution queryExecution : queryExecutions) {
-        timeColumnBuilder.writeLong(
-            TimestampPrecisionUtils.convertToCurrPrecision(
-                queryExecution.getStartExecutionTime(), 
TimeUnit.MILLISECONDS));
-        
columnBuilders[0].writeBinary(BytesUtils.valueOf(queryExecution.getQueryId()));
-        columnBuilders[1].writeInt(dataNodeId);
-        columnBuilders[2].writeFloat(
-            (float) (currTime - queryExecution.getStartExecutionTime()) / 
1000);
-        columnBuilders[3].writeBinary(
-            
BytesUtils.valueOf(queryExecution.getExecuteSQL().orElse("UNKNOWN")));
-        builder.declarePosition();
+        if 
(queryExecution.getSQLDialect().equals(IClientSession.SqlDialect.TREE)) {
+          timeColumnBuilder.writeLong(
+              TimestampPrecisionUtils.convertToCurrPrecision(
+                  queryExecution.getStartExecutionTime(), 
TimeUnit.MILLISECONDS));
+          
columnBuilders[0].writeBinary(BytesUtils.valueOf(queryExecution.getQueryId()));
+          columnBuilders[1].writeInt(dataNodeId);
+          columnBuilders[2].writeFloat(
+              (float) (currTime - queryExecution.getStartExecutionTime()) / 
1000);
+          columnBuilders[3].writeBinary(
+              
BytesUtils.valueOf(queryExecution.getExecuteSQL().orElse("UNKNOWN")));
+          builder.declarePosition();
+        }
       }
     }
     return builder.build();
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java
index 1fa7918d519..0f091ab5e78 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.queryengine.execution.operator.source.relational;
 
+import org.apache.iotdb.db.protocol.session.IClientSession;
 import org.apache.iotdb.db.queryengine.plan.Coordinator;
 import org.apache.iotdb.db.queryengine.plan.execution.IQueryExecution;
 
@@ -60,19 +61,20 @@ public class InformationSchemaContentSupplierFactory {
           while (nextConsumedIndex < totalSize && !resultBuilder.isFull()) {
 
             IQueryExecution queryExecution = 
queryExecutions.get(nextConsumedIndex);
-            String[] splits = queryExecution.getQueryId().split("_");
-            int dataNodeId = Integer.parseInt(splits[splits.length - 1]);
 
-            
columnBuilders[0].writeLong(queryExecution.getStartExecutionTime());
-            
columnBuilders[1].writeBinary(BytesUtils.valueOf(queryExecution.getQueryId()));
-            columnBuilders[2].writeInt(dataNodeId);
-            columnBuilders[3].writeFloat(
-                (float) (currTime - queryExecution.getStartExecutionTime()) / 
1000);
-            columnBuilders[4].writeBinary(
-                
BytesUtils.valueOf(queryExecution.getExecuteSQL().orElse("UNKNOWN")));
-            
columnBuilders[5].writeBinary(BytesUtils.valueOf(queryExecution.getSQLDialect()));
-            resultBuilder.declarePosition();
+            if 
(queryExecution.getSQLDialect().equals(IClientSession.SqlDialect.TABLE)) {
+              String[] splits = queryExecution.getQueryId().split("_");
+              int dataNodeId = Integer.parseInt(splits[splits.length - 1]);
 
+              
columnBuilders[0].writeBinary(BytesUtils.valueOf(queryExecution.getQueryId()));
+              
columnBuilders[1].writeLong(queryExecution.getStartExecutionTime());
+              columnBuilders[2].writeInt(dataNodeId);
+              columnBuilders[3].writeFloat(
+                  (float) (currTime - queryExecution.getStartExecutionTime()) 
/ 1000);
+              columnBuilders[4].writeBinary(
+                  
BytesUtils.valueOf(queryExecution.getExecuteSQL().orElse("UNKNOWN")));
+              resultBuilder.declarePosition();
+            }
             nextConsumedIndex++;
           }
           TsBlock result =
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/IQueryExecution.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/IQueryExecution.java
index f1c3b96d2d3..366af9fdfca 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/IQueryExecution.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/IQueryExecution.java
@@ -20,6 +20,7 @@
 package org.apache.iotdb.db.queryengine.plan.execution;
 
 import org.apache.iotdb.commons.exception.IoTDBException;
+import org.apache.iotdb.db.protocol.session.IClientSession;
 import org.apache.iotdb.db.queryengine.common.header.DatasetHeader;
 
 import org.apache.tsfile.read.common.block.TsBlock;
@@ -70,5 +71,5 @@ public interface IQueryExecution {
 
   String getStatementType();
 
-  String getSQLDialect();
+  IClientSession.SqlDialect getSQLDialect();
 }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java
index 1586833c73d..bbb043f5468 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java
@@ -28,6 +28,7 @@ import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.query.KilledByOthersException;
 import org.apache.iotdb.db.exception.query.QueryTimeoutRuntimeException;
+import org.apache.iotdb.db.protocol.session.IClientSession;
 import org.apache.iotdb.db.queryengine.common.FragmentInstanceId;
 import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
 import org.apache.iotdb.db.queryengine.common.header.DatasetHeader;
@@ -690,8 +691,8 @@ public class QueryExecution implements IQueryExecution {
   }
 
   @Override
-  public String getSQLDialect() {
-    return context.getSession().getSqlDialect().toString();
+  public IClientSession.SqlDialect getSQLDialect() {
+    return context.getSession().getSqlDialect();
   }
 
   public MPPQueryContext getContext() {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigExecution.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigExecution.java
index 6023edf58cc..92a8a979d65 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigExecution.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigExecution.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.db.queryengine.plan.execution.config;
 
 import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.commons.utils.TestOnly;
+import org.apache.iotdb.db.protocol.session.IClientSession;
 import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
 import org.apache.iotdb.db.queryengine.common.header.DatasetHeader;
 import org.apache.iotdb.db.queryengine.execution.QueryStateMachine;
@@ -304,7 +305,7 @@ public class ConfigExecution implements IQueryExecution {
   }
 
   @Override
-  public String getSQLDialect() {
-    return context.getSession().getSqlDialect().toString();
+  public IClientSession.SqlDialect getSQLDialect() {
+    return context.getSession().getSqlDialect();
   }
 }
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeTreeSortOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeTreeSortOperatorTest.java
index 63ae72506ae..b479a578790 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeTreeSortOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeTreeSortOperatorTest.java
@@ -1840,8 +1840,8 @@ public class MergeTreeSortOperatorTest {
     }
 
     @Override
-    public String getSQLDialect() {
-      return IClientSession.SqlDialect.TREE.toString();
+    public IClientSession.SqlDialect getSQLDialect() {
+      return IClientSession.SqlDialect.TREE;
     }
 
     @Override
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 275369844d3..e08cc5fae3e 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
@@ -21,10 +21,17 @@ package 
org.apache.iotdb.db.queryengine.plan.relational.analyzer;
 import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan;
 import org.apache.iotdb.db.queryengine.plan.relational.planner.PlanTester;
 
+import com.google.common.collect.ImmutableList;
 import org.junit.Test;
 
+import java.util.Locale;
 import java.util.Optional;
 
+import static 
org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.DATA_NODE_ID_TABLE_MODEL;
+import static 
org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.ELAPSED_TIME_TABLE_MODEL;
+import static 
org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.QUERY_ID_TABLE_MODEL;
+import static 
org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.START_TIME_TABLE_MODEL;
+import static 
org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.STATEMENT;
 import static 
org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan;
 import static 
org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.collect;
 import static 
org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.exchange;
@@ -43,7 +50,16 @@ public class ShowQueriesTest {
     LogicalQueryPlan logicalQueryPlan = planTester.createPlan("show queries");
     assertPlan(
         logicalQueryPlan,
-        output(infoSchemaTableScan("information_schema.queries", 
Optional.empty())));
+        output(
+            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)))));
 
     //                  - Exchange
     // Output - Collect - Exchange
@@ -85,7 +101,7 @@ public class ShowQueriesTest {
   @Test
   public void testSort() {
     LogicalQueryPlan logicalQueryPlan =
-        planTester.createPlan("show queries order by time, query_id");
+        planTester.createPlan("show queries order by start_time, query_id");
     assertPlan(
         logicalQueryPlan,
         output(sort(infoSchemaTableScan("information_schema.queries", 
Optional.empty()))));
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchPattern.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchPattern.java
index c5171ab927b..57cfde2465e 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchPattern.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchPattern.java
@@ -131,6 +131,18 @@ public final class PlanMatchPattern {
                 dataNodeId));
   }
 
+  public static PlanMatchPattern infoSchemaTableScan(
+      String expectedTableName, Optional<Integer> dataNodeId, List<String> 
outputSymbols) {
+    return node(InformationSchemaTableScanNode.class)
+        .with(
+            new InformationSchemaTableScanMatcher(
+                expectedTableName,
+                Optional.empty(),
+                outputSymbols,
+                Collections.emptySet(),
+                dataNodeId));
+  }
+
   public static PlanMatchPattern tableScan(String expectedTableName) {
     return node(DeviceTableScanNode.class)
         .with(
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/column/ColumnHeaderConstant.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/column/ColumnHeaderConstant.java
index bf7977ff28b..fa00a614c32 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/column/ColumnHeaderConstant.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/column/ColumnHeaderConstant.java
@@ -200,8 +200,8 @@ public class ColumnHeaderConstant {
 
   public static final String QUERY_ID_TABLE_MODEL = "query_id";
   public static final String DATA_NODE_ID_TABLE_MODEL = "datanode_id";
+  public static final String START_TIME_TABLE_MODEL = "start_time";
   public static final String ELAPSED_TIME_TABLE_MODEL = "elapsed_time";
-  public static final String SQL_DIALECT = "sql_dialect";
 
   // column names for show space quota
   public static final String QUOTA_TYPE = "QuotaType";
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/table/InformationSchemaTable.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/table/InformationSchemaTable.java
index 75c6e1d65a1..004408fe616 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/table/InformationSchemaTable.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/table/InformationSchemaTable.java
@@ -35,13 +35,13 @@ public enum InformationSchemaTable {
           "queries",
           ImmutableList.of(
               new MeasurementColumnSchema(
-                  ColumnHeaderConstant.TIME,
-                  TSDataType.TIMESTAMP,
+                  ColumnHeaderConstant.QUERY_ID_TABLE_MODEL,
+                  TSDataType.STRING,
                   TSEncoding.PLAIN,
                   CompressionType.UNCOMPRESSED),
               new MeasurementColumnSchema(
-                  ColumnHeaderConstant.QUERY_ID_TABLE_MODEL,
-                  TSDataType.STRING,
+                  ColumnHeaderConstant.START_TIME_TABLE_MODEL,
+                  TSDataType.TIMESTAMP,
                   TSEncoding.PLAIN,
                   CompressionType.UNCOMPRESSED),
               new MeasurementColumnSchema(
@@ -58,11 +58,6 @@ public enum InformationSchemaTable {
                   ColumnHeaderConstant.STATEMENT,
                   TSDataType.STRING,
                   TSEncoding.PLAIN,
-                  CompressionType.UNCOMPRESSED),
-              new MeasurementColumnSchema(
-                  ColumnHeaderConstant.SQL_DIALECT,
-                  TSDataType.STRING,
-                  TSEncoding.PLAIN,
                   CompressionType.UNCOMPRESSED))));
 
   public static final String INFORMATION_SCHEMA = "information_schema";

Reply via email to