You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by yo...@apache.org on 2023/02/02 15:14:18 UTC
[iotdb] 01/02: Finish DataNode part
This is an automated email from the ASF dual-hosted git repository.
yongzao pushed a commit to branch Support-cluster-Database-heterogeneous-by-ALTER-SQL
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit a6b67162adf0fd9328150e2cb0a055c71f310aec
Author: YongzaoDan <53...@qq.com>
AuthorDate: Thu Feb 2 16:53:53 2023 +0800
Finish DataNode part
---
.../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 7 +++-
.../org/apache/iotdb/db/audit/AuditLogger.java | 2 +-
.../org/apache/iotdb/db/auth/AuthorityChecker.java | 2 +-
.../apache/iotdb/db/client/ConfigNodeClient.java | 27 ++++++++++--
.../iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java | 5 ++-
.../db/mpp/plan/analyze/cache/PartitionCache.java | 4 +-
.../plan/execution/config/ConfigTaskVisitor.java | 13 ++++--
.../config/executor/ClusterConfigTaskExecutor.java | 43 +++++++++++++++----
.../config/executor/IConfigTaskExecutor.java | 7 ++--
...orageGroupTask.java => DatabaseSchemaTask.java} | 48 ++++++++++++----------
.../iotdb/db/mpp/plan/parser/ASTVisitor.java | 35 ++++++++++------
.../db/mpp/plan/parser/StatementGenerator.java | 5 ++-
.../iotdb/db/mpp/plan/statement/StatementType.java | 2 +-
.../db/mpp/plan/statement/StatementVisitor.java | 10 +++--
...Statement.java => DatabaseSchemaStatement.java} | 27 ++++++++++--
.../service/thrift/impl/ClientRPCServiceImpl.java | 6 +--
.../db/sync/transport/server/ReceiverManager.java | 5 ++-
.../src/main/thrift/confignode.thrift | 16 +++++---
18 files changed, 183 insertions(+), 81 deletions(-)
diff --git a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
index cc8807580f..8fde528c21 100644
--- a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
+++ b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
@@ -38,7 +38,7 @@ statement
ddlStatement
: createStorageGroup | createTimeseries | createSchemaTemplate | createTimeseriesOfSchemaTemplate
| createFunction | createTrigger | createContinuousQuery
- | alterTimeseries | deleteStorageGroup | deleteTimeseries | deletePartition | deleteTimeseriesOfSchemaTemplate
+ | alterTimeseries | alterStorageGroup | deleteStorageGroup | deleteTimeseries | deletePartition | deleteTimeseriesOfSchemaTemplate
| dropFunction | dropTrigger | dropContinuousQuery | dropSchemaTemplate
| setTTL | unsetTTL | startTrigger | stopTrigger | setSchemaTemplate | unsetSchemaTemplate
| showStorageGroup | showDevices | showTimeseries | showChildPaths | showChildNodes
@@ -86,6 +86,11 @@ storageGroupAttributeClause
: (TTL | SCHEMA_REPLICATION_FACTOR | DATA_REPLICATION_FACTOR | TIME_PARTITION_INTERVAL | SCHEMA_REGION_GROUP_NUM | DATA_REGION_GROUP_NUM) '=' INTEGER_LITERAL
;
+// Alter StorageGroup
+alterStorageGroup
+ : ALTER (STORAGE GROUP | DATABASE) prefixPath storageGroupAttributesClause
+ ;
+
// Create Timeseries
createTimeseries
: CREATE ALIGNED TIMESERIES fullPath alignedMeasurements? #createAlignedTimeseries
diff --git a/server/src/main/java/org/apache/iotdb/db/audit/AuditLogger.java b/server/src/main/java/org/apache/iotdb/db/audit/AuditLogger.java
index a407bd7b35..4d7e7f94bd 100644
--- a/server/src/main/java/org/apache/iotdb/db/audit/AuditLogger.java
+++ b/server/src/main/java/org/apache/iotdb/db/audit/AuditLogger.java
@@ -140,7 +140,7 @@ public class AuditLogger {
case REVOKE_ROLE_PRIVILEGE:
case GRANT_WATERMARK_EMBEDDING:
case REVOKE_WATERMARK_EMBEDDING:
- case SET_STORAGE_GROUP:
+ case STORAGE_GROUP_SCHEMA:
case DELETE_STORAGE_GROUP:
case CREATE_TIMESERIES:
case CREATE_ALIGNED_TIMESERIES:
diff --git a/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java b/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
index 99e9fbbbb1..62a89050bf 100644
--- a/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
+++ b/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
@@ -159,7 +159,7 @@ public class AuthorityChecker {
return PrivilegeType.GRANT_USER_ROLE.ordinal();
case REVOKE_USER_ROLE:
return PrivilegeType.REVOKE_USER_ROLE.ordinal();
- case SET_STORAGE_GROUP:
+ case STORAGE_GROUP_SCHEMA:
case TTL:
return PrivilegeType.CREATE_DATABASE.ordinal();
case DELETE_STORAGE_GROUP:
diff --git a/server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java b/server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java
index 48133e9981..8ddf9dccec 100644
--- a/server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java
+++ b/server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java
@@ -97,7 +97,6 @@ import org.apache.iotdb.confignode.rpc.thrift.TSetDataNodeStatusReq;
import org.apache.iotdb.confignode.rpc.thrift.TSetDataReplicationFactorReq;
import org.apache.iotdb.confignode.rpc.thrift.TSetSchemaReplicationFactorReq;
import org.apache.iotdb.confignode.rpc.thrift.TSetSchemaTemplateReq;
-import org.apache.iotdb.confignode.rpc.thrift.TSetStorageGroupReq;
import org.apache.iotdb.confignode.rpc.thrift.TSetTimePartitionIntervalReq;
import org.apache.iotdb.confignode.rpc.thrift.TShowCQResp;
import org.apache.iotdb.confignode.rpc.thrift.TShowClusterResp;
@@ -113,6 +112,7 @@ import org.apache.iotdb.confignode.rpc.thrift.TShowStorageGroupResp;
import org.apache.iotdb.confignode.rpc.thrift.TShowTrailReq;
import org.apache.iotdb.confignode.rpc.thrift.TShowTrailResp;
import org.apache.iotdb.confignode.rpc.thrift.TShowVariablesResp;
+import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchema;
import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchemaResp;
import org.apache.iotdb.confignode.rpc.thrift.TSystemConfigurationResp;
import org.apache.iotdb.confignode.rpc.thrift.TUnsetSchemaTemplateReq;
@@ -492,10 +492,31 @@ public class ConfigNodeClient implements IConfigNodeRPCService.Iface, ThriftClie
}
@Override
- public TSStatus setStorageGroup(TSetStorageGroupReq req) throws TException {
+ public TSStatus setDatabase(TStorageGroupSchema databaseSchema) throws TException {
for (int i = 0; i < RETRY_NUM; i++) {
try {
- TSStatus status = client.setStorageGroup(req);
+ TSStatus status = client.setDatabase(databaseSchema);
+ if (!updateConfigNodeLeader(status)) {
+ return status;
+ }
+ } catch (TException e) {
+ logger.warn(
+ "Failed to connect to ConfigNode {} from DataNode {} when executing {}",
+ configNode,
+ config.getAddressAndPort(),
+ Thread.currentThread().getStackTrace()[1].getMethodName());
+ configLeader = null;
+ }
+ waitAndReconnect();
+ }
+ throw new TException(MSG_RECONNECTION_FAIL);
+ }
+
+ @Override
+ public TSStatus alterDatabase(TStorageGroupSchema databaseSchema) throws TException {
+ for (int i = 0; i < RETRY_NUM; i++) {
+ try {
+ TSStatus status = client.alterDatabase(databaseSchema);
if (!updateConfigNodeLeader(status)) {
return status;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java
index 3ad3545145..b43c20b55b 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java
@@ -100,7 +100,7 @@ import org.apache.iotdb.db.mpp.plan.statement.metadata.CountTimeSeriesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateAlignedTimeSeriesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateMultiTimeSeriesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateTimeSeriesStatement;
-import org.apache.iotdb.db.mpp.plan.statement.metadata.SetStorageGroupStatement;
+import org.apache.iotdb.db.mpp.plan.statement.metadata.DatabaseSchemaStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowChildNodesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowChildPathsStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowClusterStatement;
@@ -1976,7 +1976,8 @@ public class AnalyzeVisitor extends StatementVisitor<Analysis, MPPQueryContext>
}
for (PartialPath sgPath : sgSet) {
- SetStorageGroupStatement statement = new SetStorageGroupStatement();
+ DatabaseSchemaStatement statement =
+ new DatabaseSchemaStatement(DatabaseSchemaStatement.DatabaseSchemaStatementType.CREATE);
statement.setStorageGroupPath(sgPath);
executeSetStorageGroupStatement(statement);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/cache/PartitionCache.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/cache/PartitionCache.java
index 26e60f8782..16dff082fe 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/cache/PartitionCache.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/cache/PartitionCache.java
@@ -38,7 +38,6 @@ import org.apache.iotdb.commons.partition.executor.SeriesPartitionExecutor;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.utils.PathUtils;
import org.apache.iotdb.confignode.rpc.thrift.TRegionRouteMapResp;
-import org.apache.iotdb.confignode.rpc.thrift.TSetStorageGroupReq;
import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchema;
import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchemaResp;
import org.apache.iotdb.db.client.ConfigNodeClient;
@@ -238,8 +237,7 @@ public class PartitionCache {
for (String storageGroupName : storageGroupNamesNeedCreated) {
TStorageGroupSchema storageGroupSchema = new TStorageGroupSchema();
storageGroupSchema.setName(storageGroupName);
- TSetStorageGroupReq req = new TSetStorageGroupReq(storageGroupSchema);
- TSStatus tsStatus = client.setStorageGroup(req);
+ TSStatus tsStatus = client.setDatabase(storageGroupSchema);
if (TSStatusCode.SUCCESS_STATUS.getStatusCode() == tsStatus.getCode()) {
successFullyCreatedStorageGroup.add(storageGroupName);
} else {
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ConfigTaskVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ConfigTaskVisitor.java
index 14d8fea3d1..b5d71185e6 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ConfigTaskVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ConfigTaskVisitor.java
@@ -23,6 +23,7 @@ import org.apache.iotdb.db.mpp.plan.execution.config.metadata.CountStorageGroupT
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.CreateContinuousQueryTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.CreateFunctionTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.CreateTriggerTask;
+import org.apache.iotdb.db.mpp.plan.execution.config.metadata.DatabaseSchemaTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.DeleteStorageGroupTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.DeleteTimeSeriesTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.DropContinuousQueryTask;
@@ -32,7 +33,6 @@ import org.apache.iotdb.db.mpp.plan.execution.config.metadata.GetRegionIdTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.GetSeriesSlotListTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.GetTimeSlotListTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.MigrateRegionTask;
-import org.apache.iotdb.db.mpp.plan.execution.config.metadata.SetStorageGroupTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.SetTTLTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.ShowClusterDetailsTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.ShowClusterTask;
@@ -76,6 +76,7 @@ import org.apache.iotdb.db.mpp.plan.statement.metadata.CountStorageGroupStatemen
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateContinuousQueryStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateFunctionStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateTriggerStatement;
+import org.apache.iotdb.db.mpp.plan.statement.metadata.DatabaseSchemaStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteTimeSeriesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DropContinuousQueryStatement;
@@ -85,7 +86,6 @@ import org.apache.iotdb.db.mpp.plan.statement.metadata.GetRegionIdStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.GetSeriesSlotListStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.GetTimeSlotListStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.MigrateRegionStatement;
-import org.apache.iotdb.db.mpp.plan.statement.metadata.SetStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.SetTTLStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowClusterStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowConfigNodesStatement;
@@ -138,8 +138,13 @@ public class ConfigTaskVisitor
}
@Override
- public IConfigTask visitSetStorageGroup(SetStorageGroupStatement statement, TaskContext context) {
- return new SetStorageGroupTask(statement);
+ public IConfigTask visitSetDatabase(DatabaseSchemaStatement statement, TaskContext context) {
+ return new DatabaseSchemaTask(statement);
+ }
+
+ @Override
+ public IConfigTask visitAlterDatabase(DatabaseSchemaStatement statement, TaskContext context) {
+ return new DatabaseSchemaTask(statement);
}
@Override
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
index d9fbf026b8..e835df708b 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
@@ -59,7 +59,6 @@ import org.apache.iotdb.confignode.rpc.thrift.TGetUDFTableResp;
import org.apache.iotdb.confignode.rpc.thrift.TMigrateRegionReq;
import org.apache.iotdb.confignode.rpc.thrift.TPipeSinkInfo;
import org.apache.iotdb.confignode.rpc.thrift.TRegionInfo;
-import org.apache.iotdb.confignode.rpc.thrift.TSetStorageGroupReq;
import org.apache.iotdb.confignode.rpc.thrift.TShowCQResp;
import org.apache.iotdb.confignode.rpc.thrift.TShowClusterResp;
import org.apache.iotdb.confignode.rpc.thrift.TShowConfigNodesResp;
@@ -84,10 +83,10 @@ import org.apache.iotdb.db.metadata.template.Template;
import org.apache.iotdb.db.mpp.plan.analyze.Analyzer;
import org.apache.iotdb.db.mpp.plan.execution.config.ConfigTaskResult;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.CountStorageGroupTask;
+import org.apache.iotdb.db.mpp.plan.execution.config.metadata.DatabaseSchemaTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.GetRegionIdTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.GetSeriesSlotListTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.GetTimeSlotListTask;
-import org.apache.iotdb.db.mpp.plan.execution.config.metadata.SetStorageGroupTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.ShowClusterDetailsTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.ShowClusterTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.ShowConfigNodesTask;
@@ -107,13 +106,13 @@ import org.apache.iotdb.db.mpp.plan.statement.metadata.CountStorageGroupStatemen
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateContinuousQueryStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateFunctionStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateTriggerStatement;
+import org.apache.iotdb.db.mpp.plan.statement.metadata.DatabaseSchemaStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteTimeSeriesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.GetRegionIdStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.GetSeriesSlotListStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.GetTimeSlotListStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.MigrateRegionStatement;
-import org.apache.iotdb.db.mpp.plan.statement.metadata.SetStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.SetTTLStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowClusterStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowDataNodesStatement;
@@ -200,22 +199,48 @@ public class ClusterConfigTaskExecutor implements IConfigTaskExecutor {
}
@Override
- public SettableFuture<ConfigTaskResult> setStorageGroup(
- SetStorageGroupStatement setStorageGroupStatement) {
+ public SettableFuture<ConfigTaskResult> setDatabase(
+ DatabaseSchemaStatement databaseSchemaStatement) {
SettableFuture<ConfigTaskResult> future = SettableFuture.create();
// Construct request using statement
TStorageGroupSchema storageGroupSchema =
- SetStorageGroupTask.constructStorageGroupSchema(setStorageGroupStatement);
- TSetStorageGroupReq req = new TSetStorageGroupReq(storageGroupSchema);
+ DatabaseSchemaTask.constructStorageGroupSchema(databaseSchemaStatement);
try (ConfigNodeClient configNodeClient =
CONFIG_NODE_CLIENT_MANAGER.borrowClient(ConfigNodeInfo.configNodeRegionId)) {
// Send request to some API server
- TSStatus tsStatus = configNodeClient.setStorageGroup(req);
+ TSStatus tsStatus = configNodeClient.setDatabase(storageGroupSchema);
// Get response or throw exception
if (TSStatusCode.SUCCESS_STATUS.getStatusCode() != tsStatus.getCode()) {
LOGGER.warn(
"Failed to execute create database {} in config node, status is {}.",
- setStorageGroupStatement.getStorageGroupPath(),
+ databaseSchemaStatement.getStorageGroupPath(),
+ tsStatus);
+ future.setException(new IoTDBException(tsStatus.message, tsStatus.code));
+ } else {
+ future.set(new ConfigTaskResult(TSStatusCode.SUCCESS_STATUS));
+ }
+ } catch (ClientManagerException | TException e) {
+ future.setException(e);
+ }
+ return future;
+ }
+
+ @Override
+ public SettableFuture<ConfigTaskResult> alterDatabase(
+ DatabaseSchemaStatement databaseSchemaStatement) {
+ SettableFuture<ConfigTaskResult> future = SettableFuture.create();
+ // Construct request using statement
+ TStorageGroupSchema storageGroupSchema =
+ DatabaseSchemaTask.constructStorageGroupSchema(databaseSchemaStatement);
+ try (ConfigNodeClient configNodeClient =
+ CONFIG_NODE_CLIENT_MANAGER.borrowClient(ConfigNodeInfo.configNodeRegionId)) {
+ // Send request to some API server
+ TSStatus tsStatus = configNodeClient.alterDatabase(storageGroupSchema);
+ // Get response or throw exception
+ if (TSStatusCode.SUCCESS_STATUS.getStatusCode() != tsStatus.getCode()) {
+ LOGGER.warn(
+ "Failed to execute create database {} in config node, status is {}.",
+ databaseSchemaStatement.getStorageGroupPath(),
tsStatus);
future.setException(new IoTDBException(tsStatus.message, tsStatus.code));
} else {
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/IConfigTaskExecutor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/IConfigTaskExecutor.java
index ba75d3cadd..03ac9fa524 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/IConfigTaskExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/IConfigTaskExecutor.java
@@ -26,13 +26,13 @@ import org.apache.iotdb.db.mpp.plan.statement.metadata.CountStorageGroupStatemen
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateContinuousQueryStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateFunctionStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateTriggerStatement;
+import org.apache.iotdb.db.mpp.plan.statement.metadata.DatabaseSchemaStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteTimeSeriesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.GetRegionIdStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.GetSeriesSlotListStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.GetTimeSlotListStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.MigrateRegionStatement;
-import org.apache.iotdb.db.mpp.plan.statement.metadata.SetStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.SetTTLStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowClusterStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowDataNodesStatement;
@@ -61,8 +61,9 @@ import com.google.common.util.concurrent.SettableFuture;
public interface IConfigTaskExecutor {
- SettableFuture<ConfigTaskResult> setStorageGroup(
- SetStorageGroupStatement setStorageGroupStatement);
+ SettableFuture<ConfigTaskResult> setDatabase(DatabaseSchemaStatement databaseSchemaStatement);
+
+ SettableFuture<ConfigTaskResult> alterDatabase(DatabaseSchemaStatement databaseSchemaStatement);
SettableFuture<ConfigTaskResult> showStorageGroup(
ShowStorageGroupStatement showStorageGroupStatement);
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/SetStorageGroupTask.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/DatabaseSchemaTask.java
similarity index 54%
rename from server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/SetStorageGroupTask.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/DatabaseSchemaTask.java
index c5b601a451..2771f3cb49 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/SetStorageGroupTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/DatabaseSchemaTask.java
@@ -23,51 +23,57 @@ import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchema;
import org.apache.iotdb.db.mpp.plan.execution.config.ConfigTaskResult;
import org.apache.iotdb.db.mpp.plan.execution.config.IConfigTask;
import org.apache.iotdb.db.mpp.plan.execution.config.executor.IConfigTaskExecutor;
-import org.apache.iotdb.db.mpp.plan.statement.metadata.SetStorageGroupStatement;
+import org.apache.iotdb.db.mpp.plan.statement.metadata.DatabaseSchemaStatement;
import com.google.common.util.concurrent.ListenableFuture;
-public class SetStorageGroupTask implements IConfigTask {
+public class DatabaseSchemaTask implements IConfigTask {
- private final SetStorageGroupStatement setStorageGroupStatement;
+ private final DatabaseSchemaStatement databaseSchemaStatement;
- public SetStorageGroupTask(SetStorageGroupStatement setStorageGroupStatement) {
- this.setStorageGroupStatement = setStorageGroupStatement;
+ public DatabaseSchemaTask(DatabaseSchemaStatement databaseSchemaStatement) {
+ this.databaseSchemaStatement = databaseSchemaStatement;
}
@Override
public ListenableFuture<ConfigTaskResult> execute(IConfigTaskExecutor configTaskExecutor) {
// If the action is executed successfully, return the Future.
// If your operation is async, you can return the corresponding future directly.
- return configTaskExecutor.setStorageGroup(setStorageGroupStatement);
+ switch (databaseSchemaStatement.getSubType()) {
+ case CREATE:
+ return configTaskExecutor.setDatabase(databaseSchemaStatement);
+ case ALTER:
+ default:
+ return configTaskExecutor.alterDatabase(databaseSchemaStatement);
+ }
}
- /** construct create database schema according to statement */
+ /** Construct DatabaseSchema according to statement */
public static TStorageGroupSchema constructStorageGroupSchema(
- SetStorageGroupStatement setStorageGroupStatement) {
+ DatabaseSchemaStatement databaseSchemaStatement) {
TStorageGroupSchema storageGroupSchema = new TStorageGroupSchema();
- storageGroupSchema.setName(setStorageGroupStatement.getStorageGroupPath().getFullPath());
- if (setStorageGroupStatement.getTTL() != null) {
- storageGroupSchema.setTTL(setStorageGroupStatement.getTTL());
+ storageGroupSchema.setName(databaseSchemaStatement.getStorageGroupPath().getFullPath());
+ if (databaseSchemaStatement.getTTL() != null) {
+ storageGroupSchema.setTTL(databaseSchemaStatement.getTTL());
}
- if (setStorageGroupStatement.getSchemaReplicationFactor() != null) {
+ if (databaseSchemaStatement.getSchemaReplicationFactor() != null) {
storageGroupSchema.setSchemaReplicationFactor(
- setStorageGroupStatement.getSchemaReplicationFactor());
+ databaseSchemaStatement.getSchemaReplicationFactor());
}
- if (setStorageGroupStatement.getDataReplicationFactor() != null) {
+ if (databaseSchemaStatement.getDataReplicationFactor() != null) {
storageGroupSchema.setDataReplicationFactor(
- setStorageGroupStatement.getDataReplicationFactor());
+ databaseSchemaStatement.getDataReplicationFactor());
}
- if (setStorageGroupStatement.getTimePartitionInterval() != null) {
+ if (databaseSchemaStatement.getTimePartitionInterval() != null) {
storageGroupSchema.setTimePartitionInterval(
- setStorageGroupStatement.getTimePartitionInterval());
+ databaseSchemaStatement.getTimePartitionInterval());
}
- if (setStorageGroupStatement.getSchemaRegionGroupNum() != null) {
+ if (databaseSchemaStatement.getSchemaRegionGroupNum() != null) {
storageGroupSchema.setMinSchemaRegionGroupNum(
- setStorageGroupStatement.getSchemaRegionGroupNum());
+ databaseSchemaStatement.getSchemaRegionGroupNum());
}
- if (setStorageGroupStatement.getDataRegionGroupNum() != null) {
- storageGroupSchema.setMinDataRegionGroupNum(setStorageGroupStatement.getDataRegionGroupNum());
+ if (databaseSchemaStatement.getDataRegionGroupNum() != null) {
+ storageGroupSchema.setMinDataRegionGroupNum(databaseSchemaStatement.getDataRegionGroupNum());
}
return storageGroupSchema;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
index 4be6e2b70b..493abc4b3d 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
@@ -102,6 +102,7 @@ import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateContinuousQueryStat
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateFunctionStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateTimeSeriesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateTriggerStatement;
+import org.apache.iotdb.db.mpp.plan.statement.metadata.DatabaseSchemaStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteTimeSeriesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DropContinuousQueryStatement;
@@ -111,7 +112,6 @@ import org.apache.iotdb.db.mpp.plan.statement.metadata.GetRegionIdStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.GetSeriesSlotListStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.GetTimeSlotListStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.MigrateRegionStatement;
-import org.apache.iotdb.db.mpp.plan.statement.metadata.SetStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.SetTTLStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowChildNodesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowChildPathsStatement;
@@ -1921,39 +1921,50 @@ public class ASTVisitor extends IoTDBSqlParserBaseVisitor<Statement> {
// Create database
@Override
public Statement visitCreateStorageGroup(IoTDBSqlParser.CreateStorageGroupContext ctx) {
- SetStorageGroupStatement setStorageGroupStatement = new SetStorageGroupStatement();
+ DatabaseSchemaStatement databaseSchemaStatement =
+ new DatabaseSchemaStatement(DatabaseSchemaStatement.DatabaseSchemaStatementType.CREATE);
PartialPath path = parsePrefixPath(ctx.prefixPath());
- setStorageGroupStatement.setStorageGroupPath(path);
+ databaseSchemaStatement.setStorageGroupPath(path);
if (ctx.storageGroupAttributesClause() != null) {
parseStorageGroupAttributesClause(
- setStorageGroupStatement, ctx.storageGroupAttributesClause());
+ databaseSchemaStatement, ctx.storageGroupAttributesClause());
}
- return setStorageGroupStatement;
+ return databaseSchemaStatement;
+ }
+
+ @Override
+ public Statement visitAlterStorageGroup(IoTDBSqlParser.AlterStorageGroupContext ctx) {
+ DatabaseSchemaStatement databaseSchemaStatement =
+ new DatabaseSchemaStatement(DatabaseSchemaStatement.DatabaseSchemaStatementType.ALTER);
+ PartialPath path = parsePrefixPath(ctx.prefixPath());
+ databaseSchemaStatement.setStorageGroupPath(path);
+ parseStorageGroupAttributesClause(databaseSchemaStatement, ctx.storageGroupAttributesClause());
+ return databaseSchemaStatement;
}
private void parseStorageGroupAttributesClause(
- SetStorageGroupStatement setStorageGroupStatement,
+ DatabaseSchemaStatement databaseSchemaStatement,
IoTDBSqlParser.StorageGroupAttributesClauseContext ctx) {
for (IoTDBSqlParser.StorageGroupAttributeClauseContext attribute :
ctx.storageGroupAttributeClause()) {
if (attribute.TTL() != null) {
long ttl = Long.parseLong(attribute.INTEGER_LITERAL().getText());
- setStorageGroupStatement.setTTL(ttl);
+ databaseSchemaStatement.setTTL(ttl);
} else if (attribute.SCHEMA_REPLICATION_FACTOR() != null) {
int schemaReplicationFactor = Integer.parseInt(attribute.INTEGER_LITERAL().getText());
- setStorageGroupStatement.setSchemaReplicationFactor(schemaReplicationFactor);
+ databaseSchemaStatement.setSchemaReplicationFactor(schemaReplicationFactor);
} else if (attribute.DATA_REPLICATION_FACTOR() != null) {
int dataReplicationFactor = Integer.parseInt(attribute.INTEGER_LITERAL().getText());
- setStorageGroupStatement.setDataReplicationFactor(dataReplicationFactor);
+ databaseSchemaStatement.setDataReplicationFactor(dataReplicationFactor);
} else if (attribute.TIME_PARTITION_INTERVAL() != null) {
long timePartitionInterval = Long.parseLong(attribute.INTEGER_LITERAL().getText());
- setStorageGroupStatement.setTimePartitionInterval(timePartitionInterval);
+ databaseSchemaStatement.setTimePartitionInterval(timePartitionInterval);
} else if (attribute.SCHEMA_REGION_GROUP_NUM() != null) {
int schemaRegionGroupNum = Integer.parseInt(attribute.INTEGER_LITERAL().getText());
- setStorageGroupStatement.setSchemaRegionGroupNum(schemaRegionGroupNum);
+ databaseSchemaStatement.setSchemaRegionGroupNum(schemaRegionGroupNum);
} else if (attribute.DATA_REGION_GROUP_NUM() != null) {
int dataRegionGroupNum = Integer.parseInt(attribute.INTEGER_LITERAL().getText());
- setStorageGroupStatement.setDataRegionGroupNum(dataRegionGroupNum);
+ databaseSchemaStatement.setDataRegionGroupNum(dataRegionGroupNum);
}
}
}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/StatementGenerator.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/StatementGenerator.java
index ec43ef2d91..cb482524e4 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/StatementGenerator.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/StatementGenerator.java
@@ -51,9 +51,9 @@ import org.apache.iotdb.db.mpp.plan.statement.crud.QueryStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateAlignedTimeSeriesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateMultiTimeSeriesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateTimeSeriesStatement;
+import org.apache.iotdb.db.mpp.plan.statement.metadata.DatabaseSchemaStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteTimeSeriesStatement;
-import org.apache.iotdb.db.mpp.plan.statement.metadata.SetStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.template.CreateSchemaTemplateStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.template.DropSchemaTemplateStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.template.SetSchemaTemplateStatement;
@@ -423,7 +423,8 @@ public class StatementGenerator {
public static Statement createStatement(String storageGroup) throws IllegalPathException {
// construct create database statement
- SetStorageGroupStatement statement = new SetStorageGroupStatement();
+ DatabaseSchemaStatement statement =
+ new DatabaseSchemaStatement(DatabaseSchemaStatement.DatabaseSchemaStatementType.CREATE);
statement.setStorageGroupPath(parseStorageGroupRawString(storageGroup));
return statement;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementType.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementType.java
index 96ef577f18..c4d4fdfeec 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementType.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementType.java
@@ -49,7 +49,7 @@ public enum StatementType {
GRANT_WATERMARK_EMBEDDING,
REVOKE_WATERMARK_EMBEDDING,
- SET_STORAGE_GROUP,
+ STORAGE_GROUP_SCHEMA,
DELETE_STORAGE_GROUP,
CREATE_TIMESERIES,
CREATE_ALIGNED_TIMESERIES,
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java
index c78db0b7af..9cac1d0646 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java
@@ -44,6 +44,7 @@ import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateFunctionStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateMultiTimeSeriesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateTimeSeriesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateTriggerStatement;
+import org.apache.iotdb.db.mpp.plan.statement.metadata.DatabaseSchemaStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteTimeSeriesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DropContinuousQueryStatement;
@@ -53,7 +54,6 @@ import org.apache.iotdb.db.mpp.plan.statement.metadata.GetRegionIdStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.GetSeriesSlotListStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.GetTimeSlotListStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.MigrateRegionStatement;
-import org.apache.iotdb.db.mpp.plan.statement.metadata.SetStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.SetTTLStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowChildNodesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowChildPathsStatement;
@@ -159,8 +159,12 @@ public abstract class StatementVisitor<R, C> {
return visitStatement(deleteStorageGroupStatement, context);
}
- public R visitSetStorageGroup(SetStorageGroupStatement setStorageGroupStatement, C context) {
- return visitStatement(setStorageGroupStatement, context);
+ public R visitSetDatabase(DatabaseSchemaStatement databaseSchemaStatement, C context) {
+ return visitStatement(databaseSchemaStatement, context);
+ }
+
+ public R visitAlterDatabase(DatabaseSchemaStatement databaseSchemaStatement, C context) {
+ return visitStatement(databaseSchemaStatement, context);
}
// Alter TTL
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/metadata/SetStorageGroupStatement.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/metadata/DatabaseSchemaStatement.java
similarity index 85%
rename from server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/metadata/SetStorageGroupStatement.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/metadata/DatabaseSchemaStatement.java
index 46c55337b5..40ad82753c 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/metadata/SetStorageGroupStatement.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/metadata/DatabaseSchemaStatement.java
@@ -29,7 +29,10 @@ import org.apache.iotdb.db.mpp.plan.statement.StatementVisitor;
import java.util.Collections;
import java.util.List;
-public class SetStorageGroupStatement extends Statement implements IConfigStatement {
+public class DatabaseSchemaStatement extends Statement implements IConfigStatement {
+
+ private final DatabaseSchemaStatementType subType;
+
private PartialPath storageGroupPath;
private Long TTL = null;
private Integer schemaReplicationFactor = null;
@@ -38,9 +41,14 @@ public class SetStorageGroupStatement extends Statement implements IConfigStatem
private Integer schemaRegionGroupNum = null;
private Integer dataRegionGroupNum = null;
- public SetStorageGroupStatement() {
+ public DatabaseSchemaStatement(DatabaseSchemaStatementType subType) {
super();
- statementType = StatementType.SET_STORAGE_GROUP;
+ this.subType = subType;
+ statementType = StatementType.STORAGE_GROUP_SCHEMA;
+ }
+
+ public DatabaseSchemaStatementType getSubType() {
+ return subType;
}
public PartialPath getStorageGroupPath() {
@@ -101,7 +109,13 @@ public class SetStorageGroupStatement extends Statement implements IConfigStatem
@Override
public <R, C> R accept(StatementVisitor<R, C> visitor, C context) {
- return visitor.visitSetStorageGroup(this, context);
+ switch (subType) {
+ case CREATE:
+ return visitor.visitSetDatabase(this, context);
+ case ALTER:
+ default:
+ return visitor.visitAlterDatabase(this, context);
+ }
}
@Override
@@ -135,4 +149,9 @@ public class SetStorageGroupStatement extends Statement implements IConfigStatem
+ dataRegionGroupNum
+ '}';
}
+
+ public enum DatabaseSchemaStatementType {
+ CREATE,
+ ALTER
+ }
}
diff --git a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/ClientRPCServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/ClientRPCServiceImpl.java
index 0c785ffc5d..947545dc72 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/ClientRPCServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/ClientRPCServiceImpl.java
@@ -53,9 +53,9 @@ import org.apache.iotdb.db.mpp.plan.statement.crud.InsertTabletStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateAlignedTimeSeriesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateMultiTimeSeriesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateTimeSeriesStatement;
+import org.apache.iotdb.db.mpp.plan.statement.metadata.DatabaseSchemaStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteTimeSeriesStatement;
-import org.apache.iotdb.db.mpp.plan.statement.metadata.SetStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.template.CreateSchemaTemplateStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.template.DropSchemaTemplateStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.template.SetSchemaTemplateStatement;
@@ -651,8 +651,8 @@ public class ClientRPCServiceImpl implements IClientRPCServiceWithHandler {
}
// Step 1: Create SetStorageGroupStatement
- SetStorageGroupStatement statement =
- (SetStorageGroupStatement) StatementGenerator.createStatement(storageGroup);
+ DatabaseSchemaStatement statement =
+ (DatabaseSchemaStatement) StatementGenerator.createStatement(storageGroup);
if (enableAuditLog) {
AuditLogger.log(String.format("create database %s", storageGroup), statement);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/sync/transport/server/ReceiverManager.java b/server/src/main/java/org/apache/iotdb/db/sync/transport/server/ReceiverManager.java
index 8ae5dba86d..79a45de2ab 100644
--- a/server/src/main/java/org/apache/iotdb/db/sync/transport/server/ReceiverManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/sync/transport/server/ReceiverManager.java
@@ -32,7 +32,7 @@ import org.apache.iotdb.db.mpp.plan.Coordinator;
import org.apache.iotdb.db.mpp.plan.analyze.IPartitionFetcher;
import org.apache.iotdb.db.mpp.plan.analyze.schema.ISchemaFetcher;
import org.apache.iotdb.db.mpp.plan.execution.ExecutionResult;
-import org.apache.iotdb.db.mpp.plan.statement.metadata.SetStorageGroupStatement;
+import org.apache.iotdb.db.mpp.plan.statement.metadata.DatabaseSchemaStatement;
import org.apache.iotdb.db.query.control.SessionManager;
import org.apache.iotdb.db.sync.pipedata.PipeData;
import org.apache.iotdb.db.sync.pipedata.TsFilePipeData;
@@ -422,7 +422,8 @@ public class ReceiverManager {
return true;
}
try {
- SetStorageGroupStatement statement = new SetStorageGroupStatement();
+ DatabaseSchemaStatement statement =
+ new DatabaseSchemaStatement(DatabaseSchemaStatement.DatabaseSchemaStatementType.CREATE);
statement.setStorageGroupPath(new PartialPath(database));
long queryId = SessionManager.getInstance().requestQueryId();
ExecutionResult result =
diff --git a/thrift-confignode/src/main/thrift/confignode.thrift b/thrift-confignode/src/main/thrift/confignode.thrift
index 425402e3b2..124621fe81 100644
--- a/thrift-confignode/src/main/thrift/confignode.thrift
+++ b/thrift-confignode/src/main/thrift/confignode.thrift
@@ -145,11 +145,7 @@ struct TSetDataNodeStatusReq {
2: required string status
}
-// StorageGroup
-struct TSetStorageGroupReq {
- 1: required TStorageGroupSchema storageGroup
-}
-
+// Database
struct TDeleteStorageGroupReq {
1: required string prefixPath
}
@@ -792,7 +788,15 @@ service IConfigNodeRPCService {
* PATH_ILLEGAL if the new StorageGroup's name is illegal
* STORAGE_GROUP_ALREADY_EXISTS if the StorageGroup already exist
*/
- common.TSStatus setStorageGroup(TSetStorageGroupReq req)
+ common.TSStatus setDatabase(TStorageGroupSchema databaseSchema)
+
+ /**
+ * Alter a StorageGroup's schema, including
+ * TTL, ReplicationFactor, timePartitionInterval and RegionGroupNum
+ *
+ * @return SUCCESS_STATUS if the specified StorageGroupSchema is altered successfully
+ */
+ common.TSStatus alterDatabase(TStorageGroupSchema databaseSchema)
/**
* Generate a DeleteStorageGroupProcedure to delete a specific StorageGroup