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";