You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2021/06/15 13:16:02 UTC
[iotdb] branch rel/0.12 updated: [To rel/0.12]TTL can be set to any
path (#3389)
This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch rel/0.12
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/0.12 by this push:
new 2488ebb [To rel/0.12]TTL can be set to any path (#3389)
2488ebb is described below
commit 2488ebbaa02d2397f4e215d269017afce8d1fe73
Author: ZhaoXin <x_...@163.com>
AuthorDate: Tue Jun 15 21:15:23 2021 +0800
[To rel/0.12]TTL can be set to any path (#3389)
---
.../org/apache/iotdb/db/qp/executor/PlanExecutor.java | 8 ++++++--
.../org/apache/iotdb/db/integration/IoTDBTtlIT.java | 17 +++++++++++++++++
2 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
index b07750f..073e718 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
@@ -1130,8 +1130,12 @@ public class PlanExecutor implements IPlanExecutor {
private void operateTTL(SetTTLPlan plan) throws QueryProcessException {
try {
- IoTDB.metaManager.setTTL(plan.getStorageGroup(), plan.getDataTTL());
- StorageEngine.getInstance().setTTL(plan.getStorageGroup(), plan.getDataTTL());
+ List<PartialPath> storageGroupPaths =
+ IoTDB.metaManager.getStorageGroupPaths(plan.getStorageGroup());
+ for (PartialPath storagePath : storageGroupPaths) {
+ IoTDB.metaManager.setTTL(storagePath, plan.getDataTTL());
+ StorageEngine.getInstance().setTTL(storagePath, plan.getDataTTL());
+ }
} catch (MetadataException e) {
throw new QueryProcessException(e);
} catch (IOException e) {
diff --git a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBTtlIT.java b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBTtlIT.java
index 62f458e..3b5756e 100644
--- a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBTtlIT.java
+++ b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBTtlIT.java
@@ -210,4 +210,21 @@ public class IoTDBTtlIT {
IoTDBDescriptor.getInstance().getConfig().setDefaultTTL(Long.MAX_VALUE);
}
}
+
+ @Test
+ public void testTTLOnAnyPath() throws SQLException {
+ try (IoTDBConnection connection =
+ (IoTDBConnection)
+ DriverManager.getConnection(
+ Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
+ Statement statement = connection.createStatement()) {
+ statement.execute("SET STORAGE GROUP TO root.group1");
+ statement.execute("SET STORAGE GROUP TO root.group2.sgroup1");
+ statement.execute("SET TTL TO root.group2 10000");
+ String result = doQuery(statement, "SHOW ALL TTL");
+ assertTrue(
+ result.equals("root.group1,null\n" + "root.group2.sgroup1,10000\n")
+ || result.equals("root.group2.sgroup1 10000\n" + "root.group1,null\n"));
+ }
+ }
}