You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2022/12/22 08:19:01 UTC
[iotdb] branch master updated: Eliminate physical plan and Refactor SchemaRegionPlan usage
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 75e85edfe5 Eliminate physical plan and Refactor SchemaRegionPlan usage
75e85edfe5 is described below
commit 75e85edfe529de939133c269fbc21c614df54057
Author: Marcos_Zyk <38...@users.noreply.github.com>
AuthorDate: Thu Dec 22 16:18:54 2022 +0800
Eliminate physical plan and Refactor SchemaRegionPlan usage
---
.../schemaregion/rocksdb/RSchemaRegion.java | 26 +-
.../rocksdb/RSchemaRegionAdvancedTest.java | 169 ---------
.../schemaregion}/rocksdb/MRocksDBBenchmark.java | 8 +-
.../schemaregion}/rocksdb/MRocksDBUnitTest.java | 42 +--
.../rocksdb/RSchemaReadWriteHandlerTest.java | 6 +-
.../rocksdb/RocksDBBenchmarkEngine.java | 16 +-
.../rocksdb/RocksDBBenchmarkTask.java | 0
.../schemaregion}/rocksdb/RocksDBTestUtils.java | 4 +-
.../metadata/tagSchemaRegion/TagSchemaRegion.java | 21 +-
.../utils/ShowTimeSeriesResultUtils.java | 4 +-
.../tagSchemaRegion/TagSchemaRegionTest.java | 10 +-
.../idtable/IDTableWithDeviceIDListImplTest.java | 17 +-
.../iotdb/db/metadata/LocalSchemaProcessor.java | 7 +-
.../iotdb/db/metadata/mtree/IMTreeBelowSG.java | 13 +-
.../db/metadata/mtree/MTreeBelowSGCachedImpl.java | 56 +--
.../db/metadata/mtree/MTreeBelowSGMemoryImpl.java | 55 +--
.../plan/schemaregion/SchemaRegionPlanType.java | 7 +-
.../impl/SchemaRegionPlanDeserializer.java | 3 +-
.../impl/read/AbstractShowSchemaPlanImpl.java | 83 +++++
.../impl/read/SchemaRegionReadPlanFactory.java | 75 ++++
.../impl/read/ShowDevicesPlanImpl.java} | 37 +-
.../impl/read/ShowTimeSeriesPlanImpl.java | 91 +++++
.../ActivateTemplateInClusterPlanImpl.java | 6 +-
.../{ => write}/AutoCreateDeviceMNodePlanImpl.java | 6 +-
.../impl/{ => write}/ChangeAliasPlanImpl.java | 6 +-
.../impl/{ => write}/ChangeTagOffsetPlanImpl.java | 6 +-
.../CreateAlignedTimeSeriesPlanImpl.java | 6 +-
.../impl/{ => write}/CreateTimeSeriesPlanImpl.java | 6 +-
.../{ => write}/DeactivateTemplatePlanImpl.java | 6 +-
.../impl/{ => write}/DeleteTimeSeriesPlanImpl.java | 6 +-
.../{ => write}/PreDeactivateTemplatePlanImpl.java | 6 +-
.../{ => write}/PreDeleteTimeSeriesPlanImpl.java | 6 +-
.../RollbackPreDeactivateTemplatePlanImpl.java | 6 +-
.../RollbackPreDeleteTimeSeriesPlanImpl.java | 6 +-
.../SchemaRegionWritePlanFactory.java} | 6 +-
.../IShowDevicesPlan.java} | 26 +-
.../IShowSchemaPlan.java} | 33 +-
.../IShowTimeSeriesPlan.java} | 26 +-
.../schemaregion/result}/ShowDevicesResult.java | 33 +-
.../schemaregion/result/ShowSchemaResult.java} | 32 +-
.../schemaregion/result/ShowTimeSeriesResult.java | 114 +++++++
.../db/metadata/schemaregion/ISchemaRegion.java | 16 +-
.../schemaregion/SchemaRegionMemoryImpl.java | 93 ++---
.../schemaregion/SchemaRegionSchemaFileImpl.java | 95 ++----
.../apache/iotdb/db/metadata/tag/TagManager.java | 7 +-
.../metadata/visitor/SchemaExecutionVisitor.java | 6 +-
.../operator/schema/DevicesSchemaScanOperator.java | 17 +-
.../schema/TimeSeriesSchemaScanOperator.java | 22 +-
.../apache/iotdb/db/qp/physical/PhysicalPlan.java | 310 -----------------
.../physical/sys/CreateAlignedTimeSeriesPlan.java | 380 ---------------------
.../db/qp/physical/sys/CreateTimeSeriesPlan.java | 287 ----------------
.../apache/iotdb/db/qp/physical/sys/ShowPlan.java | 131 -------
.../db/qp/physical/sys/ShowTimeSeriesPlan.java | 139 --------
.../db/query/dataset/ShowTimeSeriesResult.java | 196 -----------
.../schemaRegion/SchemaRegionAliasAndTagTest.java | 19 +-
.../schemaRegion/SchemaRegionBasicTest.java | 61 ++--
.../schemaRegion/SchemaRegionManagementTest.java | 40 ++-
.../schemaRegion/SchemaRegionTemplateTest.java | 28 +-
.../schemaRegion/SchemaRegionTestUtil.java | 9 +-
.../schema/SchemaQueryScanOperatorTest.java | 19 +-
.../db/query/dataset/ShowDevicesResultTest.java | 43 ---
.../db/query/dataset/ShowTimeSeriesResultTest.java | 70 ----
.../iotdb/db/query/dataset/SingleDataSetTest.java | 109 ------
.../org/apache/iotdb/db/tools/MLogParserTest.java | 4 +-
64 files changed, 762 insertions(+), 2431 deletions(-)
diff --git a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RSchemaRegion.java b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RSchemaRegion.java
index 99fd8bfbc2..b0623d3854 100644
--- a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RSchemaRegion.java
+++ b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RSchemaRegion.java
@@ -45,6 +45,10 @@ import org.apache.iotdb.db.metadata.idtable.IDTableManager;
import org.apache.iotdb.db.metadata.mnode.IMNode;
import org.apache.iotdb.db.metadata.mnode.IMeasurementMNode;
import org.apache.iotdb.db.metadata.mnode.MNodeType;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowDevicesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowTimeSeriesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowDevicesResult;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowTimeSeriesResult;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IActivateTemplateInClusterPlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateAlignedTimeSeriesPlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateTimeSeriesPlan;
@@ -59,11 +63,6 @@ import org.apache.iotdb.db.metadata.schemaregion.rocksdb.mnode.RMeasurementMNode
import org.apache.iotdb.db.metadata.template.Template;
import org.apache.iotdb.db.metadata.utils.MetaFormatUtils;
import org.apache.iotdb.db.metadata.utils.MetaUtils;
-import org.apache.iotdb.db.qp.physical.sys.ShowDevicesPlan;
-import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
-import org.apache.iotdb.db.query.context.QueryContext;
-import org.apache.iotdb.db.query.dataset.ShowDevicesResult;
-import org.apache.iotdb.db.query.dataset.ShowTimeSeriesResult;
import org.apache.iotdb.db.utils.SchemaUtils;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
@@ -1040,7 +1039,7 @@ public class RSchemaRegion implements ISchemaRegion {
}
@Override
- public Pair<List<ShowDevicesResult>, Integer> getMatchedDevices(ShowDevicesPlan plan)
+ public Pair<List<ShowDevicesResult>, Integer> getMatchedDevices(IShowDevicesPlan plan)
throws MetadataException {
List<ShowDevicesResult> res = Collections.synchronizedList(new ArrayList<>());
BiFunction<byte[], byte[], Boolean> function =
@@ -1095,24 +1094,24 @@ public class RSchemaRegion implements ISchemaRegion {
}
@Override
- public Pair<List<ShowTimeSeriesResult>, Integer> showTimeseries(
- ShowTimeSeriesPlan plan, QueryContext context) throws MetadataException {
+ public Pair<List<ShowTimeSeriesResult>, Integer> showTimeseries(IShowTimeSeriesPlan plan)
+ throws MetadataException {
if (plan.getKey() != null && plan.getValue() != null) {
- return showTimeseriesWithIndex(plan, context);
+ return showTimeseriesWithIndex(plan);
} else {
- return showTimeseriesWithoutIndex(plan, context);
+ return showTimeseriesWithoutIndex(plan);
}
}
private Pair<List<ShowTimeSeriesResult>, Integer> showTimeseriesWithIndex(
- ShowTimeSeriesPlan plan, QueryContext context) {
+ IShowTimeSeriesPlan plan) {
// temporarily unsupported
throw new UnsupportedOperationException(
formatNotSupportInfo(Thread.currentThread().getStackTrace()[1].getMethodName()));
}
private Pair<List<ShowTimeSeriesResult>, Integer> showTimeseriesWithoutIndex(
- ShowTimeSeriesPlan plan, QueryContext context) throws MetadataException {
+ IShowTimeSeriesPlan plan) throws MetadataException {
List<ShowTimeSeriesResult> res = new LinkedList<>();
Map<MeasurementPath, Pair<Map<String, String>, Map<String, String>>> measurementPathsAndTags =
@@ -1131,7 +1130,6 @@ public class RSchemaRegion implements ISchemaRegion {
measurementPath.getMeasurementSchema().getType(),
measurementPath.getMeasurementSchema().getEncodingType(),
measurementPath.getMeasurementSchema().getCompressor(),
- 0,
entry.getValue().left,
entry.getValue().right,
deadbandInfo.left,
@@ -1173,7 +1171,7 @@ public class RSchemaRegion implements ISchemaRegion {
return allResult;
}
- private IMeasurementMNode getMeasurementMNode(PartialPath fullPath) throws MetadataException {
+ IMeasurementMNode getMeasurementMNode(PartialPath fullPath) throws MetadataException {
String[] nodes = fullPath.getNodes();
String key = RSchemaUtils.getLevelPath(nodes, nodes.length - 1);
IMeasurementMNode node = null;
diff --git a/schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/RSchemaRegionAdvancedTest.java b/schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/RSchemaRegionAdvancedTest.java
deleted file mode 100644
index 80ab0250cf..0000000000
--- a/schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/RSchemaRegionAdvancedTest.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.metadata.schemaregion.rocksdb;
-
-import org.apache.iotdb.commons.consensus.SchemaRegionId;
-import org.apache.iotdb.db.exception.metadata.MetadataException;
-import org.apache.iotdb.db.metadata.mnode.IMNode;
-import org.apache.iotdb.db.metadata.path.PartialPath;
-import org.apache.iotdb.db.metadata.schemaregion.rocksdb.mnode.RStorageGroupMNode;
-import org.apache.iotdb.db.utils.EnvironmentUtils;
-import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import java.util.Collections;
-
-@Ignore
-public class RSchemaRegionAdvancedTest {
-
- private static RSchemaRegion schemaRegion = null;
-
- @Before
- public void setUp() throws Exception {
- EnvironmentUtils.envSetUp();
- PartialPath storageGroupPath = new PartialPath("root.vehicle.s0");
- SchemaRegionId schemaRegionId = new SchemaRegionId(1);
- RSchemaReadWriteHandler readWriteHandler = new RSchemaReadWriteHandler();
- RStorageGroupMNode storageGroupMNode =
- new RStorageGroupMNode(storageGroupPath.getFullPath(), -1, readWriteHandler);
- schemaRegion =
- new RSchemaRegion(
- storageGroupPath, schemaRegionId, storageGroupMNode, new RSchemaConfLoader());
-
- schemaRegion.createTimeseries(
- new PartialPath("root.vehicle.s0.d0.s0"),
- TSDataType.INT32,
- TSEncoding.RLE,
- TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
- schemaRegion.createTimeseries(
- new PartialPath("root.vehicle.s0.d0.s1"),
- TSDataType.INT64,
- TSEncoding.RLE,
- TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
- schemaRegion.createTimeseries(
- new PartialPath("root.vehicle.s0.d0.s2"),
- TSDataType.FLOAT,
- TSEncoding.RLE,
- TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
- schemaRegion.createTimeseries(
- new PartialPath("root.vehicle.s0.d0.s3"),
- TSDataType.DOUBLE,
- TSEncoding.RLE,
- TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
- schemaRegion.createTimeseries(
- new PartialPath("root.vehicle.s0.d0.s4"),
- TSDataType.BOOLEAN,
- TSEncoding.PLAIN,
- TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
- schemaRegion.createTimeseries(
- new PartialPath("root.vehicle.s0.d0.s5"),
- TSDataType.TEXT,
- TSEncoding.PLAIN,
- TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
-
- schemaRegion.createTimeseries(
- new PartialPath("root.vehicle.s1.d1.s0"),
- TSDataType.INT32,
- TSEncoding.RLE,
- TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
- schemaRegion.createTimeseries(
- new PartialPath("root.vehicle.s1.d1.s1"),
- TSDataType.INT64,
- TSEncoding.RLE,
- TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
- schemaRegion.createTimeseries(
- new PartialPath("root.vehicle.s1.d1.s2"),
- TSDataType.FLOAT,
- TSEncoding.RLE,
- TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
- schemaRegion.createTimeseries(
- new PartialPath("root.vehicle.s1.d1.s3"),
- TSDataType.DOUBLE,
- TSEncoding.RLE,
- TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
- schemaRegion.createTimeseries(
- new PartialPath("root.vehicle.s1.d1.s4"),
- TSDataType.BOOLEAN,
- TSEncoding.PLAIN,
- TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
- schemaRegion.createTimeseries(
- new PartialPath("root.vehicle.s1.d1.s5"),
- TSDataType.TEXT,
- TSEncoding.PLAIN,
- TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
- }
-
- @After
- public void tearDown() throws Exception {
- EnvironmentUtils.cleanEnv();
- }
-
- @Test
- public void testCache() throws MetadataException {
- schemaRegion.createTimeseries(
- new PartialPath("root.vehicle.s2.d2.s0"),
- TSDataType.DOUBLE,
- TSEncoding.RLE,
- TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
- schemaRegion.createTimeseries(
- new PartialPath("root.vehicle.s2.d2.s1"),
- TSDataType.BOOLEAN,
- TSEncoding.PLAIN,
- TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
- schemaRegion.createTimeseries(
- new PartialPath("root.vehicle.s2.d2.s2.g0"),
- TSDataType.TEXT,
- TSEncoding.PLAIN,
- TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
- schemaRegion.createTimeseries(
- new PartialPath("root.vehicle.s2.d2.s3"),
- TSDataType.TEXT,
- TSEncoding.PLAIN,
- TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
-
- IMNode node = schemaRegion.getDeviceNode(new PartialPath("root.vehicle.s0.d0"));
- Assert.assertEquals(
- TSDataType.INT32, node.getChild("s0").getAsMeasurementMNode().getSchema().getType());
-
- Assert.assertFalse(schemaRegion.isPathExist(new PartialPath("root.vehicle.d100")));
- }
-}
diff --git a/schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/MRocksDBBenchmark.java b/schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/MRocksDBBenchmark.java
similarity index 92%
rename from schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/MRocksDBBenchmark.java
rename to schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/MRocksDBBenchmark.java
index 54441c30cf..e213f030b4 100644
--- a/schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/MRocksDBBenchmark.java
+++ b/schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/MRocksDBBenchmark.java
@@ -18,11 +18,11 @@
*/
package org.apache.iotdb.db.metadata.schemaregion.rocksdb;
+import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.conf.IoTDBConfig;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.metadata.mnode.IMNode;
-import org.apache.iotdb.db.metadata.path.PartialPath;
-import org.apache.iotdb.db.qp.physical.sys.CreateTimeSeriesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateTimeSeriesPlan;
import org.junit.Ignore;
import org.slf4j.Logger;
@@ -46,9 +46,9 @@ public class MRocksDBBenchmark {
public List<RocksDBBenchmarkTask.BenchmarkResult> benchmarkResults = new ArrayList<>();
- public void testTimeSeriesCreation(List<List<CreateTimeSeriesPlan>> timeSeriesSet)
+ public void testTimeSeriesCreation(List<List<ICreateTimeSeriesPlan>> timeSeriesSet)
throws IOException {
- RocksDBBenchmarkTask<List<CreateTimeSeriesPlan>> task =
+ RocksDBBenchmarkTask<List<ICreateTimeSeriesPlan>> task =
new RocksDBBenchmarkTask<>(timeSeriesSet, RocksDBTestUtils.WRITE_CLIENT_NUM, 100);
RocksDBBenchmarkTask.BenchmarkResult result =
task.runBatchWork(
diff --git a/schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/MRocksDBUnitTest.java b/schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/MRocksDBUnitTest.java
similarity index 88%
rename from schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/MRocksDBUnitTest.java
rename to schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/MRocksDBUnitTest.java
index 9c65bf3f31..b9403ca070 100644
--- a/schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/MRocksDBUnitTest.java
+++ b/schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/MRocksDBUnitTest.java
@@ -20,14 +20,14 @@ package org.apache.iotdb.db.metadata.schemaregion.rocksdb;
import org.apache.iotdb.commons.conf.IoTDBConstant;
import org.apache.iotdb.commons.consensus.SchemaRegionId;
-import org.apache.iotdb.db.exception.metadata.MetadataException;
+import org.apache.iotdb.commons.exception.MetadataException;
+import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.metadata.mnode.IMeasurementMNode;
import org.apache.iotdb.db.metadata.mnode.IStorageGroupMNode;
import org.apache.iotdb.db.metadata.mnode.InternalMNode;
import org.apache.iotdb.db.metadata.mnode.MNode;
import org.apache.iotdb.db.metadata.mnode.StorageGroupMNode;
-import org.apache.iotdb.db.metadata.path.PartialPath;
-import org.apache.iotdb.db.qp.physical.sys.CreateAlignedTimeSeriesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.write.SchemaRegionWritePlanFactory;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
@@ -40,6 +40,7 @@ import org.junit.Test;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -56,7 +57,7 @@ public class MRocksDBUnitTest {
MNode root = new InternalMNode(null, IoTDBConstant.PATH_ROOT);
IStorageGroupMNode storageGroupMNode = new StorageGroupMNode(root, "test", -1);
rSchemaRegion =
- new RSchemaRegion(storageGroup, schemaRegionId, storageGroupMNode, new RSchemaConfLoader());
+ new RSchemaRegion(storageGroup, schemaRegionId, new RSchemaConfLoader());
}
@Test
@@ -102,8 +103,7 @@ public class MRocksDBUnitTest {
}
rSchemaRegion.createAlignedTimeSeries(
- new CreateAlignedTimeSeriesPlan(
- prefixPath, measurements, dataTypes, encodings, compressions, null, null, null));
+ SchemaRegionWritePlanFactory.getCreateAlignedTimeSeriesPlan(prefixPath, measurements, dataTypes, encodings, compressions, null, null, null));
try {
PartialPath path = new PartialPath("root.tt.sg.dd.mn");
@@ -137,8 +137,8 @@ public class MRocksDBUnitTest {
// test all timeseries number
Assert.assertEquals(
- 1, rSchemaRegion.getAllTimeseriesCount(new PartialPath("root.tt.sg.dd.m1"), false));
- Assert.assertEquals(2, rSchemaRegion.getAllTimeseriesCount(new PartialPath("root.**"), false));
+ 1, rSchemaRegion.getAllTimeseriesCount(new PartialPath("root.tt.sg.dd.m1"), Collections.emptyMap(),false));
+ Assert.assertEquals(2, rSchemaRegion.getAllTimeseriesCount(new PartialPath("root.**"), Collections.emptyMap(), false));
// test device number
Assert.assertEquals(
@@ -152,7 +152,7 @@ public class MRocksDBUnitTest {
// test nodes count in given level
Assert.assertEquals(
- 2, rSchemaRegion.getNodesCountInGivenLevel(new PartialPath("root.tt.sg"), 3, false));
+ 2, rSchemaRegion.getNodesListInGivenLevel(new PartialPath("root.tt.sg"), 3, false).size());
}
@Test
@@ -195,22 +195,22 @@ public class MRocksDBUnitTest {
}
Assert.assertEquals(
- rSchemaRegion.getAllTimeseriesCount(new PartialPath("root.**"), false), timeseries.size());
+ rSchemaRegion.getAllTimeseriesCount(new PartialPath("root.**"), Collections.emptyMap(), false), timeseries.size());
int count = timeseries.size();
- rSchemaRegion.deleteTimeseries(new PartialPath("root.sg.d1.*"));
+ rSchemaRegion.deleteTimeseries(new PartialPath("root.sg.d1.*"), false);
Assert.assertEquals(
- rSchemaRegion.getAllTimeseriesCount(new PartialPath("root.**"), false), count - 2);
+ rSchemaRegion.getAllTimeseriesCount(new PartialPath("root.**"), Collections.emptyMap(), false), count - 2);
count = count - 2;
- rSchemaRegion.deleteTimeseries(new PartialPath("root.sg1.**"));
+ rSchemaRegion.deleteTimeseries(new PartialPath("root.sg1.**"), false);
Assert.assertEquals(
- rSchemaRegion.getAllTimeseriesCount(new PartialPath("root.**"), false), count - 4);
+ rSchemaRegion.getAllTimeseriesCount(new PartialPath("root.**"), Collections.emptyMap(), false), count - 4);
count = count - 4;
- rSchemaRegion.deleteTimeseries(new PartialPath("root.sg.*.m1"));
+ rSchemaRegion.deleteTimeseries(new PartialPath("root.sg.*.m1"), false);
Assert.assertEquals(
- rSchemaRegion.getAllTimeseriesCount(new PartialPath("root.**"), false), count - 2);
+ rSchemaRegion.getAllTimeseriesCount(new PartialPath("root.**"), Collections.emptyMap(), false), count - 2);
rSchemaRegion.printScanAllKeys();
}
@@ -224,7 +224,7 @@ public class MRocksDBUnitTest {
IMeasurementMNode m1 = rSchemaRegion.getMeasurementMNode(new PartialPath("root.tt.sg.dd.m2"));
Assert.assertEquals(m1.getAlias(), "ma");
- rSchemaRegion.changeAlias(new PartialPath("root.tt.sg.dd.m2"), "test");
+ rSchemaRegion.upsertAliasAndTagsAndAttributes("test", null, null, new PartialPath("root.tt.sg.dd.m2"));
IMeasurementMNode m2 = rSchemaRegion.getMeasurementMNode(new PartialPath("root.tt.sg.dd.m2"));
Assert.assertEquals(m2.getAlias(), "test");
@@ -248,14 +248,14 @@ public class MRocksDBUnitTest {
rSchemaRegion.createTimeseries(
path4, TSDataType.DOUBLE, TSEncoding.PLAIN, CompressionType.GZIP, null, null);
- Map<PartialPath, Integer> result =
+ Map<PartialPath, Long> result =
rSchemaRegion.getMeasurementCountGroupByLevel(new PartialPath("root.**"), 3, false);
- Assert.assertEquals(3, (int) result.get(new PartialPath("root.test.sg.dd")));
- Assert.assertEquals(1, (int) result.get(new PartialPath("root.test.sg.m4")));
+ Assert.assertEquals(3, (long) result.get(new PartialPath("root.test.sg.dd")));
+ Assert.assertEquals(1, (long) result.get(new PartialPath("root.test.sg.m4")));
result =
rSchemaRegion.getMeasurementCountGroupByLevel(new PartialPath("root.test.**"), 2, false);
- Assert.assertEquals(4, (int) result.get(new PartialPath("root.test.sg")));
+ Assert.assertEquals(4, (long) result.get(new PartialPath("root.test.sg")));
}
@After
diff --git a/schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/RSchemaReadWriteHandlerTest.java b/schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RSchemaReadWriteHandlerTest.java
similarity index 93%
rename from schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/RSchemaReadWriteHandlerTest.java
rename to schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RSchemaReadWriteHandlerTest.java
index b0663e45eb..b9ba52b7f3 100644
--- a/schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/RSchemaReadWriteHandlerTest.java
+++ b/schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RSchemaReadWriteHandlerTest.java
@@ -18,9 +18,9 @@
*/
package org.apache.iotdb.db.metadata.schemaregion.rocksdb;
-import org.apache.iotdb.db.exception.metadata.IllegalPathException;
-import org.apache.iotdb.db.exception.metadata.MetadataException;
-import org.apache.iotdb.db.metadata.path.PartialPath;
+import org.apache.iotdb.commons.exception.IllegalPathException;
+import org.apache.iotdb.commons.exception.MetadataException;
+import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.metadata.schemaregion.rocksdb.mnode.RMNodeType;
import org.junit.Assert;
diff --git a/schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/RocksDBBenchmarkEngine.java b/schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RocksDBBenchmarkEngine.java
similarity index 92%
rename from schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/RocksDBBenchmarkEngine.java
rename to schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RocksDBBenchmarkEngine.java
index 624b029532..19b98c6e75 100644
--- a/schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/RocksDBBenchmarkEngine.java
+++ b/schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RocksDBBenchmarkEngine.java
@@ -18,26 +18,20 @@
*/
package org.apache.iotdb.db.metadata.schemaregion.rocksdb;
+import org.apache.iotdb.commons.exception.MetadataException;
+import org.apache.iotdb.commons.file.SystemFileFactory;
+import org.apache.iotdb.commons.utils.FileUtils;
import org.apache.iotdb.db.conf.IoTDBConfig;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
-import org.apache.iotdb.db.exception.metadata.IllegalPathException;
-import org.apache.iotdb.db.exception.metadata.MetadataException;
import org.apache.iotdb.db.metadata.MetadataConstant;
-import org.apache.iotdb.db.metadata.path.PartialPath;
-import org.apache.iotdb.db.utils.FileUtils;
-import org.apache.commons.lang3.ArrayUtils;
-import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.HashSet;
-import java.util.List;
import java.util.Set;
import static org.apache.iotdb.db.metadata.schemaregion.rocksdb.RSchemaReadWriteHandler.ROCKSDB_PATH;
@@ -67,7 +61,7 @@ public class RocksDBBenchmarkEngine {
}
// @Test
-// public void startTest() {
+ public void startTest() {
// RocksDBTestUtils.printMemInfo("Benchmark rocksdb start");
// try {
// prepareBenchmark();
@@ -83,7 +77,7 @@ public class RocksDBBenchmarkEngine {
// } catch (IOException | MetadataException e) {
// logger.error("Error happened when run benchmark", e);
// }
-// }
+ }
public void prepareBenchmark() throws IOException {
long time = System.currentTimeMillis();
diff --git a/schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/RocksDBBenchmarkTask.java b/schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RocksDBBenchmarkTask.java
similarity index 100%
rename from schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/RocksDBBenchmarkTask.java
rename to schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RocksDBBenchmarkTask.java
diff --git a/schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/RocksDBTestUtils.java b/schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RocksDBTestUtils.java
similarity index 95%
rename from schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/RocksDBTestUtils.java
rename to schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RocksDBTestUtils.java
index 85fd8da08f..5d08db2bde 100644
--- a/schema-engine-rocksdb/src/test/org.apache.iotdb.db/metadata/rocksdb/RocksDBTestUtils.java
+++ b/schema-engine-rocksdb/src/test/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RocksDBTestUtils.java
@@ -18,7 +18,7 @@
*/
package org.apache.iotdb.db.metadata.schemaregion.rocksdb;
-import org.apache.iotdb.db.qp.physical.sys.CreateTimeSeriesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateTimeSeriesPlan;
import java.util.Collection;
import java.util.List;
@@ -30,7 +30,7 @@ public class RocksDBTestUtils {
public static void printBenchmarkBaseline(
List storageGroups,
- List<List<CreateTimeSeriesPlan>> timeSeriesSet,
+ List<List<ICreateTimeSeriesPlan>> timeSeriesSet,
Collection queryTsSet,
Collection innerPathSet) {
System.out.println(
diff --git a/schema-engine-tag/src/main/java/org/apache/iotdb/db/metadata/tagSchemaRegion/TagSchemaRegion.java b/schema-engine-tag/src/main/java/org/apache/iotdb/db/metadata/tagSchemaRegion/TagSchemaRegion.java
index 58b0ecc945..89cba91f27 100644
--- a/schema-engine-tag/src/main/java/org/apache/iotdb/db/metadata/tagSchemaRegion/TagSchemaRegion.java
+++ b/schema-engine-tag/src/main/java/org/apache/iotdb/db/metadata/tagSchemaRegion/TagSchemaRegion.java
@@ -38,7 +38,11 @@ import org.apache.iotdb.db.metadata.idtable.entry.IDeviceID;
import org.apache.iotdb.db.metadata.idtable.entry.SHA256DeviceID;
import org.apache.iotdb.db.metadata.idtable.entry.SchemaEntry;
import org.apache.iotdb.db.metadata.mnode.IStorageGroupMNode;
-import org.apache.iotdb.db.metadata.plan.schemaregion.impl.SchemaRegionPlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.write.SchemaRegionWritePlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowDevicesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowTimeSeriesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowDevicesResult;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowTimeSeriesResult;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IActivateTemplateInClusterPlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateAlignedTimeSeriesPlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateTimeSeriesPlan;
@@ -53,11 +57,6 @@ import org.apache.iotdb.db.metadata.tagSchemaRegion.utils.MeasurementPathUtils;
import org.apache.iotdb.db.metadata.tagSchemaRegion.utils.PathTagConverterUtils;
import org.apache.iotdb.db.metadata.tagSchemaRegion.utils.ShowTimeSeriesResultUtils;
import org.apache.iotdb.db.metadata.template.Template;
-import org.apache.iotdb.db.qp.physical.sys.ShowDevicesPlan;
-import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
-import org.apache.iotdb.db.query.context.QueryContext;
-import org.apache.iotdb.db.query.dataset.ShowDevicesResult;
-import org.apache.iotdb.db.query.dataset.ShowTimeSeriesResult;
import org.apache.iotdb.external.api.ISeriesNumerMonitor;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
@@ -204,7 +203,7 @@ public class TagSchemaRegion implements ISchemaRegion {
Map<String, String> props)
throws MetadataException {
createTimeseries(
- SchemaRegionPlanFactory.getCreateTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
path, dataType, encoding, compressor, props, null, null, null),
0);
}
@@ -217,7 +216,7 @@ public class TagSchemaRegion implements ISchemaRegion {
List<CompressionType> compressors)
throws MetadataException {
createAlignedTimeSeries(
- SchemaRegionPlanFactory.getCreateAlignedTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getCreateAlignedTimeSeriesPlan(
prefixPath, measurements, dataTypes, encodings, compressors, null, null, null));
}
@@ -479,7 +478,7 @@ public class TagSchemaRegion implements ISchemaRegion {
}
@Override
- public Pair<List<ShowDevicesResult>, Integer> getMatchedDevices(ShowDevicesPlan plan)
+ public Pair<List<ShowDevicesResult>, Integer> getMatchedDevices(IShowDevicesPlan plan)
throws MetadataException {
throw new UnsupportedOperationException("getMatchedDevices");
}
@@ -535,8 +534,8 @@ public class TagSchemaRegion implements ISchemaRegion {
}
@Override
- public Pair<List<ShowTimeSeriesResult>, Integer> showTimeseries(
- ShowTimeSeriesPlan plan, QueryContext context) throws MetadataException {
+ public Pair<List<ShowTimeSeriesResult>, Integer> showTimeseries(IShowTimeSeriesPlan plan)
+ throws MetadataException {
List<ShowTimeSeriesResult> ShowTimeSeriesResults = new ArrayList<>();
Pair<List<ShowTimeSeriesResult>, Integer> result = new Pair<>(ShowTimeSeriesResults, 0);
String path = plan.getPath().getFullPath();
diff --git a/schema-engine-tag/src/main/java/org/apache/iotdb/db/metadata/tagSchemaRegion/utils/ShowTimeSeriesResultUtils.java b/schema-engine-tag/src/main/java/org/apache/iotdb/db/metadata/tagSchemaRegion/utils/ShowTimeSeriesResultUtils.java
index d91413e81a..fd759bbf36 100644
--- a/schema-engine-tag/src/main/java/org/apache/iotdb/db/metadata/tagSchemaRegion/utils/ShowTimeSeriesResultUtils.java
+++ b/schema-engine-tag/src/main/java/org/apache/iotdb/db/metadata/tagSchemaRegion/utils/ShowTimeSeriesResultUtils.java
@@ -19,7 +19,7 @@
package org.apache.iotdb.db.metadata.tagSchemaRegion.utils;
import org.apache.iotdb.db.metadata.idtable.entry.SchemaEntry;
-import org.apache.iotdb.db.query.dataset.ShowTimeSeriesResult;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowTimeSeriesResult;
import java.util.HashMap;
@@ -44,7 +44,6 @@ public class ShowTimeSeriesResultUtils {
schemaEntry.getTSDataType(),
schemaEntry.getTSEncoding(),
schemaEntry.getCompressionType(),
- Long.MAX_VALUE,
new HashMap<>(),
new HashMap<>(),
null,
@@ -68,7 +67,6 @@ public class ShowTimeSeriesResultUtils {
schemaEntry.getTSDataType(),
schemaEntry.getTSEncoding(),
schemaEntry.getCompressionType(),
- Long.MAX_VALUE,
new HashMap<>(),
new HashMap<>(),
null,
diff --git a/schema-engine-tag/src/test/java/org/apache/iotdb/db/metadata/tagSchemaRegion/TagSchemaRegionTest.java b/schema-engine-tag/src/test/java/org/apache/iotdb/db/metadata/tagSchemaRegion/TagSchemaRegionTest.java
index a79e476921..8a95d53c09 100644
--- a/schema-engine-tag/src/test/java/org/apache/iotdb/db/metadata/tagSchemaRegion/TagSchemaRegionTest.java
+++ b/schema-engine-tag/src/test/java/org/apache/iotdb/db/metadata/tagSchemaRegion/TagSchemaRegionTest.java
@@ -23,7 +23,7 @@ import org.apache.iotdb.commons.path.MeasurementPath;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.utils.FileUtils;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.metadata.plan.schemaregion.impl.SchemaRegionPlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.write.SchemaRegionWritePlanFactory;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateAlignedTimeSeriesPlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateTimeSeriesPlan;
import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
@@ -174,7 +174,7 @@ public class TagSchemaRegionTest {
private void createTimeseries() throws Exception {
ICreateTimeSeriesPlan createTimeSeriesPlan =
- SchemaRegionPlanFactory.getCreateTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath(storageGroup + ".tag1.a.tag2.b.s0"),
TSDataType.valueOf("INT32"),
TSEncoding.valueOf("RLE"),
@@ -185,7 +185,7 @@ public class TagSchemaRegionTest {
null);
tagSchemaRegion.createTimeseries(createTimeSeriesPlan, 0);
createTimeSeriesPlan =
- SchemaRegionPlanFactory.getCreateTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath(storageGroup + ".tag1.a.tag2.c.s0"),
TSDataType.valueOf("INT32"),
TSEncoding.valueOf("RLE"),
@@ -200,7 +200,7 @@ public class TagSchemaRegionTest {
private void createAlignedTimeseries() throws Exception {
ICreateAlignedTimeSeriesPlan plan =
- SchemaRegionPlanFactory.getCreateAlignedTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getCreateAlignedTimeSeriesPlan(
new PartialPath(storageGroup + ".tag1.a.tag3.b"),
Arrays.asList("s1", "s2", "s3"),
Arrays.asList(
@@ -215,7 +215,7 @@ public class TagSchemaRegionTest {
null);
tagSchemaRegion.createAlignedTimeSeries(plan);
plan =
- SchemaRegionPlanFactory.getCreateAlignedTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getCreateAlignedTimeSeriesPlan(
new PartialPath(storageGroup + ".tag1.x.tag2.y"),
Arrays.asList("s1", "s2", "s3"),
Arrays.asList(
diff --git a/schema-engine-tag/src/test/java/org/apache/iotdb/db/metadata/tagSchemaRegion/idtable/IDTableWithDeviceIDListImplTest.java b/schema-engine-tag/src/test/java/org/apache/iotdb/db/metadata/tagSchemaRegion/idtable/IDTableWithDeviceIDListImplTest.java
index 2e9b4ccde8..529d9464c1 100644
--- a/schema-engine-tag/src/test/java/org/apache/iotdb/db/metadata/tagSchemaRegion/idtable/IDTableWithDeviceIDListImplTest.java
+++ b/schema-engine-tag/src/test/java/org/apache/iotdb/db/metadata/tagSchemaRegion/idtable/IDTableWithDeviceIDListImplTest.java
@@ -22,8 +22,9 @@ import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.utils.FileUtils;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.exception.StorageEngineException;
-import org.apache.iotdb.db.qp.physical.sys.CreateAlignedTimeSeriesPlan;
-import org.apache.iotdb.db.qp.physical.sys.CreateTimeSeriesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.write.SchemaRegionWritePlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateAlignedTimeSeriesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateTimeSeriesPlan;
import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
@@ -153,8 +154,8 @@ public class IDTableWithDeviceIDListImplTest {
}
private void createAlignedTimeseries() throws Exception {
- CreateAlignedTimeSeriesPlan plan =
- new CreateAlignedTimeSeriesPlan(
+ ICreateAlignedTimeSeriesPlan plan =
+ SchemaRegionWritePlanFactory.getCreateAlignedTimeSeriesPlan(
new PartialPath(storageGroup + ".d1.aligned_device"),
Arrays.asList("s1", "s2", "s3"),
Arrays.asList(
@@ -169,7 +170,7 @@ public class IDTableWithDeviceIDListImplTest {
null);
idTableWithDeviceIDList.createAlignedTimeseries(plan);
plan =
- new CreateAlignedTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getCreateAlignedTimeSeriesPlan(
new PartialPath(storageGroup + ".d2.aligned_device"),
Arrays.asList("s1", "s2", "s3"),
Arrays.asList(
@@ -186,8 +187,8 @@ public class IDTableWithDeviceIDListImplTest {
}
private void createTimeseries() throws Exception {
- CreateTimeSeriesPlan createTimeSeriesPlan =
- new CreateTimeSeriesPlan(
+ ICreateTimeSeriesPlan createTimeSeriesPlan =
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath(storageGroup + ".d1.s0"),
TSDataType.valueOf("INT32"),
TSEncoding.valueOf("RLE"),
@@ -198,7 +199,7 @@ public class IDTableWithDeviceIDListImplTest {
null);
idTableWithDeviceIDList.createTimeseries(createTimeSeriesPlan);
createTimeSeriesPlan =
- new CreateTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath(storageGroup + ".d2.s0"),
TSDataType.valueOf("INT32"),
TSEncoding.valueOf("RLE"),
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/LocalSchemaProcessor.java b/server/src/main/java/org/apache/iotdb/db/metadata/LocalSchemaProcessor.java
index ebb250b877..a9f51938a4 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/LocalSchemaProcessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/LocalSchemaProcessor.java
@@ -29,10 +29,9 @@ import org.apache.iotdb.db.exception.metadata.MeasurementAlreadyExistException;
import org.apache.iotdb.db.exception.metadata.PathAlreadyExistException;
import org.apache.iotdb.db.exception.metadata.PathNotExistException;
import org.apache.iotdb.db.localconfignode.LocalConfigNode;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.write.SchemaRegionWritePlanFactory;
import org.apache.iotdb.db.metadata.schemaregion.ISchemaRegion;
import org.apache.iotdb.db.metadata.schemaregion.SchemaEngine;
-import org.apache.iotdb.db.qp.physical.sys.CreateAlignedTimeSeriesPlan;
-import org.apache.iotdb.db.qp.physical.sys.CreateTimeSeriesPlan;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
@@ -154,7 +153,7 @@ public class LocalSchemaProcessor {
try {
getBelongedSchemaRegionWithAutoCreate(path)
.createTimeseries(
- new CreateTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
path, dataType, encoding, compressor, props, null, null, null),
-1);
} catch (PathAlreadyExistException
@@ -178,7 +177,7 @@ public class LocalSchemaProcessor {
throws MetadataException {
getBelongedSchemaRegionWithAutoCreate(prefixPath)
.createAlignedTimeSeries(
- new CreateAlignedTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getCreateAlignedTimeSeriesPlan(
prefixPath, measurements, dataTypes, encodings, compressors, null, null, null));
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/IMTreeBelowSG.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/IMTreeBelowSG.java
index de4968eefb..e9a459fb5b 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/IMTreeBelowSG.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/IMTreeBelowSG.java
@@ -25,11 +25,10 @@ import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.metadata.mnode.IEntityMNode;
import org.apache.iotdb.db.metadata.mnode.IMNode;
import org.apache.iotdb.db.metadata.mnode.IMeasurementMNode;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowDevicesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowTimeSeriesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowDevicesResult;
import org.apache.iotdb.db.metadata.template.Template;
-import org.apache.iotdb.db.qp.physical.sys.ShowDevicesPlan;
-import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
-import org.apache.iotdb.db.query.context.QueryContext;
-import org.apache.iotdb.db.query.dataset.ShowDevicesResult;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
@@ -149,7 +148,7 @@ public interface IMTreeBelowSG {
Set<PartialPath> getDevices(PartialPath pathPattern, boolean isPrefixMatch)
throws MetadataException;
- Pair<List<ShowDevicesResult>, Integer> getDevices(ShowDevicesPlan plan) throws MetadataException;
+ Pair<List<ShowDevicesResult>, Integer> getDevices(IShowDevicesPlan plan) throws MetadataException;
Set<PartialPath> getDevicesByTimeseries(PartialPath timeseries) throws MetadataException;
@@ -206,8 +205,8 @@ public interface IMTreeBelowSG {
* <p>result: [name, alias, database, dataType, encoding, compression, offset] and the current
* offset
*/
- Pair<List<Pair<PartialPath, String[]>>, Integer> getAllMeasurementSchema(
- ShowTimeSeriesPlan plan, QueryContext queryContext) throws MetadataException;
+ Pair<List<Pair<PartialPath, String[]>>, Integer> getAllMeasurementSchema(IShowTimeSeriesPlan plan)
+ throws MetadataException;
/**
* Get child node path in the next level of the given path pattern.
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGCachedImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGCachedImpl.java
index a3632a38b8..aaf7c8310e 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGCachedImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGCachedImpl.java
@@ -50,13 +50,12 @@ import org.apache.iotdb.db.metadata.mtree.traverser.counter.EntityCounter;
import org.apache.iotdb.db.metadata.mtree.traverser.counter.MNodeLevelCounter;
import org.apache.iotdb.db.metadata.mtree.traverser.counter.MeasurementCounter;
import org.apache.iotdb.db.metadata.mtree.traverser.counter.MeasurementGroupByLevelCounter;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowDevicesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowTimeSeriesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowDevicesResult;
import org.apache.iotdb.db.metadata.template.Template;
import org.apache.iotdb.db.metadata.utils.MetaFormatUtils;
import org.apache.iotdb.db.metadata.utils.MetaUtils;
-import org.apache.iotdb.db.qp.physical.sys.ShowDevicesPlan;
-import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
-import org.apache.iotdb.db.query.context.QueryContext;
-import org.apache.iotdb.db.query.dataset.ShowDevicesResult;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
@@ -68,7 +67,6 @@ import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
@@ -79,9 +77,7 @@ import java.util.Set;
import java.util.TreeSet;
import java.util.function.Consumer;
import java.util.function.Function;
-import java.util.stream.Stream;
-import static java.util.stream.Collectors.toList;
import static org.apache.iotdb.commons.conf.IoTDBConstant.ONE_LEVEL_PATH_WILDCARD;
/**
@@ -727,7 +723,7 @@ public class MTreeBelowSGCachedImpl implements IMTreeBelowSG {
}
@Override
- public Pair<List<ShowDevicesResult>, Integer> getDevices(ShowDevicesPlan plan)
+ public Pair<List<ShowDevicesResult>, Integer> getDevices(IShowDevicesPlan plan)
throws MetadataException {
List<ShowDevicesResult> res = new ArrayList<>();
EntityCollector<List<ShowDevicesResult>> collector =
@@ -840,19 +836,10 @@ public class MTreeBelowSGCachedImpl implements IMTreeBelowSG {
*/
@Override
public Pair<List<Pair<PartialPath, String[]>>, Integer> getAllMeasurementSchema(
- ShowTimeSeriesPlan plan, QueryContext queryContext) throws MetadataException {
- /*
- There are two conditions and 4 cases.
- 1. isOrderByHeat = false && limit = 0 : just collect all results from each database
- 2. isOrderByHeat = false && limit != 0 : the offset and limit should be updated by each sg after traverse, thus the final result will satisfy the constraints of limit and offset
- 3. isOrderByHeat = true && limit = 0 : collect all result from each database and then sort
- 4. isOrderByHeat = true && limit != 0 : collect top limit result from each sg and then sort them and collect the top limit results start from offset.
- The offset must be 0, since each sg should collect top limit results. The current limit is the sum of origin limit and offset when passed into metadata module
- */
-
- boolean needLast = plan.isOrderByHeat();
- int limit = needLast ? 0 : plan.getLimit();
- int offset = needLast ? 0 : plan.getOffset();
+ IShowTimeSeriesPlan plan) throws MetadataException {
+
+ int limit = plan.getLimit();
+ int offset = plan.getOffset();
MeasurementCollector<List<Pair<PartialPath, String[]>>> collector =
new MeasurementCollector<List<Pair<PartialPath, String[]>>>(
@@ -862,16 +849,15 @@ public class MTreeBelowSGCachedImpl implements IMTreeBelowSG {
IMeasurementSchema measurementSchema = node.getSchema();
Pair<String, String> deadbandInfo =
MetaUtils.parseDeadbandInfo(measurementSchema.getProps());
- String[] tsRow = new String[9];
+ String[] tsRow = new String[8];
tsRow[0] = node.getAlias();
tsRow[1] = getStorageGroupNodeInTraversePath(node).getFullPath();
tsRow[2] = measurementSchema.getType().toString();
tsRow[3] = measurementSchema.getEncodingType().toString();
tsRow[4] = measurementSchema.getCompressor().toString();
tsRow[5] = String.valueOf(node.getOffset());
- tsRow[6] = null;
- tsRow[7] = deadbandInfo.left;
- tsRow[8] = deadbandInfo.right;
+ tsRow[6] = deadbandInfo.left;
+ tsRow[7] = deadbandInfo.right;
Pair<PartialPath, String[]> temp = new Pair<>(getCurrentPartialPath(node), tsRow);
resultSet.add(temp);
}
@@ -883,26 +869,6 @@ public class MTreeBelowSGCachedImpl implements IMTreeBelowSG {
List<Pair<PartialPath, String[]>> result = collector.getResult();
- if (needLast) {
- Stream<Pair<PartialPath, String[]>> stream = result.stream();
-
- limit = plan.getLimit();
- offset = plan.getOffset();
-
- stream =
- stream.sorted(
- Comparator.comparingLong(
- (Pair<PartialPath, String[]> p) -> Long.parseLong(p.right[6]))
- .reversed()
- .thenComparing((Pair<PartialPath, String[]> p) -> p.left));
-
- if (limit != 0) {
- stream = stream.skip(offset).limit(limit);
- }
-
- result = stream.collect(toList());
- }
-
return new Pair<>(result, collector.getCurOffset() + 1);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGMemoryImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGMemoryImpl.java
index 8e863513fe..e288ce1ac8 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGMemoryImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGMemoryImpl.java
@@ -50,13 +50,12 @@ import org.apache.iotdb.db.metadata.mtree.traverser.counter.EntityCounter;
import org.apache.iotdb.db.metadata.mtree.traverser.counter.MNodeLevelCounter;
import org.apache.iotdb.db.metadata.mtree.traverser.counter.MeasurementCounter;
import org.apache.iotdb.db.metadata.mtree.traverser.counter.MeasurementGroupByLevelCounter;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowDevicesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowTimeSeriesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowDevicesResult;
import org.apache.iotdb.db.metadata.template.Template;
import org.apache.iotdb.db.metadata.utils.MetaFormatUtils;
import org.apache.iotdb.db.metadata.utils.MetaUtils;
-import org.apache.iotdb.db.qp.physical.sys.ShowDevicesPlan;
-import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
-import org.apache.iotdb.db.query.context.QueryContext;
-import org.apache.iotdb.db.query.dataset.ShowDevicesResult;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
@@ -68,7 +67,6 @@ import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
@@ -79,9 +77,7 @@ import java.util.Set;
import java.util.TreeSet;
import java.util.function.Consumer;
import java.util.function.Function;
-import java.util.stream.Stream;
-import static java.util.stream.Collectors.toList;
import static org.apache.iotdb.commons.conf.IoTDBConstant.ONE_LEVEL_PATH_WILDCARD;
/**
@@ -638,7 +634,7 @@ public class MTreeBelowSGMemoryImpl implements IMTreeBelowSG {
}
@Override
- public Pair<List<ShowDevicesResult>, Integer> getDevices(ShowDevicesPlan plan)
+ public Pair<List<ShowDevicesResult>, Integer> getDevices(IShowDevicesPlan plan)
throws MetadataException {
List<ShowDevicesResult> res = new ArrayList<>();
EntityCollector<List<ShowDevicesResult>> collector =
@@ -777,19 +773,9 @@ public class MTreeBelowSGMemoryImpl implements IMTreeBelowSG {
*/
@Override
public Pair<List<Pair<PartialPath, String[]>>, Integer> getAllMeasurementSchema(
- ShowTimeSeriesPlan plan, QueryContext queryContext) throws MetadataException {
- /*
- There are two conditions and 4 cases.
- 1. isOrderByHeat = false && limit = 0 : just collect all results from each database
- 2. isOrderByHeat = false && limit != 0 : the offset and limit should be updated by each sg after traverse, thus the final result will satisfy the constraints of limit and offset
- 3. isOrderByHeat = true && limit = 0 : collect all result from each database and then sort
- 4. isOrderByHeat = true && limit != 0 : collect top limit result from each sg and then sort them and collect the top limit results start from offset.
- The offset must be 0, since each sg should collect top limit results. The current limit is the sum of origin limit and offset when passed into metadata module
- */
-
- boolean needLast = plan.isOrderByHeat();
- int limit = needLast ? 0 : plan.getLimit();
- int offset = needLast ? 0 : plan.getOffset();
+ IShowTimeSeriesPlan plan) throws MetadataException {
+ int limit = plan.getLimit();
+ int offset = plan.getOffset();
MeasurementCollector<List<Pair<PartialPath, String[]>>> collector =
new MeasurementCollector<List<Pair<PartialPath, String[]>>>(
@@ -799,16 +785,15 @@ public class MTreeBelowSGMemoryImpl implements IMTreeBelowSG {
IMeasurementSchema measurementSchema = node.getSchema();
Pair<String, String> deadbandInfo =
MetaUtils.parseDeadbandInfo(measurementSchema.getProps());
- String[] tsRow = new String[9];
+ String[] tsRow = new String[8];
tsRow[0] = node.getAlias();
tsRow[1] = getStorageGroupNodeInTraversePath(node).getFullPath();
tsRow[2] = measurementSchema.getType().toString();
tsRow[3] = measurementSchema.getEncodingType().toString();
tsRow[4] = measurementSchema.getCompressor().toString();
tsRow[5] = String.valueOf(node.getOffset());
- tsRow[6] = null;
- tsRow[7] = deadbandInfo.left;
- tsRow[8] = deadbandInfo.right;
+ tsRow[6] = deadbandInfo.left;
+ tsRow[7] = deadbandInfo.right;
Pair<PartialPath, String[]> temp = new Pair<>(getCurrentPartialPath(node), tsRow);
resultSet.add(temp);
}
@@ -820,26 +805,6 @@ public class MTreeBelowSGMemoryImpl implements IMTreeBelowSG {
List<Pair<PartialPath, String[]>> result = collector.getResult();
- if (needLast) {
- Stream<Pair<PartialPath, String[]>> stream = result.stream();
-
- limit = plan.getLimit();
- offset = plan.getOffset();
-
- stream =
- stream.sorted(
- Comparator.comparingLong(
- (Pair<PartialPath, String[]> p) -> Long.parseLong(p.right[6]))
- .reversed()
- .thenComparing((Pair<PartialPath, String[]> p) -> p.left));
-
- if (limit != 0) {
- stream = stream.skip(offset).limit(limit);
- }
-
- result = stream.collect(toList());
- }
-
return new Pair<>(result, collector.getCurOffset() + 1);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/SchemaRegionPlanType.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/SchemaRegionPlanType.java
index 94e9af187e..e6f0601304 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/SchemaRegionPlanType.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/SchemaRegionPlanType.java
@@ -43,9 +43,12 @@ public enum SchemaRegionPlanType {
PRE_DEACTIVATE_TEMPLATE((byte) 0),
ROLLBACK_PRE_DEACTIVATE_TEMPLATE((byte) 1),
- DEACTIVATE_TEMPLATE((byte) 2);
+ DEACTIVATE_TEMPLATE((byte) 2),
- public static final int MAX_NUM = Byte.MAX_VALUE;
+ // query plan doesn't need any ser/deSer, thus use one type to represent all
+ READ_SCHEMA(Byte.MAX_VALUE);
+
+ public static final int MAX_NUM = Byte.MAX_VALUE + 1;
private static final SchemaRegionPlanType[] PLAN_TYPE_TABLE = new SchemaRegionPlanType[MAX_NUM];
static {
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/SchemaRegionPlanDeserializer.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/SchemaRegionPlanDeserializer.java
index f25f59d2de..4fdcd33187 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/SchemaRegionPlanDeserializer.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/SchemaRegionPlanDeserializer.java
@@ -26,6 +26,7 @@ import org.apache.iotdb.db.metadata.logfile.IDeserializer;
import org.apache.iotdb.db.metadata.plan.schemaregion.ISchemaRegionPlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.SchemaRegionPlanType;
import org.apache.iotdb.db.metadata.plan.schemaregion.SchemaRegionPlanVisitor;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.write.SchemaRegionWritePlanFactory;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IActivateTemplateInClusterPlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IAutoCreateDeviceMNodePlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IChangeAliasPlan;
@@ -64,7 +65,7 @@ public class SchemaRegionPlanDeserializer implements IDeserializer<ISchemaRegion
@Override
public ISchemaRegionPlan deserialize(ByteBuffer byteBuffer) {
ISchemaRegionPlan schemaRegionPlan =
- SchemaRegionPlanFactory.getEmptyPlan(SchemaRegionPlanType.deserialize(byteBuffer));
+ SchemaRegionWritePlanFactory.getEmptyPlan(SchemaRegionPlanType.deserialize(byteBuffer));
return schemaRegionPlan.accept(new SchemaRegionPlanDeserializeVisitor(), byteBuffer);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/read/AbstractShowSchemaPlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/read/AbstractShowSchemaPlanImpl.java
new file mode 100644
index 0000000000..bb1d2960f6
--- /dev/null
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/read/AbstractShowSchemaPlanImpl.java
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.read;
+
+import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowSchemaPlan;
+
+import java.util.Objects;
+
+public abstract class AbstractShowSchemaPlanImpl implements IShowSchemaPlan {
+
+ protected final PartialPath path;
+ protected final int limit;
+ protected final int offset;
+ protected final boolean isPrefixMatch;
+
+ public AbstractShowSchemaPlanImpl(PartialPath path) {
+ this.path = path;
+ this.limit = 0;
+ this.offset = 0;
+ this.isPrefixMatch = false;
+ }
+
+ AbstractShowSchemaPlanImpl(PartialPath path, int limit, int offset, boolean isPrefixMatch) {
+ this.path = path;
+ this.limit = limit;
+ this.offset = offset;
+ this.isPrefixMatch = isPrefixMatch;
+ }
+
+ @Override
+ public PartialPath getPath() {
+ return path;
+ }
+
+ @Override
+ public int getLimit() {
+ return limit;
+ }
+
+ @Override
+ public int getOffset() {
+ return offset;
+ }
+
+ @Override
+ public boolean isPrefixMatch() {
+ return isPrefixMatch;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ AbstractShowSchemaPlanImpl that = (AbstractShowSchemaPlanImpl) o;
+ return limit == that.limit
+ && offset == that.offset
+ && isPrefixMatch == that.isPrefixMatch
+ && Objects.equals(path, that.path);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(path, limit, offset, isPrefixMatch);
+ }
+}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/read/SchemaRegionReadPlanFactory.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/read/SchemaRegionReadPlanFactory.java
new file mode 100644
index 0000000000..341b54de40
--- /dev/null
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/read/SchemaRegionReadPlanFactory.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.read;
+
+import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowDevicesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowTimeSeriesPlan;
+import org.apache.iotdb.db.metadata.template.Template;
+
+import java.util.Collections;
+import java.util.Map;
+
+public class SchemaRegionReadPlanFactory {
+
+ private SchemaRegionReadPlanFactory() {}
+
+ public static IShowDevicesPlan getShowDevicesPlan(PartialPath path) {
+ return new ShowDevicesPlanImpl(path, 0, 0, false, false);
+ }
+
+ public static IShowDevicesPlan getShowDevicesPlan(
+ PartialPath path, int limit, int offset, boolean hasSgCol, boolean isPrefixMatch) {
+ return new ShowDevicesPlanImpl(path, limit, offset, hasSgCol, isPrefixMatch);
+ }
+
+ public static IShowTimeSeriesPlan getShowTimeSeriesPlan(PartialPath path) {
+ return new ShowTimeSeriesPlanImpl(path, Collections.emptyMap(), false, null, null, 0, 0, false);
+ }
+
+ public static IShowTimeSeriesPlan getShowTimeSeriesPlan(PartialPath path, int limit, int offset) {
+ return new ShowTimeSeriesPlanImpl(
+ path, Collections.emptyMap(), false, null, null, limit, offset, false);
+ }
+
+ public static IShowTimeSeriesPlan getShowTimeSeriesPlan(
+ PartialPath path, Map<Integer, Template> relatedTemplate) {
+ return new ShowTimeSeriesPlanImpl(path, relatedTemplate, false, null, null, 0, 0, false);
+ }
+
+ public static IShowTimeSeriesPlan getShowTimeSeriesPlan(
+ PartialPath path, boolean isContains, String key, String value) {
+ return new ShowTimeSeriesPlanImpl(
+ path, Collections.emptyMap(), isContains, key, value, 0, 0, false);
+ }
+
+ public static IShowTimeSeriesPlan getShowTimeSeriesPlan(
+ PartialPath path,
+ Map<Integer, Template> relatedTemplate,
+ boolean isContains,
+ String key,
+ String value,
+ int limit,
+ int offset,
+ boolean isPrefixMatch) {
+ return new ShowTimeSeriesPlanImpl(
+ path, relatedTemplate, isContains, key, value, limit, offset, isPrefixMatch);
+ }
+}
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowDevicesPlan.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/read/ShowDevicesPlanImpl.java
similarity index 58%
rename from server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowDevicesPlan.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/read/ShowDevicesPlanImpl.java
index cd1c25ccce..742be6ce70 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowDevicesPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/read/ShowDevicesPlanImpl.java
@@ -15,41 +15,27 @@
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
+ *
*/
-package org.apache.iotdb.db.qp.physical.sys;
+
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.read;
import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowDevicesPlan;
-import java.io.DataOutputStream;
-import java.io.IOException;
import java.util.Objects;
-public class ShowDevicesPlan extends ShowPlan {
-
- public ShowDevicesPlan() {
- super(ShowContentType.DEVICES);
- }
-
- private boolean hasSgCol;
+public class ShowDevicesPlanImpl extends AbstractShowSchemaPlanImpl implements IShowDevicesPlan {
- public ShowDevicesPlan(PartialPath path) {
- super(ShowContentType.DEVICES, path);
- }
+ private final boolean hasSgCol;
- public ShowDevicesPlan(PartialPath path, int limit, int offset, boolean hasSgCol) {
- super(ShowContentType.DEVICES, path, limit, offset);
+ ShowDevicesPlanImpl(
+ PartialPath path, int limit, int offset, boolean hasSgCol, boolean isPrefixMatch) {
+ super(path, limit, offset, isPrefixMatch);
this.hasSgCol = hasSgCol;
}
@Override
- public void serialize(DataOutputStream outputStream) throws IOException {
- outputStream.write(PhysicalPlanType.SHOW_DEVICES.ordinal());
- putString(outputStream, path.getFullPath());
- outputStream.writeInt(limit);
- outputStream.writeInt(offset);
- outputStream.writeLong(index);
- }
-
public boolean hasSgCol() {
return hasSgCol;
}
@@ -58,12 +44,13 @@ public class ShowDevicesPlan extends ShowPlan {
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
- ShowDevicesPlan that = (ShowDevicesPlan) o;
+ if (!super.equals(o)) return false;
+ ShowDevicesPlanImpl that = (ShowDevicesPlanImpl) o;
return hasSgCol == that.hasSgCol;
}
@Override
public int hashCode() {
- return Objects.hash(hasSgCol);
+ return Objects.hash(super.hashCode(), hasSgCol);
}
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/read/ShowTimeSeriesPlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/read/ShowTimeSeriesPlanImpl.java
new file mode 100644
index 0000000000..0906b83b34
--- /dev/null
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/read/ShowTimeSeriesPlanImpl.java
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.read;
+
+import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowTimeSeriesPlan;
+import org.apache.iotdb.db.metadata.template.Template;
+
+import java.util.Map;
+import java.util.Objects;
+
+public class ShowTimeSeriesPlanImpl extends AbstractShowSchemaPlanImpl
+ implements IShowTimeSeriesPlan {
+
+ private final Map<Integer, Template> relatedTemplate;
+
+ private final boolean isContains;
+ private final String key;
+ private final String value;
+
+ ShowTimeSeriesPlanImpl(
+ PartialPath path,
+ Map<Integer, Template> relatedTemplate,
+ boolean isContains,
+ String key,
+ String value,
+ int limit,
+ int offset,
+ boolean isPrefixMatch) {
+ super(path, limit, offset, isPrefixMatch);
+ this.relatedTemplate = relatedTemplate;
+ this.isContains = isContains;
+ this.key = key;
+ this.value = value;
+ }
+
+ @Override
+ public boolean isContains() {
+ return isContains;
+ }
+
+ @Override
+ public String getKey() {
+ return key;
+ }
+
+ @Override
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public Map<Integer, Template> getRelatedTemplate() {
+ return relatedTemplate;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ if (!super.equals(o)) return false;
+ ShowTimeSeriesPlanImpl that = (ShowTimeSeriesPlanImpl) o;
+ return isContains == that.isContains
+ && Objects.equals(relatedTemplate, that.relatedTemplate)
+ && Objects.equals(key, that.key)
+ && Objects.equals(value, that.value);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(super.hashCode(), relatedTemplate, isContains, key, value);
+ }
+}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/ActivateTemplateInClusterPlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/ActivateTemplateInClusterPlanImpl.java
similarity index 93%
rename from server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/ActivateTemplateInClusterPlanImpl.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/ActivateTemplateInClusterPlanImpl.java
index cb6b60232b..986c84d592 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/ActivateTemplateInClusterPlanImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/ActivateTemplateInClusterPlanImpl.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.metadata.plan.schemaregion.impl;
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.write;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IActivateTemplateInClusterPlan;
@@ -29,9 +29,9 @@ public class ActivateTemplateInClusterPlanImpl implements IActivateTemplateInClu
private int templateId;
private boolean isAligned;
- public ActivateTemplateInClusterPlanImpl() {}
+ ActivateTemplateInClusterPlanImpl() {}
- public ActivateTemplateInClusterPlanImpl(
+ ActivateTemplateInClusterPlanImpl(
PartialPath activatePath, int templateSetLevel, int templateId) {
this.activatePath = activatePath;
this.templateSetLevel = templateSetLevel;
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/AutoCreateDeviceMNodePlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/AutoCreateDeviceMNodePlanImpl.java
similarity index 88%
rename from server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/AutoCreateDeviceMNodePlanImpl.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/AutoCreateDeviceMNodePlanImpl.java
index 2f1edf2598..1de570e3c6 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/AutoCreateDeviceMNodePlanImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/AutoCreateDeviceMNodePlanImpl.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.metadata.plan.schemaregion.impl;
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.write;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IAutoCreateDeviceMNodePlan;
@@ -26,9 +26,9 @@ public class AutoCreateDeviceMNodePlanImpl implements IAutoCreateDeviceMNodePlan
private PartialPath path;
- public AutoCreateDeviceMNodePlanImpl() {}
+ AutoCreateDeviceMNodePlanImpl() {}
- public AutoCreateDeviceMNodePlanImpl(PartialPath path) {
+ AutoCreateDeviceMNodePlanImpl(PartialPath path) {
this.path = path;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/ChangeAliasPlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/ChangeAliasPlanImpl.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/ChangeAliasPlanImpl.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/ChangeAliasPlanImpl.java
index efc3378cd6..0c4bad3808 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/ChangeAliasPlanImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/ChangeAliasPlanImpl.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.metadata.plan.schemaregion.impl;
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.write;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IChangeAliasPlan;
@@ -26,9 +26,9 @@ public class ChangeAliasPlanImpl implements IChangeAliasPlan {
private PartialPath path;
private String alias;
- public ChangeAliasPlanImpl() {}
+ ChangeAliasPlanImpl() {}
- public ChangeAliasPlanImpl(PartialPath path, String alias) {
+ ChangeAliasPlanImpl(PartialPath path, String alias) {
this.path = path;
this.alias = alias;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/ChangeTagOffsetPlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/ChangeTagOffsetPlanImpl.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/ChangeTagOffsetPlanImpl.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/ChangeTagOffsetPlanImpl.java
index fa3d8345eb..f93384689c 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/ChangeTagOffsetPlanImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/ChangeTagOffsetPlanImpl.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.metadata.plan.schemaregion.impl;
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.write;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IChangeTagOffsetPlan;
@@ -26,9 +26,9 @@ public class ChangeTagOffsetPlanImpl implements IChangeTagOffsetPlan {
private PartialPath path;
private long offset;
- public ChangeTagOffsetPlanImpl() {}
+ ChangeTagOffsetPlanImpl() {}
- public ChangeTagOffsetPlanImpl(PartialPath partialPath, long offset) {
+ ChangeTagOffsetPlanImpl(PartialPath partialPath, long offset) {
path = partialPath;
this.offset = offset;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/CreateAlignedTimeSeriesPlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/CreateAlignedTimeSeriesPlanImpl.java
similarity index 96%
rename from server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/CreateAlignedTimeSeriesPlanImpl.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/CreateAlignedTimeSeriesPlanImpl.java
index e2119f19ed..6a9aae804a 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/CreateAlignedTimeSeriesPlanImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/CreateAlignedTimeSeriesPlanImpl.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.metadata.plan.schemaregion.impl;
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.write;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateAlignedTimeSeriesPlan;
@@ -43,9 +43,9 @@ public class CreateAlignedTimeSeriesPlanImpl implements ICreateAlignedTimeSeries
private List<Map<String, String>> attributesList;
private List<Long> tagOffsets = null;
- public CreateAlignedTimeSeriesPlanImpl() {}
+ CreateAlignedTimeSeriesPlanImpl() {}
- public CreateAlignedTimeSeriesPlanImpl(
+ CreateAlignedTimeSeriesPlanImpl(
PartialPath devicePath,
List<String> measurements,
List<TSDataType> dataTypes,
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/CreateTimeSeriesPlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/CreateTimeSeriesPlanImpl.java
similarity index 96%
rename from server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/CreateTimeSeriesPlanImpl.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/CreateTimeSeriesPlanImpl.java
index ed349d86ed..d07effae56 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/CreateTimeSeriesPlanImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/CreateTimeSeriesPlanImpl.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.iotdb.db.metadata.plan.schemaregion.impl;
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.write;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateTimeSeriesPlan;
@@ -40,9 +40,9 @@ public class CreateTimeSeriesPlanImpl implements ICreateTimeSeriesPlan {
private Map<String, String> attributes = null;
private long tagOffset = -1;
- public CreateTimeSeriesPlanImpl() {}
+ CreateTimeSeriesPlanImpl() {}
- public CreateTimeSeriesPlanImpl(
+ CreateTimeSeriesPlanImpl(
PartialPath path,
TSDataType dataType,
TSEncoding encoding,
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/DeactivateTemplatePlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/DeactivateTemplatePlanImpl.java
similarity index 88%
rename from server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/DeactivateTemplatePlanImpl.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/DeactivateTemplatePlanImpl.java
index d0859e2b78..1a27ca280a 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/DeactivateTemplatePlanImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/DeactivateTemplatePlanImpl.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.metadata.plan.schemaregion.impl;
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.write;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IDeactivateTemplatePlan;
@@ -29,9 +29,9 @@ public class DeactivateTemplatePlanImpl implements IDeactivateTemplatePlan {
private Map<PartialPath, List<Integer>> templateSetInfo;
- public DeactivateTemplatePlanImpl() {}
+ DeactivateTemplatePlanImpl() {}
- public DeactivateTemplatePlanImpl(Map<PartialPath, List<Integer>> templateSetInfo) {
+ DeactivateTemplatePlanImpl(Map<PartialPath, List<Integer>> templateSetInfo) {
this.templateSetInfo = templateSetInfo;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/DeleteTimeSeriesPlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/DeleteTimeSeriesPlanImpl.java
similarity index 88%
rename from server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/DeleteTimeSeriesPlanImpl.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/DeleteTimeSeriesPlanImpl.java
index 92682e4c36..6d60f852a1 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/DeleteTimeSeriesPlanImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/DeleteTimeSeriesPlanImpl.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.iotdb.db.metadata.plan.schemaregion.impl;
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.write;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IDeleteTimeSeriesPlan;
@@ -27,9 +27,9 @@ public class DeleteTimeSeriesPlanImpl implements IDeleteTimeSeriesPlan {
private List<PartialPath> deletePathList;
- public DeleteTimeSeriesPlanImpl() {}
+ DeleteTimeSeriesPlanImpl() {}
- public DeleteTimeSeriesPlanImpl(List<PartialPath> deletePathList) {
+ DeleteTimeSeriesPlanImpl(List<PartialPath> deletePathList) {
this.deletePathList = deletePathList;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/PreDeactivateTemplatePlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/PreDeactivateTemplatePlanImpl.java
similarity index 88%
rename from server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/PreDeactivateTemplatePlanImpl.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/PreDeactivateTemplatePlanImpl.java
index 9d240cfbff..7a491a9f64 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/PreDeactivateTemplatePlanImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/PreDeactivateTemplatePlanImpl.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.metadata.plan.schemaregion.impl;
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.write;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IPreDeactivateTemplatePlan;
@@ -29,9 +29,9 @@ public class PreDeactivateTemplatePlanImpl implements IPreDeactivateTemplatePlan
private Map<PartialPath, List<Integer>> templateSetInfo;
- public PreDeactivateTemplatePlanImpl() {}
+ PreDeactivateTemplatePlanImpl() {}
- public PreDeactivateTemplatePlanImpl(Map<PartialPath, List<Integer>> templateSetInfo) {
+ PreDeactivateTemplatePlanImpl(Map<PartialPath, List<Integer>> templateSetInfo) {
this.templateSetInfo = templateSetInfo;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/PreDeleteTimeSeriesPlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/PreDeleteTimeSeriesPlanImpl.java
similarity index 88%
copy from server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/PreDeleteTimeSeriesPlanImpl.java
copy to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/PreDeleteTimeSeriesPlanImpl.java
index 47f44a7740..852419365d 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/PreDeleteTimeSeriesPlanImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/PreDeleteTimeSeriesPlanImpl.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.metadata.plan.schemaregion.impl;
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.write;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IPreDeleteTimeSeriesPlan;
@@ -26,9 +26,9 @@ public class PreDeleteTimeSeriesPlanImpl implements IPreDeleteTimeSeriesPlan {
private PartialPath path;
- public PreDeleteTimeSeriesPlanImpl() {}
+ PreDeleteTimeSeriesPlanImpl() {}
- public PreDeleteTimeSeriesPlanImpl(PartialPath path) {
+ PreDeleteTimeSeriesPlanImpl(PartialPath path) {
this.path = path;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/RollbackPreDeactivateTemplatePlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/RollbackPreDeactivateTemplatePlanImpl.java
similarity index 87%
rename from server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/RollbackPreDeactivateTemplatePlanImpl.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/RollbackPreDeactivateTemplatePlanImpl.java
index c9f33d73e0..589d285308 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/RollbackPreDeactivateTemplatePlanImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/RollbackPreDeactivateTemplatePlanImpl.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.metadata.plan.schemaregion.impl;
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.write;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IRollbackPreDeactivateTemplatePlan;
@@ -29,9 +29,9 @@ public class RollbackPreDeactivateTemplatePlanImpl implements IRollbackPreDeacti
private Map<PartialPath, List<Integer>> templateSetInfo;
- public RollbackPreDeactivateTemplatePlanImpl() {}
+ RollbackPreDeactivateTemplatePlanImpl() {}
- public RollbackPreDeactivateTemplatePlanImpl(Map<PartialPath, List<Integer>> templateSetInfo) {
+ RollbackPreDeactivateTemplatePlanImpl(Map<PartialPath, List<Integer>> templateSetInfo) {
this.templateSetInfo = templateSetInfo;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/RollbackPreDeleteTimeSeriesPlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/RollbackPreDeleteTimeSeriesPlanImpl.java
similarity index 87%
copy from server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/RollbackPreDeleteTimeSeriesPlanImpl.java
copy to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/RollbackPreDeleteTimeSeriesPlanImpl.java
index 8f21e9fe8a..86872c586c 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/RollbackPreDeleteTimeSeriesPlanImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/RollbackPreDeleteTimeSeriesPlanImpl.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.metadata.plan.schemaregion.impl;
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.write;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IRollbackPreDeleteTimeSeriesPlan;
@@ -26,9 +26,9 @@ public class RollbackPreDeleteTimeSeriesPlanImpl implements IRollbackPreDeleteTi
private PartialPath path;
- public RollbackPreDeleteTimeSeriesPlanImpl() {}
+ RollbackPreDeleteTimeSeriesPlanImpl() {}
- public RollbackPreDeleteTimeSeriesPlanImpl(PartialPath path) {
+ RollbackPreDeleteTimeSeriesPlanImpl(PartialPath path) {
this.path = path;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/SchemaRegionPlanFactory.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/SchemaRegionWritePlanFactory.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/SchemaRegionPlanFactory.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/SchemaRegionWritePlanFactory.java
index 792ed3ffb8..fa90207d79 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/SchemaRegionPlanFactory.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/write/SchemaRegionWritePlanFactory.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.metadata.plan.schemaregion.impl;
+package org.apache.iotdb.db.metadata.plan.schemaregion.impl.write;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.metadata.plan.schemaregion.ISchemaRegionPlan;
@@ -41,9 +41,9 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
import java.util.List;
import java.util.Map;
-public class SchemaRegionPlanFactory {
+public class SchemaRegionWritePlanFactory {
- private SchemaRegionPlanFactory() {}
+ private SchemaRegionWritePlanFactory() {}
public static ISchemaRegionPlan getEmptyPlan(SchemaRegionPlanType planType) {
switch (planType) {
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/PreDeleteTimeSeriesPlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/read/IShowDevicesPlan.java
similarity index 58%
copy from server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/PreDeleteTimeSeriesPlanImpl.java
copy to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/read/IShowDevicesPlan.java
index 47f44a7740..81907f470d 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/PreDeleteTimeSeriesPlanImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/read/IShowDevicesPlan.java
@@ -15,30 +15,12 @@
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
+ *
*/
-package org.apache.iotdb.db.metadata.plan.schemaregion.impl;
-
-import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.metadata.plan.schemaregion.write.IPreDeleteTimeSeriesPlan;
-
-public class PreDeleteTimeSeriesPlanImpl implements IPreDeleteTimeSeriesPlan {
-
- private PartialPath path;
-
- public PreDeleteTimeSeriesPlanImpl() {}
-
- public PreDeleteTimeSeriesPlanImpl(PartialPath path) {
- this.path = path;
- }
+package org.apache.iotdb.db.metadata.plan.schemaregion.read;
- @Override
- public PartialPath getPath() {
- return path;
- }
+public interface IShowDevicesPlan extends IShowSchemaPlan {
- @Override
- public void setPath(PartialPath path) {
- this.path = path;
- }
+ boolean hasSgCol();
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/RollbackPreDeleteTimeSeriesPlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/read/IShowSchemaPlan.java
similarity index 57%
rename from server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/RollbackPreDeleteTimeSeriesPlanImpl.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/read/IShowSchemaPlan.java
index 8f21e9fe8a..fb28d91af7 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/RollbackPreDeleteTimeSeriesPlanImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/read/IShowSchemaPlan.java
@@ -15,30 +15,33 @@
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
+ *
*/
-package org.apache.iotdb.db.metadata.plan.schemaregion.impl;
+package org.apache.iotdb.db.metadata.plan.schemaregion.read;
import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.metadata.plan.schemaregion.write.IRollbackPreDeleteTimeSeriesPlan;
-
-public class RollbackPreDeleteTimeSeriesPlanImpl implements IRollbackPreDeleteTimeSeriesPlan {
-
- private PartialPath path;
+import org.apache.iotdb.db.metadata.plan.schemaregion.ISchemaRegionPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.SchemaRegionPlanType;
+import org.apache.iotdb.db.metadata.plan.schemaregion.SchemaRegionPlanVisitor;
- public RollbackPreDeleteTimeSeriesPlanImpl() {}
-
- public RollbackPreDeleteTimeSeriesPlanImpl(PartialPath path) {
- this.path = path;
- }
+public interface IShowSchemaPlan extends ISchemaRegionPlan {
@Override
- public PartialPath getPath() {
- return path;
+ default SchemaRegionPlanType getPlanType() {
+ return SchemaRegionPlanType.READ_SCHEMA;
}
@Override
- public void setPath(PartialPath path) {
- this.path = path;
+ default <R, C> R accept(SchemaRegionPlanVisitor<R, C> visitor, C context) {
+ return visitor.visitSchemaRegionPlan(this, context);
}
+
+ PartialPath getPath();
+
+ int getLimit();
+
+ int getOffset();
+
+ boolean isPrefixMatch();
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/PreDeleteTimeSeriesPlanImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/read/IShowTimeSeriesPlan.java
similarity index 58%
rename from server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/PreDeleteTimeSeriesPlanImpl.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/read/IShowTimeSeriesPlan.java
index 47f44a7740..88326ef070 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/PreDeleteTimeSeriesPlanImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/read/IShowTimeSeriesPlan.java
@@ -15,30 +15,22 @@
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
+ *
*/
-package org.apache.iotdb.db.metadata.plan.schemaregion.impl;
+package org.apache.iotdb.db.metadata.plan.schemaregion.read;
-import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.metadata.plan.schemaregion.write.IPreDeleteTimeSeriesPlan;
+import org.apache.iotdb.db.metadata.template.Template;
-public class PreDeleteTimeSeriesPlanImpl implements IPreDeleteTimeSeriesPlan {
+import java.util.Map;
- private PartialPath path;
+public interface IShowTimeSeriesPlan extends IShowSchemaPlan {
- public PreDeleteTimeSeriesPlanImpl() {}
+ boolean isContains();
- public PreDeleteTimeSeriesPlanImpl(PartialPath path) {
- this.path = path;
- }
+ String getKey();
- @Override
- public PartialPath getPath() {
- return path;
- }
+ String getValue();
- @Override
- public void setPath(PartialPath path) {
- this.path = path;
- }
+ Map<Integer, Template> getRelatedTemplate();
}
diff --git a/server/src/main/java/org/apache/iotdb/db/query/dataset/ShowDevicesResult.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/result/ShowDevicesResult.java
similarity index 64%
rename from server/src/main/java/org/apache/iotdb/db/query/dataset/ShowDevicesResult.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/result/ShowDevicesResult.java
index 70ca5895ac..9755bfee2f 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/dataset/ShowDevicesResult.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/result/ShowDevicesResult.java
@@ -16,16 +16,11 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.iotdb.db.query.dataset;
+package org.apache.iotdb.db.metadata.plan.schemaregion.result;
-import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.nio.ByteBuffer;
import java.util.Objects;
-public class ShowDevicesResult extends ShowResult {
+public class ShowDevicesResult extends ShowSchemaResult {
private boolean isAligned;
public ShowDevicesResult() {
@@ -42,20 +37,6 @@ public class ShowDevicesResult extends ShowResult {
this.isAligned = isAligned;
}
- public void serialize(OutputStream outputStream) throws IOException {
- ReadWriteIOUtils.write(name, outputStream);
- ReadWriteIOUtils.write(isAligned, outputStream);
- ReadWriteIOUtils.write(sgName, outputStream);
- }
-
- public static ShowDevicesResult deserialize(ByteBuffer buffer) {
- ShowDevicesResult result = new ShowDevicesResult();
- result.name = ReadWriteIOUtils.readString(buffer);
- result.isAligned = ReadWriteIOUtils.readBool(buffer);
- result.sgName = ReadWriteIOUtils.readString(buffer);
- return result;
- }
-
public boolean isAligned() {
return isAligned;
}
@@ -64,12 +45,12 @@ public class ShowDevicesResult extends ShowResult {
public String toString() {
return "ShowDevicesResult{"
+ " name='"
- + name
+ + path
+ '\''
+ ", isAligned = "
+ isAligned
+ ", sgName='"
- + sgName
+ + database
+ '\''
+ "}";
}
@@ -83,13 +64,13 @@ public class ShowDevicesResult extends ShowResult {
return false;
}
ShowDevicesResult result = (ShowDevicesResult) o;
- return Objects.equals(name, result.name)
+ return Objects.equals(path, result.path)
&& isAligned == result.isAligned
- && Objects.equals(sgName, result.sgName);
+ && Objects.equals(database, result.database);
}
@Override
public int hashCode() {
- return Objects.hash(name, isAligned, sgName);
+ return Objects.hash(path, isAligned, database);
}
}
diff --git a/server/src/main/java/org/apache/iotdb/db/query/dataset/ShowResult.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/result/ShowSchemaResult.java
similarity index 58%
rename from server/src/main/java/org/apache/iotdb/db/query/dataset/ShowResult.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/result/ShowSchemaResult.java
index c0b1b0b00a..6731ea7e13 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/dataset/ShowResult.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/result/ShowSchemaResult.java
@@ -16,34 +16,34 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.iotdb.db.query.dataset;
+package org.apache.iotdb.db.metadata.plan.schemaregion.result;
-public class ShowResult implements Comparable<ShowResult> {
+public abstract class ShowSchemaResult implements Comparable<ShowSchemaResult> {
- protected String name;
- protected String sgName;
+ protected String path;
+ protected String database;
- public ShowResult(String name, String sgName) {
- this.name = name;
- this.sgName = sgName;
+ public ShowSchemaResult(String path, String database) {
+ this.path = path;
+ this.database = database;
}
- public ShowResult(String name) {
- this.name = name;
+ public ShowSchemaResult(String path) {
+ this.path = path;
}
- public ShowResult() {}
+ public ShowSchemaResult() {}
- public String getName() {
- return name;
+ public String getPath() {
+ return path;
}
- public String getSgName() {
- return sgName;
+ public String getDatabase() {
+ return database;
}
@Override
- public int compareTo(ShowResult o) {
- return this.getName().compareTo(o.getName());
+ public int compareTo(ShowSchemaResult o) {
+ return this.getPath().compareTo(o.getPath());
}
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/result/ShowTimeSeriesResult.java b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/result/ShowTimeSeriesResult.java
new file mode 100644
index 0000000000..bff1f5290e
--- /dev/null
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/result/ShowTimeSeriesResult.java
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iotdb.db.metadata.plan.schemaregion.result;
+
+import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
+
+import java.util.Map;
+import java.util.Objects;
+
+public class ShowTimeSeriesResult extends ShowSchemaResult {
+
+ private String alias;
+ private TSDataType dataType;
+ private TSEncoding encoding;
+ private CompressionType compressor;
+ private Map<String, String> tags;
+ private Map<String, String> attributes;
+
+ private String deadband;
+ private String deadbandParameters;
+
+ public ShowTimeSeriesResult(
+ String name,
+ String alias,
+ String sgName,
+ TSDataType dataType,
+ TSEncoding encoding,
+ CompressionType compressor,
+ Map<String, String> tags,
+ Map<String, String> attributes,
+ String deadband,
+ String deadbandParameters) {
+ super(name, sgName);
+ this.alias = alias;
+ this.dataType = dataType;
+ this.encoding = encoding;
+ this.compressor = compressor;
+ this.tags = tags;
+ this.attributes = attributes;
+ this.deadband = deadband;
+ this.deadbandParameters = deadbandParameters;
+ }
+
+ public ShowTimeSeriesResult() {
+ super();
+ }
+
+ public String getAlias() {
+ return alias;
+ }
+
+ public TSDataType getDataType() {
+ return dataType;
+ }
+
+ public TSEncoding getEncoding() {
+ return encoding;
+ }
+
+ public CompressionType getCompressor() {
+ return compressor;
+ }
+
+ public Map<String, String> getTag() {
+ return tags;
+ }
+
+ public Map<String, String> getAttribute() {
+ return attributes;
+ }
+
+ public String getDeadband() {
+ return deadband;
+ }
+
+ public String getDeadbandParameters() {
+ return deadbandParameters;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ShowTimeSeriesResult result = (ShowTimeSeriesResult) o;
+ return Objects.equals(path, result.path);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(path);
+ }
+}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/ISchemaRegion.java b/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/ISchemaRegion.java
index a11e8356f2..1a76438657 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/ISchemaRegion.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/ISchemaRegion.java
@@ -25,6 +25,10 @@ import org.apache.iotdb.commons.exception.MetadataException;
import org.apache.iotdb.commons.path.MeasurementPath;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.path.PathPatternTree;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowDevicesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowTimeSeriesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowDevicesResult;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowTimeSeriesResult;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IActivateTemplateInClusterPlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateAlignedTimeSeriesPlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateTimeSeriesPlan;
@@ -32,11 +36,6 @@ import org.apache.iotdb.db.metadata.plan.schemaregion.write.IDeactivateTemplateP
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IPreDeactivateTemplatePlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IRollbackPreDeactivateTemplatePlan;
import org.apache.iotdb.db.metadata.template.Template;
-import org.apache.iotdb.db.qp.physical.sys.ShowDevicesPlan;
-import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
-import org.apache.iotdb.db.query.context.QueryContext;
-import org.apache.iotdb.db.query.dataset.ShowDevicesResult;
-import org.apache.iotdb.db.query.dataset.ShowTimeSeriesResult;
import org.apache.iotdb.tsfile.utils.Pair;
import java.io.File;
@@ -266,7 +265,7 @@ public interface ISchemaRegion {
* @param plan ShowDevicesPlan which contains the path pattern and restriction params.
* @return ShowDevicesResult and the current offset of this region after traverse.
*/
- Pair<List<ShowDevicesResult>, Integer> getMatchedDevices(ShowDevicesPlan plan)
+ Pair<List<ShowDevicesResult>, Integer> getMatchedDevices(IShowDevicesPlan plan)
throws MetadataException;
// endregion
@@ -305,11 +304,10 @@ public interface ISchemaRegion {
* Show timeseries.
*
* @param plan
- * @param context
* @throws MetadataException
*/
- Pair<List<ShowTimeSeriesResult>, Integer> showTimeseries(
- ShowTimeSeriesPlan plan, QueryContext context) throws MetadataException;
+ Pair<List<ShowTimeSeriesResult>, Integer> showTimeseries(IShowTimeSeriesPlan plan)
+ throws MetadataException;
// endregion
// endregion
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaRegionMemoryImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaRegionMemoryImpl.java
index 52c3ad704c..353b25e46d 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaRegionMemoryImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaRegionMemoryImpl.java
@@ -48,8 +48,12 @@ import org.apache.iotdb.db.metadata.mtree.MTreeBelowSGMemoryImpl;
import org.apache.iotdb.db.metadata.plan.schemaregion.ISchemaRegionPlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.SchemaRegionPlanVisitor;
import org.apache.iotdb.db.metadata.plan.schemaregion.impl.SchemaRegionPlanDeserializer;
-import org.apache.iotdb.db.metadata.plan.schemaregion.impl.SchemaRegionPlanFactory;
import org.apache.iotdb.db.metadata.plan.schemaregion.impl.SchemaRegionPlanSerializer;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.write.SchemaRegionWritePlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowDevicesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowTimeSeriesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowDevicesResult;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowTimeSeriesResult;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IActivateTemplateInClusterPlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IAutoCreateDeviceMNodePlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IChangeAliasPlan;
@@ -67,11 +71,6 @@ import org.apache.iotdb.db.metadata.rescon.SchemaStatisticsManager;
import org.apache.iotdb.db.metadata.tag.TagManager;
import org.apache.iotdb.db.metadata.template.Template;
import org.apache.iotdb.db.metadata.utils.MetaUtils;
-import org.apache.iotdb.db.qp.physical.sys.ShowDevicesPlan;
-import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
-import org.apache.iotdb.db.query.context.QueryContext;
-import org.apache.iotdb.db.query.dataset.ShowDevicesResult;
-import org.apache.iotdb.db.query.dataset.ShowTimeSeriesResult;
import org.apache.iotdb.db.utils.SchemaUtils;
import org.apache.iotdb.external.api.ISeriesNumerMonitor;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
@@ -87,16 +86,13 @@ import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.stream.Stream;
-import static java.util.stream.Collectors.toList;
import static org.apache.iotdb.tsfile.common.constant.TsFileConstant.PATH_SEPARATOR;
/**
@@ -745,7 +741,7 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
measurementMNode.setPreDeleted(true);
try {
writeToMLog(
- SchemaRegionPlanFactory.getPreDeleteTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getPreDeleteTimeSeriesPlan(
measurementMNode.getPartialPath()));
} catch (IOException e) {
throw new MetadataException(e);
@@ -767,7 +763,7 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
measurementMNode.setPreDeleted(false);
try {
writeToMLog(
- SchemaRegionPlanFactory.getRollbackPreDeleteTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getRollbackPreDeleteTimeSeriesPlan(
measurementMNode.getPartialPath()));
} catch (IOException e) {
throw new MetadataException(e);
@@ -795,7 +791,8 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
try {
deleteSingleTimeseriesInBlackList(path);
writeToMLog(
- SchemaRegionPlanFactory.getDeleteTimeSeriesPlan(Collections.singletonList(path)));
+ SchemaRegionWritePlanFactory.getDeleteTimeSeriesPlan(
+ Collections.singletonList(path)));
} catch (IOException e) {
throw new MetadataException(e);
}
@@ -836,7 +833,8 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
private void deleteSingleTimeseriesInternal(PartialPath p) throws MetadataException, IOException {
deleteOneTimeseriesUpdateStatistics(p);
if (!isRecovering) {
- writeToMLog(SchemaRegionPlanFactory.getDeleteTimeSeriesPlan(Collections.singletonList(p)));
+ writeToMLog(
+ SchemaRegionWritePlanFactory.getDeleteTimeSeriesPlan(Collections.singletonList(p)));
}
}
@@ -872,7 +870,7 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
private IMNode getDeviceNodeWithAutoCreate(PartialPath path)
throws IOException, MetadataException {
IMNode node = mtree.getDeviceNodeWithAutoCreating(path);
- writeToMLog(SchemaRegionPlanFactory.getAutoCreateDeviceMNodePlan(node.getPartialPath()));
+ writeToMLog(SchemaRegionWritePlanFactory.getAutoCreateDeviceMNodePlan(node.getPartialPath()));
return node;
}
@@ -992,7 +990,7 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
* @return ShowDevicesResult and the current offset of this region after traverse.
*/
@Override
- public Pair<List<ShowDevicesResult>, Integer> getMatchedDevices(ShowDevicesPlan plan)
+ public Pair<List<ShowDevicesResult>, Integer> getMatchedDevices(IShowDevicesPlan plan)
throws MetadataException {
return mtree.getDevices(plan);
}
@@ -1049,29 +1047,28 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
}
@Override
- public Pair<List<ShowTimeSeriesResult>, Integer> showTimeseries(
- ShowTimeSeriesPlan plan, QueryContext context) throws MetadataException {
+ public Pair<List<ShowTimeSeriesResult>, Integer> showTimeseries(IShowTimeSeriesPlan plan)
+ throws MetadataException {
// show timeseries with index
if (plan.getKey() != null && plan.getValue() != null) {
- return showTimeseriesWithIndex(plan, context);
+ return showTimeseriesWithIndex(plan);
} else {
- return showTimeseriesWithoutIndex(plan, context);
+ return showTimeseriesWithoutIndex(plan);
}
}
@SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity warning
private Pair<List<ShowTimeSeriesResult>, Integer> showTimeseriesWithIndex(
- ShowTimeSeriesPlan plan, QueryContext context) throws MetadataException {
+ IShowTimeSeriesPlan plan) throws MetadataException {
- List<IMeasurementMNode> allMatchedNodes = tagManager.getMatchedTimeseriesInIndex(plan, context);
+ List<IMeasurementMNode> allMatchedNodes = tagManager.getMatchedTimeseriesInIndex(plan);
List<ShowTimeSeriesResult> res = new LinkedList<>();
PartialPath pathPattern = plan.getPath();
- boolean needLast = plan.isOrderByHeat();
int curOffset = -1;
int count = 0;
- int limit = needLast ? 0 : plan.getLimit();
- int offset = needLast ? 0 : plan.getOffset();
+ int limit = plan.getLimit();
+ int offset = plan.getOffset();
for (IMeasurementMNode leaf : allMatchedNodes) {
if (plan.isPrefixMatch()
@@ -1097,7 +1094,6 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
measurementSchema.getType(),
measurementSchema.getEncodingType(),
measurementSchema.getCompressor(),
- 0,
tagAndAttributePair.left,
tagAndAttributePair.right,
deadbandInfo.left,
@@ -1112,25 +1108,6 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
}
}
- if (needLast) {
- Stream<ShowTimeSeriesResult> stream = res.stream();
-
- limit = plan.getLimit();
- offset = plan.getOffset();
-
- stream =
- stream.sorted(
- Comparator.comparingLong(ShowTimeSeriesResult::getLastTime)
- .reversed()
- .thenComparing(ShowTimeSeriesResult::getName));
-
- if (limit != 0) {
- stream = stream.skip(offset).limit(limit);
- }
-
- res = stream.collect(toList());
- }
-
return new Pair<>(res, curOffset + 1);
}
@@ -1140,9 +1117,8 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
* @param plan show time series query plan
*/
private Pair<List<ShowTimeSeriesResult>, Integer> showTimeseriesWithoutIndex(
- ShowTimeSeriesPlan plan, QueryContext context) throws MetadataException {
- Pair<List<Pair<PartialPath, String[]>>, Integer> ans =
- mtree.getAllMeasurementSchema(plan, context);
+ IShowTimeSeriesPlan plan) throws MetadataException {
+ Pair<List<Pair<PartialPath, String[]>>, Integer> ans = mtree.getAllMeasurementSchema(plan);
List<ShowTimeSeriesResult> res = new LinkedList<>();
for (Pair<PartialPath, String[]> ansString : ans.left) {
long tagFileOffset = Long.parseLong(ansString.right[5]);
@@ -1160,11 +1136,10 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
TSDataType.valueOf(ansString.right[2]),
TSEncoding.valueOf(ansString.right[3]),
CompressionType.valueOf(ansString.right[4]),
- ansString.right[6] != null ? Long.parseLong(ansString.right[6]) : 0,
tagAndAttributePair.left,
tagAndAttributePair.right,
- ansString.right[7],
- ansString.right[8]));
+ ansString.right[6],
+ ansString.right[7]));
} catch (IOException e) {
throw new MetadataException(
"Something went wrong while deserialize tag info of " + ansString.left.getFullPath(),
@@ -1229,7 +1204,7 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
mtree.setAlias(leafMNode, alias);
try {
- writeToMLog(SchemaRegionPlanFactory.getChangeAliasPlan(path, alias));
+ writeToMLog(SchemaRegionWritePlanFactory.getChangeAliasPlan(path, alias));
} catch (IOException e) {
throw new MetadataException(e);
}
@@ -1264,7 +1239,7 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
// no tag or attribute, we need to add a new record in log
if (leafMNode.getOffset() < 0) {
long offset = tagManager.writeTagFile(tagsMap, attributesMap);
- writeToMLog(SchemaRegionPlanFactory.getChangeTagOffsetPlan(fullPath, offset));
+ writeToMLog(SchemaRegionWritePlanFactory.getChangeTagOffsetPlan(fullPath, offset));
leafMNode.setOffset(offset);
// update inverted Index map
if (tagsMap != null && !tagsMap.isEmpty()) {
@@ -1290,7 +1265,7 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
mtree.setAlias(leafMNode, alias);
// persist to WAL
- writeToMLog(SchemaRegionPlanFactory.getChangeAliasPlan(fullPath, alias));
+ writeToMLog(SchemaRegionWritePlanFactory.getChangeAliasPlan(fullPath, alias));
}
}
@@ -1309,7 +1284,7 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
// no tag or attribute, we need to add a new record in log
if (leafMNode.getOffset() < 0) {
long offset = tagManager.writeTagFile(Collections.emptyMap(), attributesMap);
- writeToMLog(SchemaRegionPlanFactory.getChangeTagOffsetPlan(fullPath, offset));
+ writeToMLog(SchemaRegionWritePlanFactory.getChangeTagOffsetPlan(fullPath, offset));
leafMNode.setOffset(offset);
return;
}
@@ -1331,7 +1306,7 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
// no tag or attribute, we need to add a new record in log
if (leafMNode.getOffset() < 0) {
long offset = tagManager.writeTagFile(tagsMap, Collections.emptyMap());
- writeToMLog(SchemaRegionPlanFactory.getChangeTagOffsetPlan(fullPath, offset));
+ writeToMLog(SchemaRegionWritePlanFactory.getChangeTagOffsetPlan(fullPath, offset));
leafMNode.setOffset(offset);
// update inverted Index map
tagManager.addIndex(tagsMap, leafMNode);
@@ -1451,7 +1426,8 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
entityMNode.preDeactivateTemplate();
preDeactivateNum++;
try {
- writeToMLog(SchemaRegionPlanFactory.getPreDeactivateTemplatePlan(subTemplateSetInfo));
+ writeToMLog(
+ SchemaRegionWritePlanFactory.getPreDeactivateTemplatePlan(subTemplateSetInfo));
} catch (IOException e) {
throw new MetadataException(e);
}
@@ -1477,7 +1453,8 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
entityMNode.rollbackPreDeactivateTemplate();
try {
writeToMLog(
- SchemaRegionPlanFactory.getRollbackPreDeactivateTemplatePlan(subTemplateSetInfo));
+ SchemaRegionWritePlanFactory.getRollbackPreDeactivateTemplatePlan(
+ subTemplateSetInfo));
} catch (IOException e) {
throw new MetadataException(e);
}
@@ -1498,7 +1475,7 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
entityMNode.deactivateTemplate();
mtree.deleteEmptyInternalMNodeAndReturnEmptyStorageGroup(entityMNode);
try {
- writeToMLog(SchemaRegionPlanFactory.getDeactivateTemplatePlan(subTemplateSetInfo));
+ writeToMLog(SchemaRegionWritePlanFactory.getDeactivateTemplatePlan(subTemplateSetInfo));
} catch (IOException e) {
throw new MetadataException(e);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaRegionSchemaFileImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaRegionSchemaFileImpl.java
index 7ce9971c04..8fc8cf6795 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaRegionSchemaFileImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaRegionSchemaFileImpl.java
@@ -46,8 +46,12 @@ import org.apache.iotdb.db.metadata.mtree.MTreeBelowSGCachedImpl;
import org.apache.iotdb.db.metadata.plan.schemaregion.ISchemaRegionPlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.SchemaRegionPlanVisitor;
import org.apache.iotdb.db.metadata.plan.schemaregion.impl.SchemaRegionPlanDeserializer;
-import org.apache.iotdb.db.metadata.plan.schemaregion.impl.SchemaRegionPlanFactory;
import org.apache.iotdb.db.metadata.plan.schemaregion.impl.SchemaRegionPlanSerializer;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.write.SchemaRegionWritePlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowDevicesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowTimeSeriesPlan;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowDevicesResult;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowTimeSeriesResult;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IActivateTemplateInClusterPlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IAutoCreateDeviceMNodePlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.IChangeAliasPlan;
@@ -63,11 +67,6 @@ import org.apache.iotdb.db.metadata.rescon.SchemaStatisticsManager;
import org.apache.iotdb.db.metadata.tag.TagManager;
import org.apache.iotdb.db.metadata.template.Template;
import org.apache.iotdb.db.metadata.utils.MetaUtils;
-import org.apache.iotdb.db.qp.physical.sys.ShowDevicesPlan;
-import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
-import org.apache.iotdb.db.query.context.QueryContext;
-import org.apache.iotdb.db.query.dataset.ShowDevicesResult;
-import org.apache.iotdb.db.query.dataset.ShowTimeSeriesResult;
import org.apache.iotdb.db.utils.SchemaUtils;
import org.apache.iotdb.external.api.ISeriesNumerMonitor;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
@@ -83,15 +82,12 @@ import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.stream.Stream;
-import static java.util.stream.Collectors.toList;
import static org.apache.iotdb.tsfile.common.constant.TsFileConstant.PATH_SEPARATOR;
/**
@@ -627,7 +623,7 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
throws MetadataException {
try {
createTimeseries(
- SchemaRegionPlanFactory.getCreateTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
path, dataType, encoding, compressor, props, null, null, null));
} catch (PathAlreadyExistException | AliasAlreadyExistException e) {
if (logger.isDebugEnabled()) {
@@ -647,7 +643,7 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
List<CompressionType> compressors)
throws MetadataException {
createAlignedTimeSeries(
- SchemaRegionPlanFactory.getCreateAlignedTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getCreateAlignedTimeSeriesPlan(
prefixPath, measurements, dataTypes, encodings, compressors, null, null, null));
}
@@ -833,7 +829,7 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
measurementMNode.setPreDeleted(true);
mtree.updateMNode(measurementMNode);
writeToMLog(
- SchemaRegionPlanFactory.getPreDeleteTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getPreDeleteTimeSeriesPlan(
measurementMNode.getPartialPath()));
} catch (IOException e) {
throw new MetadataException(e);
@@ -856,7 +852,7 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
measurementMNode.setPreDeleted(false);
mtree.updateMNode(measurementMNode);
writeToMLog(
- SchemaRegionPlanFactory.getRollbackPreDeleteTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getRollbackPreDeleteTimeSeriesPlan(
measurementMNode.getPartialPath()));
} catch (IOException e) {
throw new MetadataException(e);
@@ -886,7 +882,8 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
try {
deleteSingleTimeseriesInBlackList(path);
writeToMLog(
- SchemaRegionPlanFactory.getDeleteTimeSeriesPlan(Collections.singletonList(path)));
+ SchemaRegionWritePlanFactory.getDeleteTimeSeriesPlan(
+ Collections.singletonList(path)));
} catch (IOException e) {
throw new MetadataException(e);
}
@@ -922,7 +919,8 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
private void deleteSingleTimeseriesInternal(PartialPath p) throws MetadataException, IOException {
deleteOneTimeseriesUpdateStatistics(p);
if (!isRecovering) {
- writeToMLog(SchemaRegionPlanFactory.getDeleteTimeSeriesPlan(Collections.singletonList(p)));
+ writeToMLog(
+ SchemaRegionWritePlanFactory.getDeleteTimeSeriesPlan(Collections.singletonList(p)));
}
}
@@ -958,7 +956,7 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
private IMNode getDeviceNodeWithAutoCreate(PartialPath path)
throws IOException, MetadataException {
IMNode node = mtree.getDeviceNodeWithAutoCreating(path);
- writeToMLog(SchemaRegionPlanFactory.getAutoCreateDeviceMNodePlan(node.getPartialPath()));
+ writeToMLog(SchemaRegionWritePlanFactory.getAutoCreateDeviceMNodePlan(node.getPartialPath()));
return node;
}
@@ -1079,7 +1077,7 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
* @return ShowDevicesResult and the current offset of this region after traverse.
*/
@Override
- public Pair<List<ShowDevicesResult>, Integer> getMatchedDevices(ShowDevicesPlan plan)
+ public Pair<List<ShowDevicesResult>, Integer> getMatchedDevices(IShowDevicesPlan plan)
throws MetadataException {
return mtree.getDevices(plan);
}
@@ -1124,29 +1122,28 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
}
@Override
- public Pair<List<ShowTimeSeriesResult>, Integer> showTimeseries(
- ShowTimeSeriesPlan plan, QueryContext context) throws MetadataException {
+ public Pair<List<ShowTimeSeriesResult>, Integer> showTimeseries(IShowTimeSeriesPlan plan)
+ throws MetadataException {
// show timeseries with index
if (plan.getKey() != null && plan.getValue() != null) {
- return showTimeseriesWithIndex(plan, context);
+ return showTimeseriesWithIndex(plan);
} else {
- return showTimeseriesWithoutIndex(plan, context);
+ return showTimeseriesWithoutIndex(plan);
}
}
@SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity warning
private Pair<List<ShowTimeSeriesResult>, Integer> showTimeseriesWithIndex(
- ShowTimeSeriesPlan plan, QueryContext context) throws MetadataException {
+ IShowTimeSeriesPlan plan) throws MetadataException {
- List<IMeasurementMNode> allMatchedNodes = tagManager.getMatchedTimeseriesInIndex(plan, context);
+ List<IMeasurementMNode> allMatchedNodes = tagManager.getMatchedTimeseriesInIndex(plan);
List<ShowTimeSeriesResult> res = new LinkedList<>();
PartialPath pathPattern = plan.getPath();
- boolean needLast = plan.isOrderByHeat();
int curOffset = -1;
int count = 0;
- int limit = needLast ? 0 : plan.getLimit();
- int offset = needLast ? 0 : plan.getOffset();
+ int limit = plan.getLimit();
+ int offset = plan.getOffset();
for (IMeasurementMNode leaf : allMatchedNodes) {
if (plan.isPrefixMatch()
@@ -1172,7 +1169,6 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
measurementSchema.getType(),
measurementSchema.getEncodingType(),
measurementSchema.getCompressor(),
- 0,
tagAndAttributePair.left,
tagAndAttributePair.right,
deadbandInfo.left,
@@ -1187,25 +1183,6 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
}
}
- if (needLast) {
- Stream<ShowTimeSeriesResult> stream = res.stream();
-
- limit = plan.getLimit();
- offset = plan.getOffset();
-
- stream =
- stream.sorted(
- Comparator.comparingLong(ShowTimeSeriesResult::getLastTime)
- .reversed()
- .thenComparing(ShowTimeSeriesResult::getName));
-
- if (limit != 0) {
- stream = stream.skip(offset).limit(limit);
- }
-
- res = stream.collect(toList());
- }
-
return new Pair<>(res, curOffset + 1);
}
@@ -1215,9 +1192,8 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
* @param plan show time series query plan
*/
private Pair<List<ShowTimeSeriesResult>, Integer> showTimeseriesWithoutIndex(
- ShowTimeSeriesPlan plan, QueryContext context) throws MetadataException {
- Pair<List<Pair<PartialPath, String[]>>, Integer> ans =
- mtree.getAllMeasurementSchema(plan, context);
+ IShowTimeSeriesPlan plan) throws MetadataException {
+ Pair<List<Pair<PartialPath, String[]>>, Integer> ans = mtree.getAllMeasurementSchema(plan);
List<ShowTimeSeriesResult> res = new LinkedList<>();
for (Pair<PartialPath, String[]> ansString : ans.left) {
long tagFileOffset = Long.parseLong(ansString.right[5]);
@@ -1235,11 +1211,10 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
TSDataType.valueOf(ansString.right[2]),
TSEncoding.valueOf(ansString.right[3]),
CompressionType.valueOf(ansString.right[4]),
- ansString.right[6] != null ? Long.parseLong(ansString.right[6]) : 0,
tagAndAttributePair.left,
tagAndAttributePair.right,
- ansString.right[7],
- ansString.right[8]));
+ ansString.right[6],
+ ansString.right[7]));
} catch (IOException e) {
throw new MetadataException(
"Something went wrong while deserialize tag info of " + ansString.left.getFullPath(),
@@ -1317,7 +1292,7 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
}
try {
- writeToMLog(SchemaRegionPlanFactory.getChangeAliasPlan(path, alias));
+ writeToMLog(SchemaRegionWritePlanFactory.getChangeAliasPlan(path, alias));
} catch (IOException e) {
throw new MetadataException(e);
}
@@ -1352,7 +1327,7 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
// no tag or attribute, we need to add a new record in log
if (leafMNode.getOffset() < 0) {
long offset = tagManager.writeTagFile(tagsMap, attributesMap);
- writeToMLog(SchemaRegionPlanFactory.getChangeTagOffsetPlan(fullPath, offset));
+ writeToMLog(SchemaRegionWritePlanFactory.getChangeTagOffsetPlan(fullPath, offset));
leafMNode.setOffset(offset);
mtree.updateMNode(leafMNode);
// update inverted Index map
@@ -1383,7 +1358,7 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
mtree.setAlias(leafMNode, alias);
// persist to WAL
- writeToMLog(SchemaRegionPlanFactory.getChangeAliasPlan(fullPath, alias));
+ writeToMLog(SchemaRegionWritePlanFactory.getChangeAliasPlan(fullPath, alias));
}
}
@@ -1402,7 +1377,7 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
// no tag or attribute, we need to add a new record in log
if (leafMNode.getOffset() < 0) {
long offset = tagManager.writeTagFile(Collections.emptyMap(), attributesMap);
- writeToMLog(SchemaRegionPlanFactory.getChangeTagOffsetPlan(fullPath, offset));
+ writeToMLog(SchemaRegionWritePlanFactory.getChangeTagOffsetPlan(fullPath, offset));
leafMNode.setOffset(offset);
mtree.updateMNode(leafMNode);
return;
@@ -1429,7 +1404,7 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
// no tag or attribute, we need to add a new record in log
if (leafMNode.getOffset() < 0) {
long offset = tagManager.writeTagFile(tagsMap, Collections.emptyMap());
- writeToMLog(SchemaRegionPlanFactory.getChangeTagOffsetPlan(fullPath, offset));
+ writeToMLog(SchemaRegionWritePlanFactory.getChangeTagOffsetPlan(fullPath, offset));
leafMNode.setOffset(offset);
mtree.updateMNode(leafMNode);
// update inverted Index map
@@ -1558,7 +1533,7 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
Map<PartialPath, List<Integer>> resultTemplateSetInfo =
mtree.constructSchemaBlackListWithTemplate(plan.getTemplateSetInfo());
try {
- writeToMLog(SchemaRegionPlanFactory.getPreDeactivateTemplatePlan(resultTemplateSetInfo));
+ writeToMLog(SchemaRegionWritePlanFactory.getPreDeactivateTemplatePlan(resultTemplateSetInfo));
} catch (IOException e) {
throw new MetadataException(e);
}
@@ -1572,7 +1547,7 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
mtree.rollbackSchemaBlackListWithTemplate(plan.getTemplateSetInfo());
try {
writeToMLog(
- SchemaRegionPlanFactory.getRollbackPreDeactivateTemplatePlan(resultTemplateSetInfo));
+ SchemaRegionWritePlanFactory.getRollbackPreDeactivateTemplatePlan(resultTemplateSetInfo));
} catch (IOException e) {
throw new MetadataException(e);
}
@@ -1583,7 +1558,7 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
Map<PartialPath, List<Integer>> resultTemplateSetInfo =
mtree.deactivateTemplateInBlackList(plan.getTemplateSetInfo());
try {
- writeToMLog(SchemaRegionPlanFactory.getDeactivateTemplatePlan(resultTemplateSetInfo));
+ writeToMLog(SchemaRegionWritePlanFactory.getDeactivateTemplatePlan(resultTemplateSetInfo));
} catch (IOException e) {
throw new MetadataException(e);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/tag/TagManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/tag/TagManager.java
index 66a025a374..f8a64eacbd 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/tag/TagManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/tag/TagManager.java
@@ -26,8 +26,7 @@ import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.metadata.MetadataConstant;
import org.apache.iotdb.db.metadata.mnode.IMNode;
import org.apache.iotdb.db.metadata.mnode.IMeasurementMNode;
-import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
-import org.apache.iotdb.db.query.context.QueryContext;
+import org.apache.iotdb.db.metadata.plan.schemaregion.read.IShowTimeSeriesPlan;
import org.apache.iotdb.tsfile.utils.Pair;
import org.apache.commons.io.FileUtils;
@@ -194,8 +193,8 @@ public class TagManager {
return timeseries;
}
- public List<IMeasurementMNode> getMatchedTimeseriesInIndex(
- ShowTimeSeriesPlan plan, QueryContext context) throws MetadataException {
+ public List<IMeasurementMNode> getMatchedTimeseriesInIndex(IShowTimeSeriesPlan plan)
+ throws MetadataException {
if (!tagIndex.containsKey(plan.getKey())) {
return Collections.emptyList();
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/visitor/SchemaExecutionVisitor.java b/server/src/main/java/org/apache/iotdb/db/metadata/visitor/SchemaExecutionVisitor.java
index 56b086c32f..e59b116826 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/visitor/SchemaExecutionVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/visitor/SchemaExecutionVisitor.java
@@ -25,7 +25,7 @@ import org.apache.iotdb.commons.exception.MetadataException;
import org.apache.iotdb.commons.path.MeasurementPath;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.exception.metadata.MeasurementAlreadyExistException;
-import org.apache.iotdb.db.metadata.plan.schemaregion.impl.SchemaRegionPlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.write.SchemaRegionWritePlanFactory;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateAlignedTimeSeriesPlan;
import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateTimeSeriesPlan;
import org.apache.iotdb.db.metadata.schemaregion.ISchemaRegion;
@@ -119,7 +119,7 @@ public class SchemaExecutionVisitor extends PlanVisitor<TSStatus, ISchemaRegion>
private ICreateTimeSeriesPlan transformToCreateTimeSeriesPlan(
PartialPath devicePath, MeasurementGroup measurementGroup, int index) {
- return SchemaRegionPlanFactory.getCreateTimeSeriesPlan(
+ return SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
devicePath.concatNode(measurementGroup.getMeasurements().get(index)),
measurementGroup.getDataTypes().get(index),
measurementGroup.getEncodings().get(index),
@@ -198,7 +198,7 @@ public class SchemaExecutionVisitor extends PlanVisitor<TSStatus, ISchemaRegion>
List<TSEncoding> encodingList = measurementGroup.getEncodings();
List<CompressionType> compressionTypeList = measurementGroup.getCompressors();
ICreateAlignedTimeSeriesPlan createAlignedTimeSeriesPlan =
- SchemaRegionPlanFactory.getCreateAlignedTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getCreateAlignedTimeSeriesPlan(
devicePath,
measurementList,
dataTypeList,
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/schema/DevicesSchemaScanOperator.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/schema/DevicesSchemaScanOperator.java
index 9eacd6e8cb..c89c924eb2 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/schema/DevicesSchemaScanOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/schema/DevicesSchemaScanOperator.java
@@ -20,13 +20,13 @@ package org.apache.iotdb.db.mpp.execution.operator.schema;
import org.apache.iotdb.commons.exception.MetadataException;
import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.read.SchemaRegionReadPlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowDevicesResult;
import org.apache.iotdb.db.mpp.common.header.ColumnHeader;
import org.apache.iotdb.db.mpp.common.header.ColumnHeaderConstant;
import org.apache.iotdb.db.mpp.execution.driver.SchemaDriverContext;
import org.apache.iotdb.db.mpp.execution.operator.OperatorContext;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
-import org.apache.iotdb.db.qp.physical.sys.ShowDevicesPlan;
-import org.apache.iotdb.db.query.dataset.ShowDevicesResult;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.read.common.block.TsBlock;
import org.apache.iotdb.tsfile.read.common.block.TsBlockBuilder;
@@ -62,7 +62,9 @@ public class DevicesSchemaScanOperator extends SchemaQueryScanOperator {
List<ShowDevicesResult> schemaRegionResult =
((SchemaDriverContext) operatorContext.getInstanceContext().getDriverContext())
.getSchemaRegion()
- .getMatchedDevices(convertToPhysicalPlan())
+ .getMatchedDevices(
+ SchemaRegionReadPlanFactory.getShowDevicesPlan(
+ partialPath, limit, offset, hasSgCol, false))
.left;
return SchemaTsBlockUtil.transferSchemaResultToTsBlockList(
schemaRegionResult.iterator(), outputDataTypes, this::setColumns);
@@ -71,16 +73,11 @@ public class DevicesSchemaScanOperator extends SchemaQueryScanOperator {
}
}
- // ToDo @xinzhongtianxia remove this temporary converter after mpp online
- private ShowDevicesPlan convertToPhysicalPlan() {
- return new ShowDevicesPlan(partialPath, limit, offset, hasSgCol);
- }
-
private void setColumns(ShowDevicesResult device, TsBlockBuilder builder) {
builder.getTimeColumnBuilder().writeLong(0L);
- builder.getColumnBuilder(0).writeBinary(new Binary(device.getName()));
+ builder.getColumnBuilder(0).writeBinary(new Binary(device.getPath()));
if (hasSgCol) {
- builder.getColumnBuilder(1).writeBinary(new Binary(device.getSgName()));
+ builder.getColumnBuilder(1).writeBinary(new Binary(device.getDatabase()));
builder.getColumnBuilder(2).writeBinary(new Binary(String.valueOf(device.isAligned())));
} else {
builder.getColumnBuilder(1).writeBinary(new Binary(String.valueOf(device.isAligned())));
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/schema/TimeSeriesSchemaScanOperator.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/schema/TimeSeriesSchemaScanOperator.java
index a7f68a42b8..8ab9473e1e 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/schema/TimeSeriesSchemaScanOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/schema/TimeSeriesSchemaScanOperator.java
@@ -20,14 +20,14 @@ package org.apache.iotdb.db.mpp.execution.operator.schema;
import org.apache.iotdb.commons.exception.MetadataException;
import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.read.SchemaRegionReadPlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowTimeSeriesResult;
import org.apache.iotdb.db.metadata.template.Template;
import org.apache.iotdb.db.mpp.common.header.ColumnHeader;
import org.apache.iotdb.db.mpp.common.header.ColumnHeaderConstant;
import org.apache.iotdb.db.mpp.execution.driver.SchemaDriverContext;
import org.apache.iotdb.db.mpp.execution.operator.OperatorContext;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
-import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
-import org.apache.iotdb.db.query.dataset.ShowTimeSeriesResult;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.read.common.block.TsBlock;
import org.apache.iotdb.tsfile.read.common.block.TsBlockBuilder;
@@ -94,7 +94,9 @@ public class TimeSeriesSchemaScanOperator extends SchemaQueryScanOperator {
List<ShowTimeSeriesResult> schemaRegionResult =
((SchemaDriverContext) operatorContext.getInstanceContext().getDriverContext())
.getSchemaRegion()
- .showTimeseries(convertToPhysicalPlan(), operatorContext.getInstanceContext())
+ .showTimeseries(
+ SchemaRegionReadPlanFactory.getShowTimeSeriesPlan(
+ partialPath, templateMap, isContains, key, value, limit, offset, false))
.left;
return SchemaTsBlockUtil.transferSchemaResultToTsBlockList(
schemaRegionResult.iterator(), outputDataTypes, this::setColumns);
@@ -103,19 +105,11 @@ public class TimeSeriesSchemaScanOperator extends SchemaQueryScanOperator {
}
}
- // ToDo @xinzhongtianxia remove this temporary converter after mpp online
- private ShowTimeSeriesPlan convertToPhysicalPlan() {
- ShowTimeSeriesPlan plan =
- new ShowTimeSeriesPlan(partialPath, isContains, key, value, limit, offset, false);
- plan.setRelatedTemplate(templateMap);
- return plan;
- }
-
private void setColumns(ShowTimeSeriesResult series, TsBlockBuilder builder) {
- builder.getTimeColumnBuilder().writeLong(series.getLastTime());
- builder.writeNullableText(0, series.getName());
+ builder.getTimeColumnBuilder().writeLong(0);
+ builder.writeNullableText(0, series.getPath());
builder.writeNullableText(1, series.getAlias());
- builder.writeNullableText(2, series.getSgName());
+ builder.writeNullableText(2, series.getDatabase());
builder.writeNullableText(3, series.getDataType().toString());
builder.writeNullableText(4, series.getEncoding().toString());
builder.writeNullableText(5, series.getCompressor().toString());
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/PhysicalPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/PhysicalPlan.java
deleted file mode 100644
index 7a53b2a978..0000000000
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/PhysicalPlan.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.qp.physical;
-
-import org.apache.iotdb.commons.exception.IllegalPathException;
-import org.apache.iotdb.commons.exception.runtime.SerializationRunTimeException;
-import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.consensus.common.request.IConsensusRequest;
-import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.qp.logical.Operator;
-import org.apache.iotdb.tsfile.utils.PublicBAOS;
-import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.nio.BufferOverflowException;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/** This class is an abstract class for all type of PhysicalPlan. */
-public abstract class PhysicalPlan implements IConsensusRequest {
- private static final Logger logger = LoggerFactory.getLogger(PhysicalPlan.class);
-
- private static final String SERIALIZATION_UNIMPLEMENTED = "serialization unimplemented";
-
- private boolean isQuery = false;
-
- private Operator.OperatorType operatorType;
-
- // for cluster mode, whether the plan may be splitted into several sub plans
- protected boolean canBeSplit = true;
-
- // login username, corresponding to cli/session login user info
- private String loginUserName;
-
- // a bridge from a cluster raft log to a physical plan
- protected long index;
-
- private boolean debug;
-
- /**
- * Since IoTDB v0.13, all DDL and DML use patternMatch as default. Before IoTDB v0.13, all DDL and
- * DML use prefixMatch.
- */
- private boolean isPrefixMatch = false;
-
- /** whether the plan can be split into more than one Plans. Only used in the cluster mode. */
- public boolean canBeSplit() {
- return canBeSplit;
- }
-
- protected PhysicalPlan() {}
-
- protected PhysicalPlan(Operator.OperatorType operatorType) {
- this.operatorType = operatorType;
- }
-
- public abstract List<? extends PartialPath> getPaths();
-
- public void setPaths(List<PartialPath> paths) {}
-
- public boolean isQuery() {
- return isQuery;
- }
-
- public boolean isSelectInto() {
- return false;
- }
-
- public Operator.OperatorType getOperatorType() {
- return operatorType;
- }
-
- public String getOperatorName() {
- return operatorType.toString();
- }
-
- public void setOperatorType(Operator.OperatorType operatorType) {
- this.operatorType = operatorType;
- }
-
- public List<String> getAggregations() {
- return Collections.emptyList();
- }
-
- public void setQuery(boolean query) {
- isQuery = query;
- }
-
- public boolean isDebug() {
- return debug;
- }
-
- public void setDebug(boolean debug) {
- this.debug = debug;
- }
-
- /**
- * Serialize the plan into the given buffer. All necessary fields will be serialized.
- *
- * @param stream
- * @throws IOException
- */
- public void serialize(DataOutputStream stream) throws IOException {
- throw new UnsupportedOperationException(SERIALIZATION_UNIMPLEMENTED);
- }
-
- @Override
- public ByteBuffer serializeToByteBuffer() {
- try (PublicBAOS byteArrayOutputStream = new PublicBAOS();
- DataOutputStream outputStream = new DataOutputStream(byteArrayOutputStream)) {
- serialize(outputStream);
- return ByteBuffer.wrap(byteArrayOutputStream.getBuf(), 0, byteArrayOutputStream.size());
- } catch (IOException e) {
- logger.error("Unexpected error occurs when serializing this physical plan.", e);
- throw new SerializationRunTimeException(e);
- }
- }
-
- public void deserialize(DataInputStream stream) throws IOException, IllegalPathException {
- throw new UnsupportedOperationException(SERIALIZATION_UNIMPLEMENTED);
- }
-
- /**
- * Serialize the plan into the given buffer. This is provided for WAL, so fields that can be
- * recovered will not be serialized. If error occurs when serializing this plan, the buffer will
- * be reset.
- *
- * @param buffer
- */
- public final void serialize(ByteBuffer buffer) {
- buffer.mark();
- try {
- serializeImpl(buffer);
- } catch (UnsupportedOperationException e) {
- // ignore and throw
- throw e;
- } catch (BufferOverflowException e) {
- buffer.reset();
- throw e;
- } catch (Exception e) {
- logger.error(
- "Rollback buffer entry because error occurs when serializing this physical plan.", e);
- buffer.reset();
- throw e;
- }
- }
-
- protected void serializeImpl(ByteBuffer buffer) {
- throw new UnsupportedOperationException(SERIALIZATION_UNIMPLEMENTED);
- }
-
- protected void putString(ByteBuffer buffer, String value) {
- ReadWriteIOUtils.write(value, buffer);
- }
-
- protected void putStrings(ByteBuffer buffer, List<String> values) {
- for (String value : values) {
- putString(buffer, value);
- }
- }
-
- protected void putString(DataOutputStream stream, String value) throws IOException {
- ReadWriteIOUtils.write(value, stream);
- }
-
- protected void putStrings(DataOutputStream stream, List<String> values) throws IOException {
- for (String value : values) {
- putString(stream, value);
- }
- }
-
- protected String readString(ByteBuffer buffer) {
- return ReadWriteIOUtils.readString(buffer);
- }
-
- protected List<String> readStrings(ByteBuffer buffer, int totalSize) {
- List<String> result = new ArrayList<>(totalSize);
- for (int i = 0; i < totalSize; i++) {
- result.add(readString(buffer));
- }
- return result;
- }
-
- public boolean isAuthenticationRequired() {
- return true;
- }
-
- /** Used to check whether a user has the permission to execute the plan with these paths. */
- public List<? extends PartialPath> getAuthPaths() {
- return getPaths();
- }
-
- /** If you want to add new PhysicalPlanType, you must add it in the last. */
- public enum PhysicalPlanType {
- INSERT,
- DELETE,
- BATCHINSERT,
- SET_STORAGE_GROUP,
- CREATE_TIMESERIES,
- TTL,
- GRANT_WATERMARK_EMBEDDING,
- REVOKE_WATERMARK_EMBEDDING,
- CREATE_ROLE,
- DELETE_ROLE,
- CREATE_USER,
- REVOKE_USER_ROLE,
- REVOKE_ROLE_PRIVILEGE,
- REVOKE_USER_PRIVILEGE,
- GRANT_ROLE_PRIVILEGE,
- GRANT_USER_PRIVILEGE,
- GRANT_USER_ROLE,
- MODIFY_PASSWORD,
- DELETE_USER,
- DELETE_STORAGE_GROUP,
- SHOW_TIMESERIES,
- DELETE_TIMESERIES,
- LOAD_CONFIGURATION,
- CREATE_MULTI_TIMESERIES,
- ALTER_TIMESERIES,
- FLUSH,
- CREATE_INDEX,
- DROP_INDEX,
- CHANGE_TAG_OFFSET,
- CHANGE_ALIAS,
- MNODE,
- MEASUREMENT_MNODE,
- STORAGE_GROUP_MNODE,
- BATCH_INSERT_ONE_DEVICE,
- MULTI_BATCH_INSERT,
- BATCH_INSERT_ROWS,
- SHOW_DEVICES,
- CREATE_TEMPLATE,
- SET_TEMPLATE,
- ACTIVATE_TEMPLATE,
- AUTO_CREATE_DEVICE_MNODE,
- CREATE_ALIGNED_TIMESERIES,
- CLUSTER_LOG,
- CREATE_TRIGGER,
- DROP_TRIGGER,
- START_TRIGGER,
- STOP_TRIGGER,
- CREATE_CONTINUOUS_QUERY,
- DROP_CONTINUOUS_QUERY,
- SHOW_CONTINUOUS_QUERIES,
- MERGE,
- CREATE_SNAPSHOT, // the snapshot feature has been deprecated, this is kept for compatibility
- CLEARCACHE,
- CREATE_FUNCTION,
- DROP_FUNCTION,
- SELECT_INTO,
- SET_SYSTEM_MODE,
- UNSET_TEMPLATE,
- APPEND_TEMPLATE,
- PRUNE_TEMPLATE,
- START_PIPE_SERVER,
- STOP_PIPE_SERVER,
- DROP_TEMPLATE,
- ACTIVATE_TEMPLATE_IN_CLUSTER,
- PRE_DELETE_TIMESERIES_IN_CLUSTER,
- ROLLBACK_PRE_DELETE_TIMESERIES
- }
-
- public long getIndex() {
- return index;
- }
-
- public void setIndex(long index) {
- this.index = index;
- }
-
- /**
- * Check the integrity of the plan in case that the plan is generated by a careless user through
- * Session API.
- *
- * @throws QueryProcessException when the check fails
- */
- // TODO(INSERT) move this check into analyze
- public void checkIntegrity() throws QueryProcessException {}
-
- public boolean isPrefixMatch() {
- return isPrefixMatch;
- }
-
- public void setPrefixMatch(boolean prefixMatch) {
- isPrefixMatch = prefixMatch;
- }
-}
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateAlignedTimeSeriesPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateAlignedTimeSeriesPlan.java
deleted file mode 100644
index 256c2e757e..0000000000
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateAlignedTimeSeriesPlan.java
+++ /dev/null
@@ -1,380 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.db.qp.physical.sys;
-
-import org.apache.iotdb.commons.exception.IllegalPathException;
-import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateAlignedTimeSeriesPlan;
-import org.apache.iotdb.db.qp.logical.Operator;
-import org.apache.iotdb.db.qp.physical.PhysicalPlan;
-import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
-import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
-public class CreateAlignedTimeSeriesPlan extends PhysicalPlan
- implements ICreateAlignedTimeSeriesPlan {
-
- private static final Logger logger = LoggerFactory.getLogger(CreateAlignedTimeSeriesPlan.class);
- private static final int PLAN_SINCE_0_14 = -1;
-
- private PartialPath devicePath;
- private List<String> measurements;
- private List<TSDataType> dataTypes;
- private List<TSEncoding> encodings;
- private List<CompressionType> compressors;
- private List<String> aliasList;
- private List<Map<String, String>> tagsList;
- private List<Map<String, String>> attributesList;
- private List<Long> tagOffsets = null;
-
- public CreateAlignedTimeSeriesPlan() {
- super(Operator.OperatorType.CREATE_ALIGNED_TIMESERIES);
- canBeSplit = false;
- }
-
- public CreateAlignedTimeSeriesPlan(
- PartialPath devicePath,
- List<String> measurements,
- List<TSDataType> dataTypes,
- List<TSEncoding> encodings,
- List<CompressionType> compressors,
- List<String> aliasList,
- List<Map<String, String>> tagsList,
- List<Map<String, String>> attributesList) {
- super(Operator.OperatorType.CREATE_ALIGNED_TIMESERIES);
- this.devicePath = devicePath;
- this.measurements = measurements;
- this.dataTypes = dataTypes;
- this.encodings = encodings;
- this.compressors = compressors;
- this.aliasList = aliasList;
- this.tagsList = tagsList;
- this.attributesList = attributesList;
- this.canBeSplit = false;
- }
-
- public CreateAlignedTimeSeriesPlan(
- PartialPath devicePath, String measurement, MeasurementSchema schema) {
- super(Operator.OperatorType.CREATE_ALIGNED_TIMESERIES);
- this.devicePath = devicePath;
- this.measurements = Collections.singletonList(measurement);
- this.dataTypes = Collections.singletonList(schema.getType());
- this.encodings = Collections.singletonList(schema.getEncodingType());
- this.compressors = Collections.singletonList(schema.getCompressor());
- this.canBeSplit = false;
- }
-
- public PartialPath getDevicePath() {
- return devicePath;
- }
-
- public void setDevicePath(PartialPath devicePath) {
- this.devicePath = devicePath;
- }
-
- public List<String> getMeasurements() {
- return measurements;
- }
-
- public void setMeasurements(List<String> measurements) {
- this.measurements = measurements;
- }
-
- public List<TSDataType> getDataTypes() {
- return dataTypes;
- }
-
- public void setDataTypes(List<TSDataType> dataTypes) {
- this.dataTypes = dataTypes;
- }
-
- public List<TSEncoding> getEncodings() {
- return encodings;
- }
-
- public void setEncodings(List<TSEncoding> encodings) {
- this.encodings = encodings;
- }
-
- public List<CompressionType> getCompressors() {
- return compressors;
- }
-
- public void setCompressors(List<CompressionType> compressors) {
- this.compressors = compressors;
- }
-
- public List<String> getAliasList() {
- return aliasList;
- }
-
- public void setAliasList(List<String> aliasList) {
- this.aliasList = aliasList;
- }
-
- public List<Map<String, String>> getTagsList() {
- return tagsList;
- }
-
- public void setTagsList(List<Map<String, String>> tagsList) {
- this.tagsList = tagsList;
- }
-
- public List<Map<String, String>> getAttributesList() {
- return attributesList;
- }
-
- public void setAttributesList(List<Map<String, String>> attributesList) {
- this.attributesList = attributesList;
- }
-
- public List<Long> getTagOffsets() {
- if (tagOffsets == null) {
- tagOffsets = new ArrayList<>();
- for (int i = 0; i < measurements.size(); i++) {
- tagOffsets.add(Long.parseLong("-1"));
- }
- }
- return tagOffsets;
- }
-
- public void setTagOffsets(List<Long> tagOffsets) {
- this.tagOffsets = tagOffsets;
- }
-
- @Override
- public String toString() {
- return String.format(
- "devicePath: %s, measurements: %s, dataTypes: %s, encodings: %s, compressions: %s, tagOffsets: %s",
- devicePath, measurements, dataTypes, encodings, compressors, tagOffsets);
- }
-
- @Override
- public List<PartialPath> getPaths() {
- List<PartialPath> paths = new ArrayList<>();
- for (String measurement : measurements) {
- try {
- paths.add(new PartialPath(devicePath.getFullPath(), measurement));
- } catch (IllegalPathException e) {
- logger.error("Failed to get paths of CreateAlignedTimeSeriesPlan. ", e);
- }
- }
- return paths;
- }
-
- @Override
- public void serialize(DataOutputStream stream) throws IOException {
- stream.writeByte((byte) PhysicalPlanType.CREATE_ALIGNED_TIMESERIES.ordinal());
-
- // distinguish the plan from that of old versions
- stream.writeInt(PLAN_SINCE_0_14);
-
- byte[] bytes = devicePath.getFullPath().getBytes();
- stream.writeInt(bytes.length);
- stream.write(bytes);
-
- ReadWriteIOUtils.write(measurements.size(), stream);
- for (String measurement : measurements) {
- ReadWriteIOUtils.write(measurement, stream);
- }
- for (TSDataType dataType : dataTypes) {
- stream.write(dataType.ordinal());
- }
- for (TSEncoding encoding : encodings) {
- stream.write(encoding.ordinal());
- }
- for (CompressionType compressor : compressors) {
- stream.write(compressor.serialize());
- }
- if (tagOffsets == null) {
- tagOffsets = new ArrayList<>();
- for (int i = 0; i < measurements.size(); i++) {
- tagOffsets.add(Long.parseLong("-1"));
- }
- }
- for (Long tagOffset : tagOffsets) {
- stream.writeLong(tagOffset);
- }
-
- // alias
- if (aliasList != null && !aliasList.isEmpty()) {
- stream.write(1);
- for (String alias : aliasList) {
- ReadWriteIOUtils.write(alias, stream);
- }
- } else {
- stream.write(0);
- }
-
- // tags
- if (tagsList != null && !tagsList.isEmpty()) {
- stream.write(1);
- for (Map<String, String> tags : tagsList) {
- ReadWriteIOUtils.write(tags, stream);
- }
- } else {
- stream.write(0);
- }
-
- // attributes
- if (attributesList != null && !attributesList.isEmpty()) {
- stream.write(1);
- for (Map<String, String> attributes : attributesList) {
- ReadWriteIOUtils.write(attributes, stream);
- }
- } else {
- stream.write(0);
- }
-
- stream.writeLong(index);
- }
-
- @Override
- public void serializeImpl(ByteBuffer buffer) {
- buffer.put((byte) PhysicalPlanType.CREATE_ALIGNED_TIMESERIES.ordinal());
-
- // distinguish the plan from that of old versions
- buffer.putInt(PLAN_SINCE_0_14);
-
- byte[] bytes = devicePath.getFullPath().getBytes();
- buffer.putInt(bytes.length);
- buffer.put(bytes);
-
- ReadWriteIOUtils.write(measurements.size(), buffer);
- for (String measurement : measurements) {
- ReadWriteIOUtils.write(measurement, buffer);
- }
- for (TSDataType dataType : dataTypes) {
- buffer.put((byte) dataType.ordinal());
- }
- for (TSEncoding encoding : encodings) {
- buffer.put((byte) encoding.ordinal());
- }
- for (CompressionType compressor : compressors) {
- buffer.put(compressor.serialize());
- }
- for (Long tagOffset : getTagOffsets()) {
- buffer.putLong(tagOffset);
- }
-
- // alias
- if (aliasList != null && !aliasList.isEmpty()) {
- buffer.put((byte) 1);
- for (String alias : aliasList) {
- ReadWriteIOUtils.write(alias, buffer);
- }
- } else {
- buffer.put((byte) 0);
- }
-
- // tags
- if (tagsList != null && !tagsList.isEmpty()) {
- buffer.put((byte) 1);
- for (Map<String, String> tags : tagsList) {
- ReadWriteIOUtils.write(tags, buffer);
- }
- } else {
- buffer.put((byte) 0);
- }
-
- // attributes
- if (attributesList != null && !attributesList.isEmpty()) {
- buffer.put((byte) 1);
- for (Map<String, String> attributes : attributesList) {
- ReadWriteIOUtils.write(attributes, buffer);
- }
- } else {
- buffer.put((byte) 0);
- }
-
- buffer.putLong(index);
- }
-
- public void formerSerialize(ByteBuffer buffer) {
- buffer.put((byte) PhysicalPlanType.CREATE_ALIGNED_TIMESERIES.ordinal());
-
- byte[] bytes = devicePath.getFullPath().getBytes();
- buffer.putInt(bytes.length);
- buffer.put(bytes);
-
- ReadWriteIOUtils.write(measurements.size(), buffer);
- for (String measurement : measurements) {
- ReadWriteIOUtils.write(measurement, buffer);
- }
- for (TSDataType dataType : dataTypes) {
- buffer.put((byte) dataType.ordinal());
- }
- for (TSEncoding encoding : encodings) {
- buffer.put((byte) encoding.ordinal());
- }
- for (CompressionType compressor : compressors) {
- buffer.put(compressor.serialize());
- }
-
- // alias
- if (aliasList != null && !aliasList.isEmpty()) {
- buffer.put((byte) 1);
- for (String alias : aliasList) {
- ReadWriteIOUtils.write(alias, buffer);
- }
- } else {
- buffer.put((byte) 0);
- }
-
- buffer.putLong(index);
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
- CreateAlignedTimeSeriesPlan that = (CreateAlignedTimeSeriesPlan) o;
-
- return Objects.equals(devicePath, that.devicePath)
- && Objects.equals(measurements, that.measurements)
- && Objects.equals(dataTypes, that.dataTypes)
- && Objects.equals(encodings, that.encodings)
- && Objects.equals(compressors, that.compressors)
- && Objects.equals(tagOffsets, that.tagOffsets);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(devicePath, measurements, dataTypes, encodings, compressors, tagOffsets);
- }
-}
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateTimeSeriesPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateTimeSeriesPlan.java
deleted file mode 100644
index 1ceb486892..0000000000
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateTimeSeriesPlan.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.qp.physical.sys;
-
-import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateTimeSeriesPlan;
-import org.apache.iotdb.db.qp.logical.Operator;
-import org.apache.iotdb.db.qp.physical.PhysicalPlan;
-import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
-import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.TreeMap;
-
-public class CreateTimeSeriesPlan extends PhysicalPlan implements ICreateTimeSeriesPlan {
-
- private PartialPath path;
- private TSDataType dataType;
- private TSEncoding encoding;
- private CompressionType compressor;
- private String alias;
- private Map<String, String> props = null;
- private Map<String, String> tags = null;
- private Map<String, String> attributes = null;
- private long tagOffset = -1;
-
- public CreateTimeSeriesPlan() {
- super(Operator.OperatorType.CREATE_TIMESERIES);
- canBeSplit = false;
- }
-
- public CreateTimeSeriesPlan(
- PartialPath path,
- TSDataType dataType,
- TSEncoding encoding,
- CompressionType compressor,
- Map<String, String> props,
- Map<String, String> tags,
- Map<String, String> attributes,
- String alias) {
- super(Operator.OperatorType.CREATE_TIMESERIES);
- this.path = path;
- this.dataType = dataType;
- this.encoding = encoding;
- this.compressor = compressor;
- this.tags = tags;
- this.attributes = attributes;
- this.alias = alias;
- canBeSplit = false;
- if (props != null) {
- this.props = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
- this.props.putAll(props);
- }
- }
-
- public CreateTimeSeriesPlan(PartialPath path, MeasurementSchema schema) {
- super(Operator.OperatorType.CREATE_TIMESERIES);
- this.path = path;
- this.dataType = schema.getType();
- this.encoding = schema.getEncodingType();
- this.compressor = schema.getCompressor();
- canBeSplit = false;
- }
-
- public PartialPath getPath() {
- return path;
- }
-
- public void setPath(PartialPath path) {
- this.path = path;
- }
-
- public TSDataType getDataType() {
- return dataType;
- }
-
- public void setDataType(TSDataType dataType) {
- this.dataType = dataType;
- }
-
- public CompressionType getCompressor() {
- return compressor;
- }
-
- public void setCompressor(CompressionType compressor) {
- this.compressor = compressor;
- }
-
- public TSEncoding getEncoding() {
- return encoding;
- }
-
- public void setEncoding(TSEncoding encoding) {
- this.encoding = encoding;
- }
-
- public Map<String, String> getAttributes() {
- return attributes;
- }
-
- public void setAttributes(Map<String, String> attributes) {
- this.attributes = attributes;
- }
-
- public String getAlias() {
- return alias;
- }
-
- public void setAlias(String alias) {
- this.alias = alias;
- }
-
- public Map<String, String> getTags() {
- return tags;
- }
-
- public void setTags(Map<String, String> tags) {
- this.tags = tags;
- }
-
- public Map<String, String> getProps() {
- return props;
- }
-
- public void setProps(Map<String, String> props) {
- this.props = props;
- }
-
- public long getTagOffset() {
- return tagOffset;
- }
-
- public void setTagOffset(long tagOffset) {
- this.tagOffset = tagOffset;
- }
-
- @Override
- public String toString() {
- return String.format(
- "seriesPath: %s, resultDataType: %s, encoding: %s, compression: %s, tagOffset: %s",
- path, dataType, encoding, compressor, tagOffset);
- }
-
- @Override
- public List<PartialPath> getPaths() {
- return Collections.singletonList(path);
- }
-
- @Override
- public void serialize(DataOutputStream stream) throws IOException {
- stream.writeByte((byte) PhysicalPlanType.CREATE_TIMESERIES.ordinal());
- byte[] bytes = path.getFullPath().getBytes();
- stream.writeInt(bytes.length);
- stream.write(bytes);
- stream.write(dataType.ordinal());
- stream.write(encoding.ordinal());
- stream.write(compressor.serialize());
- stream.writeLong(tagOffset);
-
- // alias
- if (alias != null) {
- stream.write(1);
- ReadWriteIOUtils.write(alias, stream);
- } else {
- stream.write(0);
- }
-
- // props
- if (props != null && !props.isEmpty()) {
- stream.write(1);
- ReadWriteIOUtils.write(props, stream);
- } else {
- stream.write(0);
- }
-
- // tags
- if (tags != null && !tags.isEmpty()) {
- stream.write(1);
- ReadWriteIOUtils.write(tags, stream);
- } else {
- stream.write(0);
- }
-
- // attributes
- if (attributes != null && !attributes.isEmpty()) {
- stream.write(1);
- ReadWriteIOUtils.write(attributes, stream);
- } else {
- stream.write(0);
- }
-
- stream.writeLong(index);
- }
-
- @Override
- public void serializeImpl(ByteBuffer buffer) {
- buffer.put((byte) PhysicalPlanType.CREATE_TIMESERIES.ordinal());
- byte[] bytes = path.getFullPath().getBytes();
- buffer.putInt(bytes.length);
- buffer.put(bytes);
- buffer.put((byte) dataType.ordinal());
- buffer.put((byte) encoding.ordinal());
- buffer.put(compressor.serialize());
- buffer.putLong(tagOffset);
-
- // alias
- if (alias != null) {
- buffer.put((byte) 1);
- ReadWriteIOUtils.write(alias, buffer);
- } else {
- buffer.put((byte) 0);
- }
-
- // props
- if (props != null && !props.isEmpty()) {
- buffer.put((byte) 1);
- ReadWriteIOUtils.write(props, buffer);
- } else {
- buffer.put((byte) 0);
- }
-
- // tags
- if (tags != null && !tags.isEmpty()) {
- buffer.put((byte) 1);
- ReadWriteIOUtils.write(tags, buffer);
- } else {
- buffer.put((byte) 0);
- }
-
- // attributes
- if (attributes != null && !attributes.isEmpty()) {
- buffer.put((byte) 1);
- ReadWriteIOUtils.write(attributes, buffer);
- } else {
- buffer.put((byte) 0);
- }
-
- buffer.putLong(index);
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
- CreateTimeSeriesPlan that = (CreateTimeSeriesPlan) o;
-
- return Objects.equals(path, that.path)
- && dataType == that.dataType
- && encoding == that.encoding
- && compressor == that.compressor
- && tagOffset == that.tagOffset;
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(path, dataType, encoding, compressor, tagOffset);
- }
-}
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowPlan.java
deleted file mode 100644
index 86f3e95112..0000000000
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowPlan.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.iotdb.db.qp.physical.sys;
-
-import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.qp.logical.Operator.OperatorType;
-import org.apache.iotdb.db.qp.physical.PhysicalPlan;
-
-import java.util.Collections;
-import java.util.List;
-
-public class ShowPlan extends PhysicalPlan {
-
- private ShowContentType showContentType;
- protected int limit = 0;
- protected int offset = 0;
- protected PartialPath path;
- private boolean hasLimit;
-
- public ShowPlan(ShowContentType showContentType) {
- super(OperatorType.SHOW);
- setQuery(true);
- this.showContentType = showContentType;
- }
-
- public ShowPlan(ShowContentType showContentType, PartialPath path) {
- this(showContentType);
- this.path = path;
- }
-
- public ShowPlan(ShowContentType showContentType, PartialPath path, int limit, int offset) {
- this(showContentType, path);
- this.limit = limit;
- this.offset = offset;
- if (limit == 0) {
- this.hasLimit = false;
- } else {
- this.hasLimit = true;
- }
- }
-
- @Override
- public List<PartialPath> getPaths() {
- return Collections.emptyList();
- }
-
- public ShowContentType getShowContentType() {
- return showContentType;
- }
-
- public PartialPath getPath() {
- return this.path;
- }
-
- public int getLimit() {
- return limit;
- }
-
- public void setLimit(int limit) {
- this.limit = limit;
- }
-
- public int getOffset() {
- return offset;
- }
-
- public void setOffset(int offset) {
- this.offset = offset;
- }
-
- public boolean hasLimit() {
- return hasLimit;
- }
-
- public void setHasLimit(boolean hasLimit) {
- this.hasLimit = hasLimit;
- }
-
- @Override
- public String toString() {
- return String.format("%s %s", getOperatorType(), showContentType);
- }
-
- @Override
- public String getOperatorName() {
- return String.format("%s: %s", getOperatorType(), showContentType);
- }
-
- public enum ShowContentType {
- FLUSH_TASK_INFO,
- TTL,
- VERSION,
- TIMESERIES,
- STORAGE_GROUP,
- CHILD_PATH,
- CHILD_NODE,
- DEVICES,
- COUNT_TIMESERIES,
- COUNT_NODE_TIMESERIES,
- COUNT_NODES,
- FUNCTIONS,
- COUNT_DEVICES,
- COUNT_STORAGE_GROUP,
- QUERY_PROCESSLIST,
- TRIGGERS,
- LOCK_INFO,
- CONTINUOUS_QUERY,
- QUERY_RESOURCE,
- SCHEMA_TEMPLATE,
- NODES_IN_SCHEMA_TEMPLATE,
- PATHS_SET_SCHEMA_TEMPLATE,
- PATHS_USING_SCHEMA_TEMPLATE,
- }
-}
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowTimeSeriesPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowTimeSeriesPlan.java
deleted file mode 100644
index 7951d60724..0000000000
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowTimeSeriesPlan.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.qp.physical.sys;
-
-import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.metadata.template.Template;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.Map;
-import java.util.Objects;
-
-public class ShowTimeSeriesPlan extends ShowPlan {
-
- private boolean isContains;
- private String key;
- private String value;
-
- // if is true, the result will be sorted according to the inserting frequency of the timeseries
- private boolean orderByHeat;
-
- private Map<Integer, Template> relatedTemplate;
-
- public ShowTimeSeriesPlan(PartialPath path) {
- super(ShowContentType.TIMESERIES, path);
- }
-
- public ShowTimeSeriesPlan(
- PartialPath path,
- boolean isContains,
- String key,
- String value,
- int limit,
- int offset,
- boolean orderByHeat) {
- super(ShowContentType.TIMESERIES);
- this.path = path;
- this.isContains = isContains;
- this.key = key;
- this.value = value;
- this.limit = limit;
- this.offset = offset;
- this.orderByHeat = orderByHeat;
- }
-
- public ShowTimeSeriesPlan(PartialPath path, int limit, int offset) {
- super(ShowContentType.TIMESERIES, path, limit, offset);
- }
-
- public ShowTimeSeriesPlan() {
- super(ShowContentType.TIMESERIES);
- }
-
- public boolean isContains() {
- return isContains;
- }
-
- public void setIsContains(boolean isContains) {
- this.isContains = isContains;
- }
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-
- public String getValue() {
- return value;
- }
-
- public void setValue(String value) {
- this.value = value;
- }
-
- public boolean isOrderByHeat() {
- return orderByHeat;
- }
-
- public void setOrderByHeat(boolean orderByHeat) {
- this.orderByHeat = orderByHeat;
- }
-
- public Map<Integer, Template> getRelatedTemplate() {
- return relatedTemplate;
- }
-
- public void setRelatedTemplate(Map<Integer, Template> relatedTemplate) {
- this.relatedTemplate = relatedTemplate;
- }
-
- @Override
- public void serialize(DataOutputStream outputStream) throws IOException {
- outputStream.write(PhysicalPlanType.SHOW_TIMESERIES.ordinal());
- putString(outputStream, path.getFullPath());
- outputStream.writeBoolean(isContains);
- putString(outputStream, key);
- putString(outputStream, value);
- outputStream.writeInt(limit);
- outputStream.writeInt(offset);
- outputStream.writeBoolean(orderByHeat);
- outputStream.writeLong(index);
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- ShowTimeSeriesPlan that = (ShowTimeSeriesPlan) o;
- return isContains == that.isContains
- && orderByHeat == that.orderByHeat
- && Objects.equals(key, that.key)
- && Objects.equals(value, that.value)
- && Objects.equals(relatedTemplate, that.relatedTemplate);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(isContains, key, value, orderByHeat, relatedTemplate);
- }
-}
diff --git a/server/src/main/java/org/apache/iotdb/db/query/dataset/ShowTimeSeriesResult.java b/server/src/main/java/org/apache/iotdb/db/query/dataset/ShowTimeSeriesResult.java
deleted file mode 100644
index f34c8d93e7..0000000000
--- a/server/src/main/java/org/apache/iotdb/db/query/dataset/ShowTimeSeriesResult.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.query.dataset;
-
-import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
-import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.nio.ByteBuffer;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Objects;
-
-public class ShowTimeSeriesResult extends ShowResult {
-
- private String alias;
- private TSDataType dataType;
- private TSEncoding encoding;
- private CompressionType compressor;
- private Map<String, String> tags;
- private Map<String, String> attributes;
- private long lastTime;
-
- private String deadband;
- private String deadbandParameters;
-
- public ShowTimeSeriesResult(
- String name,
- String alias,
- String sgName,
- TSDataType dataType,
- TSEncoding encoding,
- CompressionType compressor,
- long lastTime,
- Map<String, String> tags,
- Map<String, String> attributes,
- String deadband,
- String deadbandParameters) {
- super(name, sgName);
- this.alias = alias;
- this.dataType = dataType;
- this.encoding = encoding;
- this.compressor = compressor;
- this.tags = tags;
- this.attributes = attributes;
- this.lastTime = lastTime;
- this.deadband = deadband;
- this.deadbandParameters = deadbandParameters;
- }
-
- public ShowTimeSeriesResult() {
- super();
- }
-
- public String getAlias() {
- return alias;
- }
-
- public TSDataType getDataType() {
- return dataType;
- }
-
- public TSEncoding getEncoding() {
- return encoding;
- }
-
- public CompressionType getCompressor() {
- return compressor;
- }
-
- public Map<String, String> getTag() {
- return tags;
- }
-
- public Map<String, String> getAttribute() {
- return attributes;
- }
-
- public long getLastTime() {
- return lastTime;
- }
-
- public String getDeadband() {
- return deadband;
- }
-
- public String getDeadbandParameters() {
- return deadbandParameters;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
- ShowTimeSeriesResult result = (ShowTimeSeriesResult) o;
- return Objects.equals(name, result.name);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(name);
- }
-
- private void writeNullable(Map<String, String> param, OutputStream outputStream)
- throws IOException {
- ReadWriteIOUtils.write(param != null, outputStream);
- if (param != null) {
- ReadWriteIOUtils.write(param.size(), outputStream);
- for (Entry<String, String> entry : param.entrySet()) {
- ReadWriteIOUtils.write(entry.getKey(), outputStream);
- ReadWriteIOUtils.write(entry.getValue(), outputStream);
- }
- }
- }
-
- public void serialize(OutputStream outputStream) throws IOException {
- ReadWriteIOUtils.write(name, outputStream);
- ReadWriteIOUtils.write(alias != null, outputStream); // flag
- if (alias != null) {
- ReadWriteIOUtils.write(alias, outputStream);
- }
- ReadWriteIOUtils.write(sgName, outputStream);
- ReadWriteIOUtils.write(dataType, outputStream);
- ReadWriteIOUtils.write(encoding, outputStream);
- ReadWriteIOUtils.write(compressor, outputStream);
-
- // write last time
- ReadWriteIOUtils.write(lastTime, outputStream);
-
- // flag for tags and attributes
- writeNullable(tags, outputStream);
- writeNullable(attributes, outputStream);
- }
-
- public static ShowTimeSeriesResult deserialize(ByteBuffer buffer) {
- ShowTimeSeriesResult result = new ShowTimeSeriesResult();
- result.name = ReadWriteIOUtils.readString(buffer);
- if (buffer.get() == 1) { // flag
- result.alias = ReadWriteIOUtils.readString(buffer);
- }
- result.sgName = ReadWriteIOUtils.readString(buffer);
- result.dataType = ReadWriteIOUtils.readDataType(buffer);
- result.encoding = ReadWriteIOUtils.readEncoding(buffer);
- result.compressor = ReadWriteIOUtils.readCompressionType(buffer);
-
- // read last time
- result.lastTime = ReadWriteIOUtils.readLong(buffer);
-
- // flag for tag
- if (buffer.get() == 1) {
- int tagSize = buffer.getInt();
- result.tags = new HashMap<>(tagSize);
- for (int i = 0; i < tagSize; i++) {
- String key = ReadWriteIOUtils.readString(buffer);
- String value = ReadWriteIOUtils.readString(buffer);
- result.tags.put(key, value);
- }
- }
-
- // flag for attribute
- if (buffer.get() == 1) {
- int attributeSize = buffer.getInt();
- result.attributes = new HashMap<>(attributeSize);
- for (int i = 0; i < attributeSize; i++) {
- String key = ReadWriteIOUtils.readString(buffer);
- String value = ReadWriteIOUtils.readString(buffer);
- result.attributes.put(key, value);
- }
- }
- return result;
- }
-}
diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionAliasAndTagTest.java b/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionAliasAndTagTest.java
index 9ce130114d..3531345015 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionAliasAndTagTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionAliasAndTagTest.java
@@ -21,9 +21,9 @@ package org.apache.iotdb.db.metadata.schemaRegion;
import org.apache.iotdb.commons.exception.MetadataException;
import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.read.SchemaRegionReadPlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowTimeSeriesResult;
import org.apache.iotdb.db.metadata.schemaregion.ISchemaRegion;
-import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
-import org.apache.iotdb.db.query.dataset.ShowTimeSeriesResult;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
@@ -147,10 +147,9 @@ public class SchemaRegionAliasAndTagTest extends AbstractSchemaRegionTest {
try {
Pair<List<ShowTimeSeriesResult>, Integer> result =
schemaRegion.showTimeseries(
- new ShowTimeSeriesPlan(new PartialPath(fullPath), false, null, null, 0, 0, false),
- null);
+ SchemaRegionReadPlanFactory.getShowTimeSeriesPlan(new PartialPath(fullPath)));
Assert.assertEquals(1, result.left.size());
- Assert.assertEquals(fullPath, result.left.get(0).getName());
+ Assert.assertEquals(fullPath, result.left.get(0).getPath());
Assert.assertEquals(alias, result.left.get(0).getAlias());
Assert.assertEquals(tags, result.left.get(0).getTag());
Assert.assertEquals(attributes, result.left.get(0).getAttribute());
@@ -164,10 +163,9 @@ public class SchemaRegionAliasAndTagTest extends AbstractSchemaRegionTest {
try {
Pair<List<ShowTimeSeriesResult>, Integer> result =
schemaRegion.showTimeseries(
- new ShowTimeSeriesPlan(new PartialPath(fullPath), false, null, null, 0, 0, false),
- null);
+ SchemaRegionReadPlanFactory.getShowTimeSeriesPlan(new PartialPath(fullPath)));
Assert.assertEquals(1, result.left.size());
- Assert.assertEquals(fullPath, result.left.get(0).getName());
+ Assert.assertEquals(fullPath, result.left.get(0).getPath());
Assert.assertEquals(attributes, result.left.get(0).getAttribute());
} catch (Exception e) {
e.printStackTrace();
@@ -179,10 +177,9 @@ public class SchemaRegionAliasAndTagTest extends AbstractSchemaRegionTest {
try {
Pair<List<ShowTimeSeriesResult>, Integer> result =
schemaRegion.showTimeseries(
- new ShowTimeSeriesPlan(new PartialPath(fullPath), false, null, null, 0, 0, false),
- null);
+ SchemaRegionReadPlanFactory.getShowTimeSeriesPlan(new PartialPath(fullPath)));
Assert.assertEquals(1, result.left.size());
- Assert.assertEquals(fullPath, result.left.get(0).getName());
+ Assert.assertEquals(fullPath, result.left.get(0).getPath());
Assert.assertEquals(tags, result.left.get(0).getTag());
} catch (Exception e) {
logger.error(e.getMessage(), e);
diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionBasicTest.java b/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionBasicTest.java
index c43e55027c..f14e27ad9b 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionBasicTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionBasicTest.java
@@ -27,13 +27,11 @@ import org.apache.iotdb.db.exception.metadata.AliasAlreadyExistException;
import org.apache.iotdb.db.exception.metadata.MeasurementAlreadyExistException;
import org.apache.iotdb.db.exception.metadata.PathAlreadyExistException;
import org.apache.iotdb.db.metadata.mnode.MNodeType;
-import org.apache.iotdb.db.metadata.plan.schemaregion.impl.CreateAlignedTimeSeriesPlanImpl;
-import org.apache.iotdb.db.metadata.plan.schemaregion.impl.CreateTimeSeriesPlanImpl;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.read.SchemaRegionReadPlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.write.SchemaRegionWritePlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowDevicesResult;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowTimeSeriesResult;
import org.apache.iotdb.db.metadata.schemaregion.ISchemaRegion;
-import org.apache.iotdb.db.qp.physical.sys.ShowDevicesPlan;
-import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
-import org.apache.iotdb.db.query.dataset.ShowDevicesResult;
-import org.apache.iotdb.db.query.dataset.ShowTimeSeriesResult;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
@@ -69,7 +67,7 @@ public class SchemaRegionBasicTest extends AbstractSchemaRegionTest {
ISchemaRegion schemaRegion = getSchemaRegion("root.sg", 0);
schemaRegion.createTimeseries(
- new CreateTimeSeriesPlanImpl(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath("root.sg.wf01.wt01.status"),
TSDataType.BOOLEAN,
TSEncoding.PLAIN,
@@ -80,7 +78,7 @@ public class SchemaRegionBasicTest extends AbstractSchemaRegionTest {
null),
-1);
schemaRegion.createTimeseries(
- new CreateTimeSeriesPlanImpl(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath("root.sg.wf01.wt01.temperature"),
TSDataType.FLOAT,
TSEncoding.RLE,
@@ -143,7 +141,7 @@ public class SchemaRegionBasicTest extends AbstractSchemaRegionTest {
public void testCreateAlignedTimeseries() throws Exception {
ISchemaRegion schemaRegion = getSchemaRegion("root.sg", 0);
schemaRegion.createAlignedTimeSeries(
- new CreateAlignedTimeSeriesPlanImpl(
+ SchemaRegionWritePlanFactory.getCreateAlignedTimeSeriesPlan(
new PartialPath("root.sg.wf02.wt01"),
Arrays.asList("temperature", "status"),
Arrays.asList(TSDataType.valueOf("FLOAT"), TSDataType.valueOf("INT32")),
@@ -164,7 +162,7 @@ public class SchemaRegionBasicTest extends AbstractSchemaRegionTest {
public void testCheckMeasurementExistence() throws Exception {
ISchemaRegion schemaRegion = getSchemaRegion("root.sg", 0);
schemaRegion.createTimeseries(
- new CreateTimeSeriesPlanImpl(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath("root.sg.wf01.wt01.status"),
TSDataType.BOOLEAN,
TSEncoding.PLAIN,
@@ -175,7 +173,7 @@ public class SchemaRegionBasicTest extends AbstractSchemaRegionTest {
null),
-1);
schemaRegion.createTimeseries(
- new CreateTimeSeriesPlanImpl(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath("root.sg.wf01.wt01.v1.s1"),
TSDataType.BOOLEAN,
TSEncoding.PLAIN,
@@ -186,7 +184,7 @@ public class SchemaRegionBasicTest extends AbstractSchemaRegionTest {
null),
-1);
schemaRegion.createTimeseries(
- new CreateTimeSeriesPlanImpl(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath("root.sg.wf01.wt01.temperature"),
TSDataType.FLOAT,
TSEncoding.RLE,
@@ -240,7 +238,7 @@ public class SchemaRegionBasicTest extends AbstractSchemaRegionTest {
public void testDeleteTimeseries() throws Exception {
ISchemaRegion schemaRegion = getSchemaRegion("root.sg", 0);
schemaRegion.createTimeseries(
- new CreateTimeSeriesPlanImpl(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath("root.sg.wf01.wt01.status"),
TSDataType.BOOLEAN,
TSEncoding.PLAIN,
@@ -251,7 +249,7 @@ public class SchemaRegionBasicTest extends AbstractSchemaRegionTest {
null),
-1);
schemaRegion.createTimeseries(
- new CreateTimeSeriesPlanImpl(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath("root.sg.wf01.wt02.status"),
TSDataType.BOOLEAN,
TSEncoding.PLAIN,
@@ -262,7 +260,7 @@ public class SchemaRegionBasicTest extends AbstractSchemaRegionTest {
null),
-1);
schemaRegion.createTimeseries(
- new CreateTimeSeriesPlanImpl(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath("root.sg.wf01.wt01.temperature"),
TSDataType.FLOAT,
TSEncoding.RLE,
@@ -273,7 +271,7 @@ public class SchemaRegionBasicTest extends AbstractSchemaRegionTest {
null),
-1);
schemaRegion.createTimeseries(
- new CreateTimeSeriesPlanImpl(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath("root.sg.wf02.wt01.temperature"),
TSDataType.FLOAT,
TSEncoding.RLE,
@@ -620,19 +618,24 @@ public class SchemaRegionBasicTest extends AbstractSchemaRegionTest {
Assert.assertEquals(
new Pair<>(Arrays.asList(), 0),
- schemaRegion.getMatchedDevices(new ShowDevicesPlan(new PartialPath("root.laptop.d0"))));
+ schemaRegion.getMatchedDevices(
+ SchemaRegionReadPlanFactory.getShowDevicesPlan(new PartialPath("root.laptop.d0"))));
Assert.assertEquals(
new Pair<>(Arrays.asList(new ShowDevicesResult("root.laptop.d1", false)), 0),
- schemaRegion.getMatchedDevices(new ShowDevicesPlan(new PartialPath("root.laptop.d1"))));
+ schemaRegion.getMatchedDevices(
+ SchemaRegionReadPlanFactory.getShowDevicesPlan(new PartialPath("root.laptop.d1"))));
Assert.assertEquals(
new Pair<>(Arrays.asList(new ShowDevicesResult("root.laptop.d2", false)), 0),
- schemaRegion.getMatchedDevices(new ShowDevicesPlan(new PartialPath("root.laptop.d2"))));
+ schemaRegion.getMatchedDevices(
+ SchemaRegionReadPlanFactory.getShowDevicesPlan(new PartialPath("root.laptop.d2"))));
Assert.assertEquals(
new Pair<>(Arrays.asList(new ShowDevicesResult("root.laptop", false)), 0),
- schemaRegion.getMatchedDevices(new ShowDevicesPlan(new PartialPath("root.laptop"))));
+ schemaRegion.getMatchedDevices(
+ SchemaRegionReadPlanFactory.getShowDevicesPlan(new PartialPath("root.laptop"))));
Assert.assertEquals(
new Pair<>(Arrays.asList(new ShowDevicesResult("root.laptop", false)), 0),
- schemaRegion.getMatchedDevices(new ShowDevicesPlan(new PartialPath("root.*"))));
+ schemaRegion.getMatchedDevices(
+ SchemaRegionReadPlanFactory.getShowDevicesPlan(new PartialPath("root.*"))));
List<ShowDevicesResult> expectedList =
Arrays.asList(
@@ -642,7 +645,8 @@ public class SchemaRegionBasicTest extends AbstractSchemaRegionTest {
new ShowDevicesResult("root.laptop.d1.s2", false));
Integer expectedOffset = 0;
Pair<List<ShowDevicesResult>, Integer> actualResult =
- schemaRegion.getMatchedDevices(new ShowDevicesPlan(new PartialPath("root.**")));
+ schemaRegion.getMatchedDevices(
+ SchemaRegionReadPlanFactory.getShowDevicesPlan(new PartialPath("root.**")));
// Compare hash sets because the order does not matter.
HashSet<ShowDevicesResult> expectedHashset = new HashSet<>(expectedList);
HashSet<ShowDevicesResult> actualHashset = new HashSet<>(actualResult.left);
@@ -655,7 +659,8 @@ public class SchemaRegionBasicTest extends AbstractSchemaRegionTest {
new ShowDevicesResult("root.laptop.d2", false));
expectedOffset = 0;
actualResult =
- schemaRegion.getMatchedDevices(new ShowDevicesPlan(new PartialPath("root.**.d*")));
+ schemaRegion.getMatchedDevices(
+ SchemaRegionReadPlanFactory.getShowDevicesPlan(new PartialPath("root.**.d*")));
// Compare hash sets because the order does not matter.
expectedHashset = new HashSet<>(expectedList);
actualHashset = new HashSet<>(actualResult.left);
@@ -680,8 +685,7 @@ public class SchemaRegionBasicTest extends AbstractSchemaRegionTest {
// case 01: all timeseries
Pair<List<ShowTimeSeriesResult>, Integer> result =
schemaRegion.showTimeseries(
- new ShowTimeSeriesPlan(new PartialPath("root.**"), false, null, null, 0, 0, false),
- null);
+ SchemaRegionReadPlanFactory.getShowTimeSeriesPlan(new PartialPath("root.**")));
HashSet<String> expectedPathList =
new HashSet<>(
Arrays.asList(
@@ -695,15 +699,14 @@ public class SchemaRegionBasicTest extends AbstractSchemaRegionTest {
Assert.assertEquals(expectedSize, result.left.size());
HashSet<String> actualPathList = new HashSet<>();
for (int index = 0; index < expectedSize; index++) {
- actualPathList.add(result.left.get(index).getName());
+ actualPathList.add(result.left.get(index).getPath());
}
Assert.assertEquals(expectedPathList, actualPathList);
// case 02: some timeseries, pattern "root.**.s*"
result =
schemaRegion.showTimeseries(
- new ShowTimeSeriesPlan(new PartialPath("root.**.s*"), false, null, null, 0, 0, false),
- null);
+ SchemaRegionReadPlanFactory.getShowTimeSeriesPlan(new PartialPath("root.**.s*")));
expectedPathList =
new HashSet<>(
Arrays.asList(
@@ -715,7 +718,7 @@ public class SchemaRegionBasicTest extends AbstractSchemaRegionTest {
Assert.assertEquals(expectedSize, result.left.size());
actualPathList = new HashSet<>();
for (int index = 0; index < expectedSize; index++) {
- actualPathList.add(result.left.get(index).getName());
+ actualPathList.add(result.left.get(index).getPath());
}
Assert.assertEquals(expectedPathList, actualPathList);
}
diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionManagementTest.java b/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionManagementTest.java
index 39ca871818..0f50780a8a 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionManagementTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionManagementTest.java
@@ -26,12 +26,11 @@ import org.apache.iotdb.consensus.ConsensusFactory;
import org.apache.iotdb.db.conf.IoTDBConfig;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.metadata.MetadataConstant;
-import org.apache.iotdb.db.metadata.plan.schemaregion.impl.SchemaRegionPlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.read.SchemaRegionReadPlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.write.SchemaRegionWritePlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowTimeSeriesResult;
import org.apache.iotdb.db.metadata.schemaregion.ISchemaRegion;
import org.apache.iotdb.db.metadata.template.Template;
-import org.apache.iotdb.db.qp.physical.sys.CreateTimeSeriesPlan;
-import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
-import org.apache.iotdb.db.query.dataset.ShowTimeSeriesResult;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
@@ -73,7 +72,7 @@ public class SchemaRegionManagementTest extends AbstractSchemaRegionTest {
Map<String, String> tags = new HashMap<>();
tags.put("tag-key", "tag-value");
schemaRegion.createTimeseries(
- new CreateTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath("root.sg.d1.s1"),
TSDataType.INT32,
TSEncoding.PLAIN,
@@ -86,7 +85,7 @@ public class SchemaRegionManagementTest extends AbstractSchemaRegionTest {
Template template = generateTemplate();
schemaRegion.activateSchemaTemplate(
- SchemaRegionPlanFactory.getActivateTemplateInClusterPlan(
+ SchemaRegionWritePlanFactory.getActivateTemplateInClusterPlan(
new PartialPath("root.sg.d2"), 1, template.getId()),
template);
@@ -98,12 +97,11 @@ public class SchemaRegionManagementTest extends AbstractSchemaRegionTest {
Pair<List<ShowTimeSeriesResult>, Integer> result =
schemaRegion.showTimeseries(
- new ShowTimeSeriesPlan(
- new PartialPath("root.sg.**"), false, "tag-key", "tag-value", 0, 0, false),
- null);
+ SchemaRegionReadPlanFactory.getShowTimeSeriesPlan(
+ new PartialPath("root.sg.**"), false, "tag-key", "tag-value"));
ShowTimeSeriesResult seriesResult = result.left.get(0);
- Assert.assertEquals(new PartialPath("root.sg.d1.s1").getFullPath(), seriesResult.getName());
+ Assert.assertEquals(new PartialPath("root.sg.d1.s1").getFullPath(), seriesResult.getPath());
Map<String, String> resultTagMap = seriesResult.getTag();
Assert.assertEquals(1, resultTagMap.size());
Assert.assertEquals("tag-value", resultTagMap.get("tag-key"));
@@ -114,25 +112,25 @@ public class SchemaRegionManagementTest extends AbstractSchemaRegionTest {
newSchemaRegion.loadSnapshot(snapshotDir);
result =
newSchemaRegion.showTimeseries(
- new ShowTimeSeriesPlan(
- new PartialPath("root.sg.**"), false, "tag-key", "tag-value", 0, 0, false),
- null);
+ SchemaRegionReadPlanFactory.getShowTimeSeriesPlan(
+ new PartialPath("root.sg.**"), false, "tag-key", "tag-value"));
seriesResult = result.left.get(0);
- Assert.assertEquals(new PartialPath("root.sg.d1.s1").getFullPath(), seriesResult.getName());
+ Assert.assertEquals(new PartialPath("root.sg.d1.s1").getFullPath(), seriesResult.getPath());
resultTagMap = seriesResult.getTag();
Assert.assertEquals(1, resultTagMap.size());
Assert.assertEquals("tag-value", resultTagMap.get("tag-key"));
- ShowTimeSeriesPlan showTimeSeriesPlan =
- new ShowTimeSeriesPlan(new PartialPath("root.sg.*.s1"), false, null, null, 0, 0, false);
- showTimeSeriesPlan.setRelatedTemplate(Collections.singletonMap(template.getId(), template));
- result = newSchemaRegion.showTimeseries(showTimeSeriesPlan, null);
+ result =
+ newSchemaRegion.showTimeseries(
+ SchemaRegionReadPlanFactory.getShowTimeSeriesPlan(
+ new PartialPath("root.sg.*.s1"),
+ Collections.singletonMap(template.getId(), template)));
result.left.sort(ShowTimeSeriesResult::compareTo);
Assert.assertEquals(
- new PartialPath("root.sg.d1.s1").getFullPath(), result.left.get(0).getName());
+ new PartialPath("root.sg.d1.s1").getFullPath(), result.left.get(0).getPath());
Assert.assertEquals(
- new PartialPath("root.sg.d2.s1").getFullPath(), result.left.get(1).getName());
+ new PartialPath("root.sg.d2.s1").getFullPath(), result.left.get(1).getPath());
} finally {
config.setSchemaRegionConsensusProtocolClass(schemaRegionConsensusProtocolClass);
@@ -166,7 +164,7 @@ public class SchemaRegionManagementTest extends AbstractSchemaRegionTest {
for (int i = 0; i < 1000; i++) {
for (int j = 0; j < 1000; j++) {
schemaRegion.createTimeseries(
- new CreateTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath("root.sg.d" + i + ".s" + j),
TSDataType.INT32,
TSEncoding.PLAIN,
diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionTemplateTest.java b/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionTemplateTest.java
index 05ce8ec1d1..41dfe60c50 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionTemplateTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionTemplateTest.java
@@ -21,11 +21,7 @@ package org.apache.iotdb.db.metadata.schemaRegion;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.path.PathPatternTree;
-import org.apache.iotdb.db.metadata.plan.schemaregion.impl.ActivateTemplateInClusterPlanImpl;
-import org.apache.iotdb.db.metadata.plan.schemaregion.impl.CreateTimeSeriesPlanImpl;
-import org.apache.iotdb.db.metadata.plan.schemaregion.impl.DeactivateTemplatePlanImpl;
-import org.apache.iotdb.db.metadata.plan.schemaregion.impl.PreDeactivateTemplatePlanImpl;
-import org.apache.iotdb.db.metadata.plan.schemaregion.impl.RollbackPreDeactivateTemplatePlanImpl;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.write.SchemaRegionWritePlanFactory;
import org.apache.iotdb.db.metadata.schemaregion.ISchemaRegion;
import org.apache.iotdb.db.metadata.template.Template;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
@@ -54,7 +50,7 @@ public class SchemaRegionTemplateTest extends AbstractSchemaRegionTest {
public void testActivateSchemaTemplate() throws Exception {
ISchemaRegion schemaRegion = getSchemaRegion("root.sg", 0);
schemaRegion.createTimeseries(
- new CreateTimeSeriesPlanImpl(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath("root.sg.wf01.wt01.status"),
TSDataType.BOOLEAN,
TSEncoding.PLAIN,
@@ -80,10 +76,12 @@ public class SchemaRegionTemplateTest extends AbstractSchemaRegionTest {
Collections.singletonList(CompressionType.SNAPPY)));
template.setId(templateId);
schemaRegion.activateSchemaTemplate(
- new ActivateTemplateInClusterPlanImpl(new PartialPath("root.sg.wf01.wt01"), 3, templateId),
+ SchemaRegionWritePlanFactory.getActivateTemplateInClusterPlan(
+ new PartialPath("root.sg.wf01.wt01"), 3, templateId),
template);
schemaRegion.activateSchemaTemplate(
- new ActivateTemplateInClusterPlanImpl(new PartialPath("root.sg.wf02"), 2, templateId),
+ SchemaRegionWritePlanFactory.getActivateTemplateInClusterPlan(
+ new PartialPath("root.sg.wf02"), 2, templateId),
template);
Set<String> expectedPaths = new HashSet<>(Arrays.asList("root.sg.wf01.wt01", "root.sg.wf02"));
Set<String> pathsUsingTemplate =
@@ -118,7 +116,7 @@ public class SchemaRegionTemplateTest extends AbstractSchemaRegionTest {
public void testDeactivateTemplate() throws Exception {
ISchemaRegion schemaRegion = getSchemaRegion("root.sg", 0);
schemaRegion.createTimeseries(
- new CreateTimeSeriesPlanImpl(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath("root.sg.wf01.wt01.status"),
TSDataType.BOOLEAN,
TSEncoding.PLAIN,
@@ -144,27 +142,29 @@ public class SchemaRegionTemplateTest extends AbstractSchemaRegionTest {
Collections.singletonList(CompressionType.SNAPPY)));
template.setId(templateId);
schemaRegion.activateSchemaTemplate(
- new ActivateTemplateInClusterPlanImpl(new PartialPath("root.sg.wf01.wt01"), 3, templateId),
+ SchemaRegionWritePlanFactory.getActivateTemplateInClusterPlan(
+ new PartialPath("root.sg.wf01.wt01"), 3, templateId),
template);
schemaRegion.activateSchemaTemplate(
- new ActivateTemplateInClusterPlanImpl(new PartialPath("root.sg.wf02"), 2, templateId),
+ SchemaRegionWritePlanFactory.getActivateTemplateInClusterPlan(
+ new PartialPath("root.sg.wf02"), 2, templateId),
template);
// construct schema blacklist with template on root.sg.wf01.wt01 and root.sg.wf02
Map<PartialPath, List<Integer>> allDeviceTemplateMap = new HashMap<>();
allDeviceTemplateMap.put(new PartialPath("root.**"), Collections.singletonList(templateId));
schemaRegion.constructSchemaBlackListWithTemplate(
- new PreDeactivateTemplatePlanImpl(allDeviceTemplateMap));
+ SchemaRegionWritePlanFactory.getPreDeactivateTemplatePlan(allDeviceTemplateMap));
// rollback schema blacklist with template on root.sg.wf02
Map<PartialPath, List<Integer>> wf02TemplateMap = new HashMap<>();
wf02TemplateMap.put(new PartialPath("root.sg.wf02"), Collections.singletonList(templateId));
schemaRegion.rollbackSchemaBlackListWithTemplate(
- new RollbackPreDeactivateTemplatePlanImpl(wf02TemplateMap));
+ SchemaRegionWritePlanFactory.getRollbackPreDeactivateTemplatePlan(wf02TemplateMap));
// deactivate schema blacklist with template on root.sg.wf01.wt01
schemaRegion.deactivateTemplateInBlackList(
- new DeactivateTemplatePlanImpl(allDeviceTemplateMap));
+ SchemaRegionWritePlanFactory.getDeactivateTemplatePlan(allDeviceTemplateMap));
// check using getPathsUsingTemplate
List<String> expectedPaths = Collections.singletonList("root.sg.wf02");
diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionTestUtil.java b/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionTestUtil.java
index 89f60fda24..e794dfc184 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionTestUtil.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionTestUtil.java
@@ -20,8 +20,7 @@ package org.apache.iotdb.db.metadata.schemaRegion;
import org.apache.iotdb.commons.exception.MetadataException;
import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.metadata.plan.schemaregion.impl.CreateAlignedTimeSeriesPlanImpl;
-import org.apache.iotdb.db.metadata.plan.schemaregion.impl.CreateTimeSeriesPlanImpl;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.write.SchemaRegionWritePlanFactory;
import org.apache.iotdb.db.metadata.schemaregion.ISchemaRegion;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
@@ -44,7 +43,7 @@ public class SchemaRegionTestUtil {
String alias)
throws MetadataException {
schemaRegion.createTimeseries(
- new CreateTimeSeriesPlanImpl(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath(fullPath),
dataType,
encoding,
@@ -69,7 +68,7 @@ public class SchemaRegionTestUtil {
throws MetadataException {
for (int i = 0; i < fullPaths.size(); i++) {
schemaRegion.createTimeseries(
- new CreateTimeSeriesPlanImpl(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath(fullPaths.get(i)),
dataTypes.get(i),
encodings.get(i),
@@ -94,7 +93,7 @@ public class SchemaRegionTestUtil {
List<String> alias)
throws MetadataException {
schemaRegion.createAlignedTimeSeries(
- new CreateAlignedTimeSeriesPlanImpl(
+ SchemaRegionWritePlanFactory.getCreateAlignedTimeSeriesPlan(
new PartialPath(devicePath),
measurements,
dataTypes,
diff --git a/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/schema/SchemaQueryScanOperatorTest.java b/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/schema/SchemaQueryScanOperatorTest.java
index 2ceaa2c90f..ef64e274fa 100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/schema/SchemaQueryScanOperatorTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/schema/SchemaQueryScanOperatorTest.java
@@ -21,6 +21,9 @@ package org.apache.iotdb.db.mpp.execution.operator.schema;
import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
import org.apache.iotdb.commons.exception.MetadataException;
import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.read.SchemaRegionReadPlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowDevicesResult;
+import org.apache.iotdb.db.metadata.plan.schemaregion.result.ShowTimeSeriesResult;
import org.apache.iotdb.db.metadata.schemaregion.ISchemaRegion;
import org.apache.iotdb.db.mpp.common.FragmentInstanceId;
import org.apache.iotdb.db.mpp.common.PlanFragmentId;
@@ -31,10 +34,6 @@ import org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceContext;
import org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceStateMachine;
import org.apache.iotdb.db.mpp.execution.operator.OperatorContext;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
-import org.apache.iotdb.db.qp.physical.sys.ShowDevicesPlan;
-import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
-import org.apache.iotdb.db.query.dataset.ShowDevicesResult;
-import org.apache.iotdb.db.query.dataset.ShowTimeSeriesResult;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
@@ -82,7 +81,9 @@ public class SchemaQueryScanOperatorTest {
1, planNodeId, SchemaQueryScanOperator.class.getSimpleName());
PartialPath partialPath = new PartialPath(META_SCAN_OPERATOR_TEST_SG + ".device0");
ISchemaRegion schemaRegion = Mockito.mock(ISchemaRegion.class);
- Mockito.when(schemaRegion.getMatchedDevices(new ShowDevicesPlan(partialPath, 10, 0, true)))
+ Mockito.when(
+ schemaRegion.getMatchedDevices(
+ SchemaRegionReadPlanFactory.getShowDevicesPlan(partialPath, 10, 0, true, false)))
.thenReturn(
new Pair<>(
Collections.singletonList(
@@ -157,8 +158,6 @@ public class SchemaQueryScanOperatorTest {
1, planNodeId, SchemaQueryScanOperator.class.getSimpleName());
PartialPath partialPath = new PartialPath(META_SCAN_OPERATOR_TEST_SG + ".device0.*");
- ShowTimeSeriesPlan showTimeSeriesPlan =
- new ShowTimeSeriesPlan(partialPath, false, null, null, 10, 0, false);
List<ShowTimeSeriesResult> showTimeSeriesResults = new ArrayList<>();
for (int i = 0; i < 10; i++) {
showTimeSeriesResults.add(
@@ -169,7 +168,6 @@ public class SchemaQueryScanOperatorTest {
TSDataType.INT32,
TSEncoding.PLAIN,
CompressionType.UNCOMPRESSED,
- 0,
null,
null,
null,
@@ -177,10 +175,9 @@ public class SchemaQueryScanOperatorTest {
}
ISchemaRegion schemaRegion = Mockito.mock(ISchemaRegion.class);
-
- showTimeSeriesPlan.setRelatedTemplate(Collections.emptyMap());
Mockito.when(
- schemaRegion.showTimeseries(showTimeSeriesPlan, operatorContext.getInstanceContext()))
+ schemaRegion.showTimeseries(
+ SchemaRegionReadPlanFactory.getShowTimeSeriesPlan(partialPath, 10, 0)))
.thenReturn(new Pair<>(showTimeSeriesResults, 0));
operatorContext
diff --git a/server/src/test/java/org/apache/iotdb/db/query/dataset/ShowDevicesResultTest.java b/server/src/test/java/org/apache/iotdb/db/query/dataset/ShowDevicesResultTest.java
deleted file mode 100644
index ad21bba968..0000000000
--- a/server/src/test/java/org/apache/iotdb/db/query/dataset/ShowDevicesResultTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.query.dataset;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-
-public class ShowDevicesResultTest {
-
- @Test
- public void serializeTest() throws IOException {
- ShowDevicesResult showDevicesResult = new ShowDevicesResult("root.sg1.d1", false, "root.sg1");
-
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- showDevicesResult.serialize(outputStream);
- ByteBuffer byteBuffer = ByteBuffer.wrap(outputStream.toByteArray());
- ShowDevicesResult result = ShowDevicesResult.deserialize(byteBuffer);
-
- Assert.assertEquals("root.sg1.d1", result.getName());
- Assert.assertFalse(result.isAligned());
- Assert.assertEquals("root.sg1", result.getSgName());
- }
-}
diff --git a/server/src/test/java/org/apache/iotdb/db/query/dataset/ShowTimeSeriesResultTest.java b/server/src/test/java/org/apache/iotdb/db/query/dataset/ShowTimeSeriesResultTest.java
deleted file mode 100644
index 235d199ee8..0000000000
--- a/server/src/test/java/org/apache/iotdb/db/query/dataset/ShowTimeSeriesResultTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.query.dataset;
-
-import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.Collections;
-import java.util.Map;
-
-public class ShowTimeSeriesResultTest {
-
- @Test
- public void serializeTest() throws IOException {
- Map<String, String> tag = Collections.singletonMap("tag1", "this is the first tag");
- Map<String, String> attribute =
- Collections.singletonMap("attribute1", "this is the first attribute");
- ShowTimeSeriesResult showTimeSeriesResult =
- new ShowTimeSeriesResult(
- "root.sg1.d1.s1",
- "temperature",
- "root.sg1",
- TSDataType.DOUBLE,
- TSEncoding.GORILLA,
- CompressionType.SNAPPY,
- 100,
- tag,
- attribute,
- null,
- null);
-
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- showTimeSeriesResult.serialize(outputStream);
- ByteBuffer byteBuffer = ByteBuffer.wrap(outputStream.toByteArray());
- ShowTimeSeriesResult result = ShowTimeSeriesResult.deserialize(byteBuffer);
-
- Assert.assertEquals("root.sg1.d1.s1", result.getName());
- Assert.assertEquals("temperature", result.getAlias());
- Assert.assertEquals("root.sg1", result.getSgName());
- Assert.assertEquals(TSDataType.DOUBLE, result.getDataType());
- Assert.assertEquals(TSEncoding.GORILLA, result.getEncoding());
- Assert.assertEquals(CompressionType.SNAPPY, result.getCompressor());
- Assert.assertEquals(100, result.getLastTime());
- Assert.assertEquals(tag, result.getTag());
- Assert.assertEquals(attribute, result.getAttribute());
- }
-}
diff --git a/server/src/test/java/org/apache/iotdb/db/query/dataset/SingleDataSetTest.java b/server/src/test/java/org/apache/iotdb/db/query/dataset/SingleDataSetTest.java
deleted file mode 100644
index 06f93fe220..0000000000
--- a/server/src/test/java/org/apache/iotdb/db/query/dataset/SingleDataSetTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.query.dataset;
-
-// public class SingleDataSetTest {
-// private final IPlanExecutor queryExecutor = new PlanExecutor();
-// private final Planner processor = new Planner();
-//
-// private final String[] sqls = {
-// "CREATE DATABASE root.vehicle",
-// "CREATE DATABASE root.test",
-// "CREATE TIMESERIES root.vehicle.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
-// "CREATE TIMESERIES root.vehicle.d0.s1 WITH DATATYPE=TEXT, ENCODING=PLAIN",
-// "CREATE TIMESERIES root.test.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
-// "CREATE TIMESERIES root.test.d0.s1 WITH DATATYPE=TEXT, ENCODING=PLAIN",
-// "CREATE TIMESERIES root.test.d1.`\"s3+xy\"` WITH DATATYPE=TEXT, ENCODING=PLAIN"
-// };
-//
-// public SingleDataSetTest() throws QueryProcessException {}
-//
-// @Before
-// public void setUp() throws Exception {
-// EnvironmentUtils.envSetUp();
-// for (String sql : sqls) {
-// queryExecutor.processNonQuery(processor.parseSQLToPhysicalPlan(sql));
-// }
-// }
-//
-// @After
-// public void tearDown() throws Exception {
-// EnvironmentUtils.cleanEnv();
-// }
-//
-// @Test
-// public void countDevice()
-// throws QueryProcessException, TException, StorageEngineException,
-// QueryFilterOptimizationException, MetadataException, IOException, InterruptedException,
-// SQLException {
-// PhysicalPlan plan = processor.parseSQLToPhysicalPlan("count devices");
-// QueryDataSet dataSet = queryExecutor.processQuery(plan, EnvironmentUtils.TEST_QUERY_CONTEXT);
-// Assert.assertTrue(dataSet instanceof SingleDataSet);
-// Assert.assertEquals("[devices]", dataSet.getPaths().toString());
-// while (dataSet.hasNext()) {
-// RowRecord record = dataSet.next();
-// Assert.assertEquals("0\t3", record.toString());
-// }
-// }
-//
-// @Test
-// public void countTimeSeries()
-// throws QueryProcessException, TException, StorageEngineException,
-// QueryFilterOptimizationException, MetadataException, IOException, InterruptedException,
-// SQLException {
-// PhysicalPlan plan = processor.parseSQLToPhysicalPlan("count TimeSeries");
-// QueryDataSet dataSet = queryExecutor.processQuery(plan, EnvironmentUtils.TEST_QUERY_CONTEXT);
-// Assert.assertTrue(dataSet instanceof SingleDataSet);
-// Assert.assertEquals("[count]", dataSet.getPaths().toString());
-// while (dataSet.hasNext()) {
-// RowRecord record = dataSet.next();
-// Assert.assertEquals("0\t5", record.toString());
-// }
-// }
-//
-// @Test
-// public void countStorageGroup()
-// throws TException, StorageEngineException, QueryFilterOptimizationException,
-// MetadataException, IOException, InterruptedException, SQLException,
-// QueryProcessException {
-// PhysicalPlan plan = processor.parseSQLToPhysicalPlan("count databases");
-// QueryDataSet dataSet = queryExecutor.processQuery(plan, EnvironmentUtils.TEST_QUERY_CONTEXT);
-// Assert.assertTrue(dataSet instanceof SingleDataSet);
-// Assert.assertEquals("[database]", dataSet.getPaths().toString());
-// while (dataSet.hasNext()) {
-// RowRecord record = dataSet.next();
-// Assert.assertEquals("0\t2", record.toString());
-// }
-// }
-//
-// @Test
-// public void countNodes()
-// throws QueryProcessException, TException, StorageEngineException,
-// QueryFilterOptimizationException, MetadataException, IOException, InterruptedException,
-// SQLException {
-// PhysicalPlan plan = processor.parseSQLToPhysicalPlan("count nodes root.test.** level=2");
-// QueryDataSet dataSet = queryExecutor.processQuery(plan, EnvironmentUtils.TEST_QUERY_CONTEXT);
-// Assert.assertTrue(dataSet instanceof SingleDataSet);
-// Assert.assertEquals("[count]", dataSet.getPaths().toString());
-// while (dataSet.hasNext()) {
-// RowRecord record = dataSet.next();
-// Assert.assertEquals("0\t2", record.toString());
-// }
-// }
-// }
diff --git a/server/src/test/java/org/apache/iotdb/db/tools/MLogParserTest.java b/server/src/test/java/org/apache/iotdb/db/tools/MLogParserTest.java
index 4d78adbae9..ab69d3ba72 100644
--- a/server/src/test/java/org/apache/iotdb/db/tools/MLogParserTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/tools/MLogParserTest.java
@@ -24,7 +24,7 @@ import org.apache.iotdb.commons.exception.MetadataException;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.metadata.MetadataConstant;
-import org.apache.iotdb.db.metadata.plan.schemaregion.impl.SchemaRegionPlanFactory;
+import org.apache.iotdb.db.metadata.plan.schemaregion.impl.write.SchemaRegionWritePlanFactory;
import org.apache.iotdb.db.metadata.schemaregion.SchemaEngine;
import org.apache.iotdb.db.tools.schema.MLogParser;
import org.apache.iotdb.db.utils.EnvironmentUtils;
@@ -92,7 +92,7 @@ public class MLogParserTest {
schemaEngine
.getSchemaRegion(new SchemaRegionId(schemaRegionIds[i]))
.createTimeseries(
- SchemaRegionPlanFactory.getCreateTimeSeriesPlan(
+ SchemaRegionWritePlanFactory.getCreateTimeSeriesPlan(
new PartialPath("root.sg" + i + "." + "device" + j + "." + "s" + k),
TSDataType.INT32,
TSEncoding.PLAIN,