You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hu...@apache.org on 2023/02/17 02:26:06 UTC
[iotdb] 01/01: [IOTDB-5538] Deprecate configuration parameter `max_deduplicated_path_num`
This is an automated email from the ASF dual-hosted git repository.
hui pushed a commit to branch lmh/rmParam
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 5764b867c2b9c0d52a0364191c3e72d36a55de31
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Fri Feb 17 10:25:36 2023 +0800
[IOTDB-5538] Deprecate configuration parameter `max_deduplicated_path_num`
---
docs/UserGuide/Reference/Common-Config-Manual.md | 9 -
.../zh/UserGuide/Reference/Common-Config-Manual.md | 9 -
.../iotdb/it/env/cluster/MppCommonConfig.java | 6 -
.../it/env/cluster/MppSharedCommonConfig.java | 7 -
.../iotdb/it/env/remote/RemoteCommonConfig.java | 5 -
.../org/apache/iotdb/itbase/env/CommonConfig.java | 2 -
.../iotdb/db/it/query/IoTDBPaginationIT.java | 9 -
.../db/integration/IoTDBQueryMemoryControlIT.java | 277 ---------------------
.../db/integration/env/StandaloneEnvConfig.java | 7 -
.../resources/conf/iotdb-common.properties | 5 -
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 10 -
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 12 -
.../exception/sql/PathNumOverLimitException.java | 33 ---
.../mpp/common/schematree/ClusterSchemaTree.java | 8 +-
.../plan/analyze/ColumnPaginationController.java | 34 +--
15 files changed, 13 insertions(+), 420 deletions(-)
diff --git a/docs/UserGuide/Reference/Common-Config-Manual.md b/docs/UserGuide/Reference/Common-Config-Manual.md
index b67cd1e92e..605ae340cd 100644
--- a/docs/UserGuide/Reference/Common-Config-Manual.md
+++ b/docs/UserGuide/Reference/Common-Config-Manual.md
@@ -518,15 +518,6 @@ Different configuration parameters take effect in the following three ways:
|Default| true |
|Effective|After restarting system|
-* max\_deduplicated\_path\_num
-
-|Name| max\_deduplicated\_path\_num |
-|:---:|:---|
-|Description| allowed max numbers of deduplicated path in one query. |
-|Type| Int32 |
-|Default| 1000 |
-|Effective|After restarting system|
-
* mpp\_data\_exchange\_core\_pool\_size
| Name | mpp\_data\_exchange\_core\_pool\_size |
diff --git a/docs/zh/UserGuide/Reference/Common-Config-Manual.md b/docs/zh/UserGuide/Reference/Common-Config-Manual.md
index 9ce344097d..74b488806d 100644
--- a/docs/zh/UserGuide/Reference/Common-Config-Manual.md
+++ b/docs/zh/UserGuide/Reference/Common-Config-Manual.md
@@ -573,15 +573,6 @@ IoTDB ConfigNode 和 DataNode 的公共配置参数位于 `conf` 目录下。
| 默认值 | true |
| 改后生效方式 | 重启服务生效 |
-* max\_deduplicated\_path\_num
-
-|名字| max\_deduplicated\_path\_num |
-|:---:|:---|
-|描述| 单次查询允许的最大路径数。 |
-|类型| Int32 |
-|默认值| 1000 |
-|改后生效方式|重启服务生效|
-
* mpp\_data\_exchange\_core\_pool\_size
| 名字 | mpp\_data\_exchange\_core\_pool\_size |
diff --git a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/MppCommonConfig.java b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/MppCommonConfig.java
index 389d0f383a..4518e2531d 100644
--- a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/MppCommonConfig.java
+++ b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/MppCommonConfig.java
@@ -84,12 +84,6 @@ public class MppCommonConfig extends MppBaseConfig implements CommonConfig {
return this;
}
- @Override
- public CommonConfig setMaxQueryDeduplicatedPathNum(int maxQueryDeduplicatedPathNum) {
- setProperty("max_deduplicated_path_num", String.valueOf(maxQueryDeduplicatedPathNum));
- return this;
- }
-
@Override
public CommonConfig setUdfMemoryBudgetInMB(float udfCollectorMemoryBudgetInMB) {
// udf_memory_budget_in_mb
diff --git a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/MppSharedCommonConfig.java b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/MppSharedCommonConfig.java
index 26e6a1d3ba..32e92e7669 100644
--- a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/MppSharedCommonConfig.java
+++ b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/MppSharedCommonConfig.java
@@ -72,13 +72,6 @@ public class MppSharedCommonConfig implements CommonConfig {
return this;
}
- @Override
- public CommonConfig setMaxQueryDeduplicatedPathNum(int maxQueryDeduplicatedPathNum) {
- cnConfig.setMaxQueryDeduplicatedPathNum(maxQueryDeduplicatedPathNum);
- dnConfig.setMaxQueryDeduplicatedPathNum(maxQueryDeduplicatedPathNum);
- return this;
- }
-
@Override
public CommonConfig setConfigNodeRegionRatisRPCLeaderElectionTimeoutMaxMs(int maxMs) {
cnConfig.setConfigNodeRegionRatisRPCLeaderElectionTimeoutMaxMs(maxMs);
diff --git a/integration-test/src/main/java/org/apache/iotdb/it/env/remote/RemoteCommonConfig.java b/integration-test/src/main/java/org/apache/iotdb/it/env/remote/RemoteCommonConfig.java
index 9312a0f52d..b47d0cc441 100644
--- a/integration-test/src/main/java/org/apache/iotdb/it/env/remote/RemoteCommonConfig.java
+++ b/integration-test/src/main/java/org/apache/iotdb/it/env/remote/RemoteCommonConfig.java
@@ -51,11 +51,6 @@ public class RemoteCommonConfig implements CommonConfig {
return this;
}
- @Override
- public CommonConfig setMaxQueryDeduplicatedPathNum(int maxQueryDeduplicatedPathNum) {
- return this;
- }
-
@Override
public CommonConfig setConfigNodeRegionRatisRPCLeaderElectionTimeoutMaxMs(int maxMs) {
return this;
diff --git a/integration-test/src/main/java/org/apache/iotdb/itbase/env/CommonConfig.java b/integration-test/src/main/java/org/apache/iotdb/itbase/env/CommonConfig.java
index 81a50b6ebe..416a043345 100644
--- a/integration-test/src/main/java/org/apache/iotdb/itbase/env/CommonConfig.java
+++ b/integration-test/src/main/java/org/apache/iotdb/itbase/env/CommonConfig.java
@@ -33,8 +33,6 @@ public interface CommonConfig {
CommonConfig setCompressor(String compressor);
- CommonConfig setMaxQueryDeduplicatedPathNum(int maxQueryDeduplicatedPathNum);
-
CommonConfig setConfigNodeRegionRatisRPCLeaderElectionTimeoutMaxMs(int maxMs);
CommonConfig setUdfMemoryBudgetInMB(float udfCollectorMemoryBudgetInMB);
diff --git a/integration-test/src/test/java/org/apache/iotdb/db/it/query/IoTDBPaginationIT.java b/integration-test/src/test/java/org/apache/iotdb/db/it/query/IoTDBPaginationIT.java
index 024c6877e5..0e1fb007f5 100644
--- a/integration-test/src/test/java/org/apache/iotdb/db/it/query/IoTDBPaginationIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/db/it/query/IoTDBPaginationIT.java
@@ -33,7 +33,6 @@ import org.junit.runner.RunWith;
import java.util.Arrays;
import java.util.List;
-import static org.apache.iotdb.db.it.utils.TestUtils.assertTestFail;
import static org.apache.iotdb.db.it.utils.TestUtils.prepareData;
import static org.apache.iotdb.db.it.utils.TestUtils.resultSetEqualTest;
@@ -82,7 +81,6 @@ public class IoTDBPaginationIT {
@BeforeClass
public static void setUp() throws InterruptedException {
- EnvFactory.getEnv().getConfig().getCommonConfig().setMaxQueryDeduplicatedPathNum(2);
EnvFactory.getEnv().initClusterEnvironment();
prepareData(SQLs);
}
@@ -137,11 +135,4 @@ public class IoTDBPaginationIT {
resultSetEqualTest(querySQLs.get(0), expectHeaders.get(0), retArrays.get(0));
}
}
-
- @Test
- public void pathNumOverLimitTest() {
- assertTestFail(
- "select * from root.vehicle.d0",
- "Too many paths in one query! Currently allowed max deduplicated path number is 2.");
- }
}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBQueryMemoryControlIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBQueryMemoryControlIT.java
deleted file mode 100644
index fa45615ebf..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBQueryMemoryControlIT.java
+++ /dev/null
@@ -1,277 +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.integration;
-
-import org.apache.iotdb.integration.env.ConfigFactory;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-@Category({LocalStandaloneTest.class, ClusterTest.class})
-public class IoTDBQueryMemoryControlIT {
-
- private static final String[] sqls =
- new String[] {
- "CREATE DATABASE root.ln",
- "create timeseries root.ln.wf01.wt01 with datatype=INT32,encoding=PLAIN",
- "create timeseries root.ln.wf01.wt02 with datatype=INT32,encoding=PLAIN",
- "create timeseries root.ln.wf01.wt03 with datatype=INT32,encoding=PLAIN",
- "create timeseries root.ln.wf01.wt04 with datatype=INT32,encoding=PLAIN",
- "create timeseries root.ln.wf01.wt05 with datatype=INT32,encoding=PLAIN",
- "create timeseries root.ln.wf02.wt01 with datatype=FLOAT,encoding=RLE",
- "create timeseries root.ln.wf02.wt02 with datatype=FLOAT,encoding=RLE",
- "create timeseries root.ln.wf02.wt03 with datatype=FLOAT,encoding=RLE",
- "create timeseries root.ln.wf02.wt04 with datatype=FLOAT,encoding=RLE",
- "create timeseries root.ln.wf02.wt05 with datatype=FLOAT,encoding=RLE",
- "create timeseries root.ln.wf03.wt01 with datatype=DOUBLE,encoding=PLAIN",
- "create timeseries root.ln.wf03.wt02 with datatype=DOUBLE,encoding=PLAIN",
- "create timeseries root.ln.wf03.wt03 with datatype=DOUBLE,encoding=PLAIN",
- "create timeseries root.ln.wf03.wt04 with datatype=DOUBLE,encoding=PLAIN",
- "create timeseries root.ln.wf03.wt05 with datatype=DOUBLE,encoding=PLAIN",
- };
-
- @BeforeClass
- public static void setUp() throws Exception {
- ConfigFactory.getConfig().setMaxQueryDeduplicatedPathNum(10);
- EnvFactory.getEnv().initBeforeClass();
- createTimeSeries();
- }
-
- private static void createTimeSeries() {
- try (Connection conn = EnvFactory.getEnv().getConnection();
- Statement statement = conn.createStatement()) {
- for (String sql : sqls) {
- statement.execute(sql);
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @AfterClass
- public static void tearDown() throws Exception {
- EnvFactory.getEnv().cleanAfterClass();
- ConfigFactory.getConfig().setMaxQueryDeduplicatedPathNum(1000);
- }
-
- @Test
- public void selectWildcard() {
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- try {
- statement.execute("select * from root.**");
- } catch (SQLException e) {
- assertTrue(e.getMessage().contains("Too many paths in one query!"));
- }
-
- try {
- statement.execute("select count(*) from root");
- } catch (SQLException e) {
- assertTrue(e.getMessage().contains("Too many paths in one query!"));
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectWildcardSlimit10() {
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- statement.execute("select * from root.** slimit 10");
- statement.execute("select count(*) from root slimit 10");
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectWildcardSlimit11() {
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- try {
- statement.execute("select * from root.** slimit 11");
- } catch (SQLException e) {
- assertTrue(e.getMessage().contains("Too many paths in one query!"));
- }
-
- try {
- statement.execute("select count(*) from root slimit 11");
- } catch (SQLException e) {
- assertTrue(e.getMessage().contains("Too many paths in one query!"));
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectWildcardWildcardWildcardSlimit5Soffset7() {
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- statement.execute("select wf01.*, wf02.*, wf03.* from root.ln slimit 5 soffset 7");
- ResultSetMetaData resultSetMetaData = statement.getResultSet().getMetaData();
- assertEquals(1 + 5, resultSetMetaData.getColumnCount());
- for (int i = 2; i < 3 + 2; ++i) {
- assertTrue(resultSetMetaData.getColumnName(i).contains("root.ln.wf02.wt0"));
- }
- for (int i = 3 + 2; i < 5 + 2; ++i) {
- assertTrue(resultSetMetaData.getColumnName(i).contains("root.ln.wf03.wt0"));
- }
-
- statement.execute(
- "select count(wf01.*), avg(wf02.*), sum(wf03.*) from root.ln slimit 5 soffset 7");
- resultSetMetaData = statement.getResultSet().getMetaData();
- assertEquals(5, resultSetMetaData.getColumnCount());
- for (int i = 1; i < 3 + 1; ++i) {
- assertTrue(resultSetMetaData.getColumnName(i).contains("root.ln.wf02.wt0"));
- }
- for (int i = 3 + 1; i < 5 + 1; ++i) {
- assertTrue(resultSetMetaData.getColumnName(i).contains("root.ln.wf03.wt0"));
- }
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectWildcardWildcardWildcardSlimit5Soffset5() {
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- statement.execute("select wf01.*, wf02.*, wf03.* from root.ln slimit 5 soffset 5");
- ResultSetMetaData resultSetMetaData = statement.getResultSet().getMetaData();
- assertEquals(1 + 5, resultSetMetaData.getColumnCount());
- for (int i = 2; i < 5 + 2; ++i) {
- assertTrue(resultSetMetaData.getColumnName(i).contains("root.ln.wf02.wt0"));
- }
-
- statement.execute(
- "select count(wf01.*), sum(wf02.*), avg(wf03.*) from root.ln slimit 5 soffset 5");
- resultSetMetaData = statement.getResultSet().getMetaData();
- assertEquals(5, resultSetMetaData.getColumnCount());
- for (int i = 1; i < 5 + 1; ++i) {
- assertTrue(resultSetMetaData.getColumnName(i).contains("root.ln.wf02.wt0"));
- }
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectWildcardWildcardWildcardSlimit15Soffset5() {
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- statement.execute("select wf01.*, wf03.*, wf02.* from root.ln slimit 15 soffset 5");
- ResultSetMetaData resultSetMetaData = statement.getResultSet().getMetaData();
- assertEquals(1 + 10, resultSetMetaData.getColumnCount());
- for (int i = 2; i < 5 + 2; ++i) {
- assertTrue(resultSetMetaData.getColumnName(i).contains("root.ln.wf03.wt0"));
- }
- for (int i = 5 + 2; i < 10 + 2; ++i) {
- assertTrue(resultSetMetaData.getColumnName(i).contains("root.ln.wf02.wt0"));
- }
-
- statement.execute(
- "select sum(wf01.*), avg(wf03.*), count(wf02.*) from root.ln slimit 15 soffset 5");
- resultSetMetaData = statement.getResultSet().getMetaData();
- assertEquals(10, resultSetMetaData.getColumnCount());
- for (int i = 1; i < 5 + 1; ++i) {
- assertTrue(resultSetMetaData.getColumnName(i).contains("root.ln.wf03.wt0"));
- }
- for (int i = 5 + 1; i < 10 + 1; ++i) {
- assertTrue(resultSetMetaData.getColumnName(i).contains("root.ln.wf02.wt0"));
- }
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectWildcardWildcardWildcardSlimit15Soffset4() {
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- try {
- statement.execute("select wf01.*, wf02.*, wf03.* from root.ln slimit 15 soffset 4");
- } catch (SQLException e) {
- assertTrue(e.getMessage().contains("Too many paths in one query!"));
- }
- try {
- statement.execute(
- "select count(wf01.*), avg(wf02.*), sum(wf03.*) from root.ln slimit 15 soffset 4");
- } catch (SQLException e) {
- assertTrue(e.getMessage().contains("Too many paths in one query!"));
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectWildcardWildcardWildcardSlimit3Soffset4() {
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- statement.execute("select wf01.*, wf02.*, wf03.* from root.ln slimit 3 soffset 4");
- ResultSetMetaData resultSetMetaData = statement.getResultSet().getMetaData();
- assertEquals(1 + 3, resultSetMetaData.getColumnCount());
- for (int i = 2; i < 1 + 2; ++i) {
- assertTrue(resultSetMetaData.getColumnName(i).contains("root.ln.wf01.wt0"));
- }
- for (int i = 1 + 2; i < 3 + 2; ++i) {
- assertTrue(resultSetMetaData.getColumnName(i).contains("root.ln.wf02.wt0"));
- }
-
- statement.execute(
- "select sum(wf01.*), count(wf02.*), avg(wf03.*) from root.ln slimit 3 soffset 4");
- resultSetMetaData = statement.getResultSet().getMetaData();
- assertEquals(3, resultSetMetaData.getColumnCount());
- for (int i = 1; i < 1 + 1; ++i) {
- assertTrue(resultSetMetaData.getColumnName(i).contains("root.ln.wf01.wt0"));
- }
- for (int i = 1 + 1; i < 3 + 1; ++i) {
- assertTrue(resultSetMetaData.getColumnName(i).contains("root.ln.wf02.wt0"));
- }
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/env/StandaloneEnvConfig.java b/integration/src/test/java/org/apache/iotdb/db/integration/env/StandaloneEnvConfig.java
index 90d332da51..353fd3f011 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/env/StandaloneEnvConfig.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/env/StandaloneEnvConfig.java
@@ -60,13 +60,6 @@ public class StandaloneEnvConfig implements BaseConfig {
return this;
}
- public BaseConfig setMaxQueryDeduplicatedPathNum(int maxQueryDeduplicatedPathNum) {
- IoTDBDescriptor.getInstance()
- .getConfig()
- .setMaxQueryDeduplicatedPathNum(maxQueryDeduplicatedPathNum);
- return this;
- }
-
public BaseConfig setRpcThriftCompressionEnable(boolean rpcThriftCompressionEnable) {
IoTDBDescriptor.getInstance()
.getConfig()
diff --git a/node-commons/src/assembly/resources/conf/iotdb-common.properties b/node-commons/src/assembly/resources/conf/iotdb-common.properties
index 9f9054aef7..f7104a9532 100644
--- a/node-commons/src/assembly/resources/conf/iotdb-common.properties
+++ b/node-commons/src/assembly/resources/conf/iotdb-common.properties
@@ -374,11 +374,6 @@ cluster_name=defaultCluster
# Datatype: boolean
# enable_last_cache=true
-# Allowed max numbers of deduplicated path in one query
-# it's just an advised value, the real limitation will be the smaller one between this and the one we calculated
-# Datatype: int
-# max_deduplicated_path_num=1000
-
# Core size of ThreadPool of MPP data exchange
# Datatype: int
# mpp_data_exchange_core_pool_size=10
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 749c06efd3..88da5940df 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -141,8 +141,6 @@ public class IoTDBConfig {
/** Memory allocated for the consensus layer */
private long allocateMemoryForConsensus = Runtime.getRuntime().maxMemory() / 10;
- private volatile int maxQueryDeduplicatedPathNum = 1000;
-
/** Ratio of memory allocated for buffered arrays */
private double bufferedArraysMemoryProportion = 0.6;
@@ -2486,14 +2484,6 @@ public class IoTDBConfig {
RpcTransportFactory.setDefaultBufferCapacity(this.thriftDefaultBufferSize);
}
- public int getMaxQueryDeduplicatedPathNum() {
- return maxQueryDeduplicatedPathNum;
- }
-
- public void setMaxQueryDeduplicatedPathNum(int maxQueryDeduplicatedPathNum) {
- this.maxQueryDeduplicatedPathNum = maxQueryDeduplicatedPathNum;
- }
-
public int getCheckPeriodWhenInsertBlocked() {
return checkPeriodWhenInsertBlocked;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 8c5b060644..9c929e5eb9 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -1401,12 +1401,6 @@ public class IoTDBDescriptor {
// update tsfile-format config
loadTsFileProps(properties);
- // update max_deduplicated_path_num
- conf.setMaxQueryDeduplicatedPathNum(
- Integer.parseInt(
- properties.getProperty(
- "max_deduplicated_path_num",
- Integer.toString(conf.getMaxQueryDeduplicatedPathNum()))));
// update frequency_interval_in_minute
conf.setFrequencyIntervalInMinute(
Integer.parseInt(
@@ -1538,12 +1532,6 @@ public class IoTDBDescriptor {
initSchemaMemoryAllocate(properties);
initStorageEngineAllocate(properties);
- conf.setMaxQueryDeduplicatedPathNum(
- Integer.parseInt(
- properties.getProperty(
- "max_deduplicated_path_num",
- Integer.toString(conf.getMaxQueryDeduplicatedPathNum()))));
-
conf.setEnableQueryMemoryEstimation(
Boolean.parseBoolean(
properties.getProperty(
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/sql/PathNumOverLimitException.java b/server/src/main/java/org/apache/iotdb/db/exception/sql/PathNumOverLimitException.java
deleted file mode 100644
index 4160f06e95..0000000000
--- a/server/src/main/java/org/apache/iotdb/db/exception/sql/PathNumOverLimitException.java
+++ /dev/null
@@ -1,33 +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.exception.sql;
-
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-
-public class PathNumOverLimitException extends SemanticException {
-
- public PathNumOverLimitException() {
- super(
- String.format(
- "Too many paths in one query! Currently allowed max deduplicated path number is %d. "
- + "Please use slimit or adjust max_deduplicated_path_num in iotdb-common.properties.",
- IoTDBDescriptor.getInstance().getConfig().getMaxQueryDeduplicatedPathNum()));
- }
-}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/ClusterSchemaTree.java b/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/ClusterSchemaTree.java
index 3708dd77ea..b114f01b27 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/ClusterSchemaTree.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/ClusterSchemaTree.java
@@ -23,7 +23,6 @@ import org.apache.iotdb.commons.path.MeasurementPath;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.utils.PathUtils;
import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.mpp.common.schematree.node.SchemaEntityNode;
import org.apache.iotdb.db.mpp.common.schematree.node.SchemaInternalNode;
import org.apache.iotdb.db.mpp.common.schematree.node.SchemaMeasurementNode;
@@ -84,12 +83,7 @@ public class ClusterSchemaTree implements ISchemaTree {
@Override
public Pair<List<MeasurementPath>, Integer> searchMeasurementPaths(PartialPath pathPattern) {
SchemaTreeVisitorWithLimitOffsetWrapper<MeasurementPath> visitor =
- SchemaTreeVisitorFactory.createSchemaTreeMeasurementVisitor(
- root,
- pathPattern,
- false,
- IoTDBDescriptor.getInstance().getConfig().getMaxQueryDeduplicatedPathNum() + 1,
- 0);
+ SchemaTreeVisitorFactory.createSchemaTreeMeasurementVisitor(root, pathPattern, false, 0, 0);
return new Pair<>(visitor.getAllResult(), visitor.getNextOffset());
}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ColumnPaginationController.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ColumnPaginationController.java
index 082428664d..65e1d6b829 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ColumnPaginationController.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ColumnPaginationController.java
@@ -19,43 +19,39 @@
package org.apache.iotdb.db.mpp.plan.analyze;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.exception.sql.PathNumOverLimitException;
-
/** apply MaxQueryDeduplicatedPathNum and SLIMIT & SOFFSET */
public class ColumnPaginationController {
- private int curLimit =
- IoTDBDescriptor.getInstance().getConfig().getMaxQueryDeduplicatedPathNum() + 1;
- private int curOffset;
-
- // records the path number that the SchemaProcessor totally returned
- private int consumed = 0;
-
// for ALIGN BY DEVICE / DISABLE ALIGN / GROUP BY LEVEL / LAST, controller does is disabled
private final boolean isDisabled;
+ private final boolean hasLimit;
+
+ private int curLimit;
+ private int curOffset;
+
public ColumnPaginationController(int seriesLimit, int seriesOffset, boolean isDisabled) {
+ this.isDisabled = isDisabled;
+
// for series limit, the default value is 0, which means no limit
- this.curLimit = seriesLimit == 0 ? this.curLimit : Math.min(seriesLimit, this.curLimit);
+ this.hasLimit = seriesLimit == 0;
+ this.curLimit = seriesLimit;
+
// series offset for result set. The default value is 0
this.curOffset = seriesOffset;
- this.isDisabled = isDisabled;
}
public boolean hasCurOffset() {
if (isDisabled) {
return false;
}
-
return curOffset != 0;
}
public boolean hasCurLimit() {
- if (isDisabled) {
+ if (isDisabled || !hasLimit) {
return true;
}
-
return curLimit != 0;
}
@@ -63,17 +59,11 @@ public class ColumnPaginationController {
if (isDisabled) {
return;
}
-
curOffset--;
}
public void consumeLimit() {
- consumed++;
- if (consumed > IoTDBDescriptor.getInstance().getConfig().getMaxQueryDeduplicatedPathNum()) {
- throw new PathNumOverLimitException();
- }
-
- if (isDisabled) {
+ if (isDisabled || !hasLimit) {
return;
}
curLimit--;