Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added partial schema for tree device view #14617

Open
wants to merge 215 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
215 commits
Select commit Hold shift + click to select a range
9222e0f
Partial
Caideyipi Dec 16, 2024
c3c433d
Create TreeDeviceEntry.java
Caideyipi Dec 16, 2024
f6b52b2
partial
Caideyipi Dec 16, 2024
2eb790c
Create TreeViewSchema.java
Caideyipi Dec 16, 2024
331dddd
Update TreeViewSchema.java
Caideyipi Dec 16, 2024
6db37c4
Update TableDeviceSchemaCache.java
Caideyipi Dec 16, 2024
d16cb0b
Change
Caideyipi Dec 16, 2024
d90da9e
spotless
Caideyipi Dec 16, 2024
fdcab48
Update TableDeviceSchemaFetcher.java
Caideyipi Dec 16, 2024
ac793ca
Update TableDeviceQuerySource.java
Caideyipi Dec 16, 2024
916d6a3
Update TableSchema.java
Caideyipi Dec 16, 2024
660659f
Merge branch 'master' of https://github.com/apache/iotdb into device_…
Caideyipi Dec 16, 2024
4383687
Merge branch 'master' of https://github.com/apache/iotdb into device_…
Caideyipi Dec 17, 2024
f1a6fd1
Partial
Caideyipi Dec 17, 2024
3ec214d
Merge branch 'master' of https://github.com/apache/iotdb into device_…
Caideyipi Dec 17, 2024
e30193b
View info
Caideyipi Dec 17, 2024
7b5c454
Partial
Caideyipi Dec 17, 2024
44e68f5
May complete
Caideyipi Dec 17, 2024
01ed2a4
Update ThreadName.java
Caideyipi Dec 17, 2024
06326ae
partial
Caideyipi Dec 17, 2024
6dc7e90
Refactor
Caideyipi Dec 18, 2024
dd50bbf
Partial
Caideyipi Dec 18, 2024
2f40eec
state machine
Caideyipi Dec 18, 2024
2104ec4
Deletion
Caideyipi Dec 18, 2024
02d5c6c
Merge branch 'master' of https://github.com/apache/iotdb into device_…
Caideyipi Dec 18, 2024
1f0b4f4
Update DataNodeInternalRPCServiceImpl.java
Caideyipi Dec 18, 2024
e67b4d2
Update DataNodeInternalRPCServiceImpl.java
Caideyipi Dec 18, 2024
cb89ad7
Update DataNodeInternalRPCServiceImpl.java
Caideyipi Dec 18, 2024
0da0f9a
Update TableDeviceSchemaCache.java
Caideyipi Dec 18, 2024
5e25493
Update TableDeviceSchemaCache.java
Caideyipi Dec 18, 2024
04bb36b
Next
Caideyipi Dec 18, 2024
70c2cbc
TreeDeviceViewSchema
Caideyipi Dec 18, 2024
43994dd
Partial
Caideyipi Dec 18, 2024
8cd6fd2
Partial
Caideyipi Dec 18, 2024
64b0846
Partial
Caideyipi Dec 18, 2024
128be42
Merge branch 'master' of https://github.com/apache/iotdb into device_…
Caideyipi Dec 18, 2024
ef54fe7
Partial
Caideyipi Dec 18, 2024
f0ca8a8
Partial
Caideyipi Dec 18, 2024
5962f25
Next
Caideyipi Dec 18, 2024
3f9982b
Merge branch 'master' of https://github.com/apache/iotdb into device_…
Caideyipi Dec 18, 2024
2d947ec
Update RenameTableProcedureTest.java
Caideyipi Dec 18, 2024
9bcd9a9
Create TreeViewSchemaUtils.java
Caideyipi Dec 18, 2024
ec7e74f
init
JackieTien97 Dec 18, 2024
e9ac91b
Fix
Caideyipi Dec 18, 2024
6c7de1f
Update TreeViewSchemaUtils.java
Caideyipi Dec 18, 2024
76517a1
Partial
Caideyipi Dec 19, 2024
a2e8b08
Merge branch 'master' of https://github.com/apache/iotdb into device_…
Caideyipi Dec 19, 2024
f9b4828
Merge branch 'master' of https://github.com/apache/iotdb into device_…
Caideyipi Dec 19, 2024
0591eab
Update TableDeviceSchemaFetcher.java
Caideyipi Dec 19, 2024
442a398
Fix
Caideyipi Dec 19, 2024
c4f2087
Update TableDeviceSchemaFetcher.java
Caideyipi Dec 19, 2024
2055023
partial
Caideyipi Dec 19, 2024
7811384
Update TableDeviceSchemaFetcher.java
Caideyipi Dec 19, 2024
669876e
Partial
Caideyipi Dec 19, 2024
a24cced
Fix
Caideyipi Dec 19, 2024
3776500
partial
Caideyipi Dec 19, 2024
624a0cb
Partial
Caideyipi Dec 19, 2024
dfd1f46
continue
Caideyipi Dec 19, 2024
e1bd7e1
Next
Caideyipi Dec 19, 2024
a1aee89
Partial
Caideyipi Dec 19, 2024
1adb073
Partial
Caideyipi Dec 19, 2024
4328bd4
Update TreeDeviceViewUpdater.java
Caideyipi Dec 19, 2024
86cdc96
Update TreeDeviceViewUpdater.java
Caideyipi Dec 19, 2024
45b7bce
Partial
Caideyipi Dec 19, 2024
08992ab
Update DataNodeAsyncRequestRPCHandler.java
Caideyipi Dec 19, 2024
24252b5
Refactor
Caideyipi Dec 19, 2024
44fd1a8
Update DataNodeInternalRPCServiceImpl.java
Caideyipi Dec 19, 2024
1ef7e32
Update TreeDeviceViewUpdater.java
Caideyipi Dec 19, 2024
2e68610
continue
Caideyipi Dec 19, 2024
87f7117
Continue
Caideyipi Dec 19, 2024
044b9c1
Update TreeDeviceViewUpdater.java
Caideyipi Dec 19, 2024
2419f9e
Partial
Caideyipi Dec 19, 2024
58df19f
Merge remote-tracking branch 'upstream/master' into device_view
Caideyipi Dec 19, 2024
63764e7
Update TableMetadataImpl.java
Caideyipi Dec 19, 2024
8e18ae1
Update TreeDeviceViewUpdater.java
Caideyipi Dec 19, 2024
20a8979
Update TreeDeviceViewUpdater.java
Caideyipi Dec 19, 2024
e575016
Update TreeDeviceViewUpdater.java
Caideyipi Dec 19, 2024
86d43a8
Update TreeDeviceViewUpdater.java
Caideyipi Dec 19, 2024
345b060
Update TreeViewSchemaUtils.java
Caideyipi Dec 19, 2024
3fb1114
Partial
Caideyipi Dec 19, 2024
64a249c
Update TableConfigTaskVisitor.java
Caideyipi Dec 19, 2024
24bc1d7
Update TableConfigTaskVisitor.java
Caideyipi Dec 19, 2024
f235d14
Update TreeViewSchema.java
Caideyipi Dec 19, 2024
af92ee2
Add TreeAlignedDeviceViewAggregationScanOperator and TreeAlignedDevic…
JackieTien97 Dec 19, 2024
6829a68
resolve conflicts
JackieTien97 Dec 20, 2024
a8e4849
Check
Caideyipi Dec 20, 2024
8f033c7
Partial
Caideyipi Dec 20, 2024
a5a76cf
Update SQL
Caideyipi Dec 20, 2024
94b41b4
Merge remote-tracking branch 'upstream/master' into device_view
Caideyipi Dec 20, 2024
db4aae8
Merge branch 'master' of https://github.com/apache/iotdb into device_…
Caideyipi Dec 20, 2024
fd1fb8e
Update TreeViewSchemaUtils.java
Caideyipi Dec 20, 2024
5069a55
Merge remote-tracking branch 'upstream/master' into device_view
Caideyipi Dec 20, 2024
775f277
Update TreeViewSchemaUtils.java
Caideyipi Dec 20, 2024
67cfece
Update ClusterSchemaManager.java
Caideyipi Dec 20, 2024
83d401f
Update ClusterSchemaInfo.java
Caideyipi Dec 20, 2024
b5a7852
show db
Caideyipi Dec 20, 2024
d040d40
Partial merge
Caideyipi Dec 20, 2024
d56e3d0
partial
Caideyipi Dec 20, 2024
4609504
show / count
Caideyipi Dec 20, 2024
a794763
Next
Caideyipi Dec 20, 2024
c8f4cd0
Update ClusterSchemaInfo.java
Caideyipi Dec 20, 2024
811ee6f
Add CI check for TreeToTableView branch
JackieTien97 Dec 20, 2024
0a4a75d
Update ClusterSchemaInfo.java
Caideyipi Dec 20, 2024
464a98b
Merge branch 'master' of https://github.com/apache/iotdb into device_…
Caideyipi Dec 20, 2024
31224ed
Update TableConfigTaskVisitor.java
Caideyipi Dec 20, 2024
661d986
Collect
Caideyipi Dec 20, 2024
d7f98a5
Refactor
Caideyipi Dec 20, 2024
ee4f6a2
Update ClusterSchemaInfo.java
Caideyipi Dec 20, 2024
84ce396
Update ClusterSchemaInfo.java
Caideyipi Dec 20, 2024
f455e09
Rename table
Caideyipi Dec 20, 2024
3d8af80
Update ClusterSchemaManager.java
Caideyipi Dec 20, 2024
985d126
Update ClusterSchemaManager.java
Caideyipi Dec 20, 2024
d1f0cc9
Update ClusterSchemaInfo.java
Caideyipi Dec 20, 2024
466feb3
Update ClusterSchemaInfo.java
Caideyipi Dec 20, 2024
716e8ff
Add FE implement
Wei-hao-Li Dec 20, 2024
ac28fca
Partial
Caideyipi Dec 20, 2024
c6507be
Update ConfigMTree.java
Caideyipi Dec 20, 2024
b5e7619
Update ClusterSchemaManager.java
Caideyipi Dec 20, 2024
3ae7404
Update TreeDeviceViewSchema.java
Caideyipi Dec 20, 2024
20f3fed
resolve conflicts
JackieTien97 Dec 20, 2024
3f1545a
Update ClusterSchemaInfo.java
Caideyipi Dec 20, 2024
1606c65
Update ClusterSchemaInfo.java
Caideyipi Dec 20, 2024
9336524
Update ClusterSchemaInfo.java
Caideyipi Dec 20, 2024
f957af5
Fix
Caideyipi Dec 20, 2024
7104ff8
Change
Caideyipi Dec 20, 2024
f164f77
Merge branch 'master' of https://github.com/apache/iotdb into device_…
Caideyipi Dec 20, 2024
dedcf96
Merge remote-tracking branch 'upstream/TreeToTableView' into device_view
Caideyipi Dec 20, 2024
d1223fc
Continue merge
Caideyipi Dec 20, 2024
4280279
Merge remote-tracking branch 'upstream/TreeToTableView' into device_view
Caideyipi Dec 20, 2024
1c42a1e
Update NonAlignedDeviceEntry.java
Caideyipi Dec 20, 2024
92ec9c5
Fix
Caideyipi Dec 20, 2024
863692b
Fix
Caideyipi Dec 20, 2024
c9bdc53
Fix
Caideyipi Dec 20, 2024
4a82428
Update TableAggregationTableScanOperator.java
Caideyipi Dec 20, 2024
8e4e004
Update TableAggregationTableScanOperator.java
Caideyipi Dec 20, 2024
7e8de48
Fix
Caideyipi Dec 20, 2024
43665f9
Fix2
Caideyipi Dec 20, 2024
88560da
Fixn
Caideyipi Dec 20, 2024
73bb4d9
fix IT
JackieTien97 Dec 21, 2024
31f4ea5
Merge remote-tracking branch 'origin/master' into TreeToTableView
JackieTien97 Dec 21, 2024
fb25dc8
Merge branch 'master' of https://github.com/apache/iotdb into device_…
Caideyipi Dec 23, 2024
ea468cb
Merge remote-tracking branch 'upstream/TreeToTableView' into device_view
Caideyipi Dec 23, 2024
4cfb10d
Update MockTableModelDataPartition.java
Caideyipi Dec 23, 2024
8ad26ac
Update TreeViewTest.java
Caideyipi Dec 23, 2024
0f49592
Update ClusterSchemaManager.java
Caideyipi Dec 23, 2024
7f62ae5
Update ClusterSchemaInfo.java
Caideyipi Dec 23, 2024
d5c0644
Fix
Caideyipi Dec 23, 2024
1df1294
Fix
Caideyipi Dec 23, 2024
2106086
Update ClusterSchemaInfo.java
Caideyipi Dec 23, 2024
0f91539
Update TableDeviceQuerySource.java
Caideyipi Dec 23, 2024
0c94624
Update DataNodeInternalRPCServiceImpl.java
Caideyipi Dec 23, 2024
67038cc
Fix
Caideyipi Dec 23, 2024
476c010
Update TableDeviceQuerySource.java
Caideyipi Dec 23, 2024
b9ad96c
Fix
Caideyipi Dec 23, 2024
db1bd9b
Merge remote-tracking branch 'origin/master' into TreeToTableView
JackieTien97 Dec 24, 2024
c614034
Merge remote-tracking branch 'upstream/TreeToTableView' into device_view
Caideyipi Dec 25, 2024
b9c357c
may fix
Caideyipi Dec 25, 2024
44cee84
Try fix
Caideyipi Dec 25, 2024
9e4e551
Update TreeDeviceViewUpdater.java
Caideyipi Dec 25, 2024
fc2712a
Update TableDeviceSchemaFetcher.java
Caideyipi Dec 26, 2024
3aa3738
Update TableDeviceQuerySource.java
Caideyipi Dec 26, 2024
559af62
Update TableDeviceSchemaFetcher.java
Caideyipi Dec 26, 2024
2196c3c
Update ClusterSchemaInfo.java
Caideyipi Dec 26, 2024
a0e1e59
Fix
Caideyipi Dec 26, 2024
64b1992
Support in TableOperatorGenerator
JackieTien97 Dec 26, 2024
3aff4ea
Add support agg
JackieTien97 Dec 27, 2024
d3e4a1f
Fix
Caideyipi Dec 27, 2024
6325300
Update IoTDBDatabaseIT.java
Caideyipi Dec 27, 2024
336b749
Partial
Caideyipi Dec 27, 2024
858806b
Revert
Caideyipi Dec 27, 2024
4be5c18
Fix
Caideyipi Dec 27, 2024
5c740af
Revert
Caideyipi Dec 27, 2024
f49370c
init
Caideyipi Dec 27, 2024
507d388
Merge remote-tracking branch 'upstream/TreeToTableView' into device_v…
Caideyipi Dec 27, 2024
071f1f0
init
Caideyipi Dec 27, 2024
d90c7a1
Partial
Caideyipi Dec 27, 2024
4c4a81d
Fix
Caideyipi Dec 27, 2024
0553803
Partial
Caideyipi Dec 27, 2024
29fb2a0
Refactor
Caideyipi Dec 27, 2024
6359480
Partial
Caideyipi Dec 27, 2024
89ec0ed
partial
Caideyipi Dec 27, 2024
ec135b5
Fix
Caideyipi Dec 27, 2024
de2fa93
Update TableDeviceQuerySource.java
Caideyipi Dec 27, 2024
ee6768e
Deletion
Caideyipi Dec 27, 2024
d4b06a9
Removal
Caideyipi Dec 27, 2024
922ba9c
fix
Caideyipi Dec 27, 2024
4ae7c31
Some
Caideyipi Dec 27, 2024
04763a7
May revert this...
Caideyipi Dec 27, 2024
1c0fef0
Update ConfigNodeClient.java
Caideyipi Dec 30, 2024
cc37a4f
Update TableDeviceSchemaFetcher.java
Caideyipi Jan 2, 2025
3f7bcf0
next
Caideyipi Jan 2, 2025
97b27ab
Update TableDeviceQuerySource.java
Caideyipi Jan 2, 2025
43b64ee
Fix
Caideyipi Jan 2, 2025
82f8d25
may revert 2
Caideyipi Jan 2, 2025
84b733c
Update DataNodeTreeViewSchemaUtils.java
Caideyipi Jan 2, 2025
512ac2c
Merge remote-tracking branch 'upstream/master' into device_view_funct…
Caideyipi Jan 2, 2025
1b6ea6b
spotless
Caideyipi Jan 2, 2025
afb831d
Update TableDeviceQuerySource.java
Caideyipi Jan 2, 2025
f4c3b11
Update TableOperatorGenerator.java
Caideyipi Jan 2, 2025
5e3fd2a
Update AbstractAggTableScanOperator.java
Caideyipi Jan 2, 2025
cc9f272
Update AbstractTableScanOperator.java
Caideyipi Jan 2, 2025
a1e5daa
Delete AbstractAggregationTableScanOperator.java
Caideyipi Jan 2, 2025
6be6a08
Create AbstractDefaultAggTableScanOperator.java
Caideyipi Jan 2, 2025
7ed0aaa
Update TreeAlignedDeviceViewAggregationScanOperator.java
Caideyipi Jan 2, 2025
6565235
Update DefaultAggTableScanOperator.java
Caideyipi Jan 2, 2025
cf8628b
Update LastQueryAggTableScanOperator.java
Caideyipi Jan 2, 2025
27eb6cf
Update TableScanOperator.java
Caideyipi Jan 2, 2025
1e84b4a
Update TestMetadata.java
Caideyipi Jan 2, 2025
9686e50
Merge remote-tracking branch 'upstream/master' into device_view_funct…
Caideyipi Jan 2, 2025
95b9d87
merge
Caideyipi Jan 2, 2025
4efb718
rename
Caideyipi Jan 2, 2025
4e33499
Update TestMetadata.java
Caideyipi Jan 2, 2025
0e60e30
IT
Caideyipi Jan 3, 2025
4930b55
Merge branch 'master' of https://github.com/apache/iotdb into device_…
Caideyipi Jan 3, 2025
226b9af
Update IoTDBTableIT.java
Caideyipi Jan 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,25 +19,36 @@

package org.apache.iotdb.relational.it.schema;

import org.apache.iotdb.commons.client.sync.SyncConfigNodeIServiceClient;
import org.apache.iotdb.commons.schema.table.column.FieldColumnSchema;
import org.apache.iotdb.commons.schema.table.column.TagColumnSchema;
import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchemaUtil;
import org.apache.iotdb.confignode.rpc.thrift.TConstructTreeDeviceViewReq;
import org.apache.iotdb.db.it.utils.TestUtils;
import org.apache.iotdb.it.env.EnvFactory;
import org.apache.iotdb.it.framework.IoTDBTestRunner;
import org.apache.iotdb.itbase.category.TableClusterIT;
import org.apache.iotdb.itbase.category.TableLocalStandaloneIT;
import org.apache.iotdb.itbase.env.BaseEnv;
import org.apache.iotdb.rpc.TSStatusCode;

import org.apache.tsfile.enums.TSDataType;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;

import java.nio.ByteBuffer;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;

import static org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.describeTableColumnHeaders;
import static org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.describeTableDetailsColumnHeaders;
Expand Down Expand Up @@ -566,4 +577,66 @@ public void testManageTable() {
fail(e.getMessage());
}
}

@Test
public void testTreeViewTable() throws Exception {
try (final Connection connection = EnvFactory.getEnv().getConnection();
final Statement statement = connection.createStatement()) {
statement.execute("create database root.a.b");
statement.execute("create timeSeries root.a.b.c.s1 int32");
statement.execute("create timeSeries root.a.b.c.s2 string");
statement.execute("create timeSeries root.a.b.s1 int32");
statement.execute("create timeSeries root.a.b.c.f.g.h.s1 int32");

// Put schema cache
statement.execute("select s1, s2 from root.a.b.c");
} catch (SQLException e) {
fail(e.getMessage());
}

try (final SyncConfigNodeIServiceClient client =
(SyncConfigNodeIServiceClient) EnvFactory.getEnv().getLeaderConfigNodeConnection();
final Connection connection = EnvFactory.getEnv().getConnection(BaseEnv.TABLE_SQL_DIALECT);
final Statement statement = connection.createStatement()) {
Assert.assertEquals(
TSStatusCode.SUCCESS_STATUS.getStatusCode(),
client
.constructTreeView(
new TConstructTreeDeviceViewReq(
"tree_view_db",
"tree_table",
"root.a.**",
ByteBuffer.wrap(
TsTableColumnSchemaUtil.serialize(
Arrays.asList(
new TagColumnSchema("tag1", TSDataType.STRING),
new TagColumnSchema("tag2", TSDataType.STRING),
new FieldColumnSchema("s1", TSDataType.INT32),
new FieldColumnSchema("s2", TSDataType.STRING))))))
.getCode());
statement.execute("use tree_view_db");
TestUtils.assertResultSetEqual(
statement.executeQuery("desc tree_table"),
"ColumnName,DataType,Category,",
new HashSet<>(
Arrays.asList(
"time,TIMESTAMP,TIME,",
"tag1,STRING,TAG,",
"tag2,STRING,TAG,",
"s1,INT32,FIELD,",
"s2,STRING,FIELD,")));
TestUtils.assertResultSetEqual(
statement.executeQuery("show devices from tree_table where tag1 = 'b'"),
"tag1,tag2,",
new HashSet<>(Arrays.asList("b,c,", "b,null,")));
TestUtils.assertResultSetEqual(
statement.executeQuery("show devices from tree_table where tag1 = 'b' and tag2 is null"),
"tag1,tag2,",
Collections.singleton("b,null,"));
TestUtils.assertResultSetEqual(
statement.executeQuery("count devices from tree_table"),
"count(devices),",
Collections.singleton("2,"));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,16 @@ public static DataNodeAsyncRequestRPCHandler<?> buildHandler(
case KILL_QUERY_INSTANCE:
case RESET_PEER_LIST:
case TEST_CONNECTION:
case INVALIDATE_TABLE_CACHE:
case DELETE_DATA_FOR_DROP_TABLE:
case DELETE_DEVICES_FOR_DROP_TABLE:
case INVALIDATE_COLUMN_CACHE:
case DELETE_COLUMN_DATA:
case CONSTRUCT_TABLE_DEVICE_BLACK_LIST:
case ROLLBACK_TABLE_DEVICE_BLACK_LIST:
case INVALIDATE_MATCHED_TABLE_DEVICE_CACHE:
case DELETE_DATA_FOR_TABLE_DEVICE:
case DELETE_TABLE_DEVICE_IN_BLACK_LIST:
default:
return new DataNodeTSStatusRPCHandler(
requestType,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@
import org.apache.iotdb.confignode.consensus.request.write.table.PreDeleteColumnPlan;
import org.apache.iotdb.confignode.consensus.request.write.table.PreDeleteTablePlan;
import org.apache.iotdb.confignode.consensus.request.write.table.RenameTableColumnPlan;
import org.apache.iotdb.confignode.consensus.request.write.table.RenameTablePlan;
import org.apache.iotdb.confignode.consensus.request.write.table.RollbackCreateTablePlan;
import org.apache.iotdb.confignode.consensus.request.write.table.SetTablePropertiesPlan;
import org.apache.iotdb.confignode.consensus.request.write.template.CommitSetSchemaTemplatePlan;
Expand Down Expand Up @@ -371,6 +372,9 @@ public static ConfigPhysicalPlan create(final ByteBuffer buffer) throws IOExcept
case CommitDeleteColumn:
plan = new CommitDeleteColumnPlan();
break;
case RenameTable:
plan = new RenameTablePlan();
break;
case CreatePipeSinkV1:
plan = new CreatePipeSinkPlanV1();
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@ public enum ConfigPhysicalPlanType {
PreDeleteColumn((short) 860),
CommitDeleteColumn((short) 861),
DescTable((short) 862),
RenameTable((short) 863),

/** Deprecated types for sync, restored them for upgrade. */
@Deprecated
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,18 @@
import java.util.List;

public class GetDatabasePlan extends CountDatabasePlan {
private final boolean isShowDatabasePlan;

public GetDatabasePlan(
final List<String> storageGroupPathPattern,
final PathPatternTree scope,
final boolean isTableModel) {
final boolean isTableModel,
final boolean isShowDatabasePlan) {
super(ConfigPhysicalPlanType.GetDatabase, storageGroupPathPattern, scope, isTableModel);
this.isShowDatabasePlan = isShowDatabasePlan;
}

public boolean isShowDatabasePlan() {
return isShowDatabasePlan;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/*
* 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.confignode.consensus.request.write.table;

import org.apache.iotdb.confignode.consensus.request.ConfigPhysicalPlanType;

import org.apache.tsfile.utils.ReadWriteIOUtils;

import java.io.DataOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;

public class RenameTablePlan extends AbstractTablePlan {
private String newName;

public RenameTablePlan() {
super(ConfigPhysicalPlanType.RenameTable);
}

public RenameTablePlan(final String database, final String tableName, final String newName) {
super(ConfigPhysicalPlanType.RenameTable, database, tableName);
this.newName = newName;
}

public String getNewName() {
return newName;
}

@Override
protected void serializeImpl(final DataOutputStream stream) throws IOException {
super.serializeImpl(stream);
ReadWriteIOUtils.write(newName, stream);
}

@Override
protected void deserializeImpl(final ByteBuffer buffer) throws IOException {
super.deserializeImpl(buffer);
this.newName = ReadWriteIOUtils.readString(buffer);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,10 @@
import org.apache.iotdb.commons.pipe.connector.payload.airgap.AirGapPseudoTPipeTransferRequest;
import org.apache.iotdb.commons.schema.SchemaConstant;
import org.apache.iotdb.commons.schema.table.AlterOrDropTableOperationType;
import org.apache.iotdb.commons.schema.table.TreeViewSchema;
import org.apache.iotdb.commons.schema.table.TsTable;
import org.apache.iotdb.commons.schema.table.TsTableInternalRPCUtil;
import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema;
import org.apache.iotdb.commons.schema.ttl.TTLCache;
import org.apache.iotdb.commons.service.metric.MetricService;
import org.apache.iotdb.commons.utils.AuthUtils;
Expand Down Expand Up @@ -257,6 +259,7 @@
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
Expand Down Expand Up @@ -1868,7 +1871,10 @@ public TShowDatabaseResp showDatabase(final TGetDatabaseReq req) {
: PathPatternTree.deserialize(ByteBuffer.wrap(req.getScopePatternTree()));
final GetDatabasePlan getDatabasePlan =
new GetDatabasePlan(
req.getDatabasePathPattern(), scope, req.isSetIsTableModel() && req.isIsTableModel());
req.getDatabasePathPattern(),
scope,
req.isSetIsTableModel() && req.isIsTableModel(),
true);
return getClusterSchemaManager().showDatabase(getDatabasePlan);
} else {
return new TShowDatabaseResp().setStatus(status);
Expand Down Expand Up @@ -2599,6 +2605,42 @@ public TThrottleQuotaResp getThrottleQuota() {
: new TThrottleQuotaResp(status);
}

@Override
public TSStatus createTreeViewTable(
final String databaseName,
final String tableName,
final PartialPath pathPattern,
final List<TsTableColumnSchema> columns,
final String ttl) {
TSStatus status;
// May be concurrently deleted, now just ignore
if (!clusterSchemaManager.isDatabaseExist(databaseName)) {
final TDatabaseSchema newSchema = new TDatabaseSchema(databaseName).setIsTableModel(true);
status = ClusterSchemaManager.enrichDatabaseSchemaWithDefaultProperties(newSchema);
if (TSStatusCode.SUCCESS_STATUS.getStatusCode() != status.getCode()) {
return status;
}
status =
setDatabase(new DatabaseSchemaPlan(ConfigPhysicalPlanType.CreateDatabase, newSchema));
if (TSStatusCode.SUCCESS_STATUS.getStatusCode() != status.getCode()
&& TSStatusCode.DATABASE_ALREADY_EXISTS.getStatusCode() != status.getCode()) {
return status;
}
}

final TsTable table = new TsTable(tableName);
status = TreeViewSchema.setPathPattern(table, pathPattern);
if (TSStatusCode.SUCCESS_STATUS.getStatusCode() != status.getCode()) {
return status;
}

if (Objects.nonNull(ttl)) {
table.addProp(TsTable.TTL_PROPERTY, ttl);
}
columns.forEach(table::addColumnSchema);
return procedureManager.createTable(databaseName, table);
}

@Override
public TSStatus createTable(final ByteBuffer tableInfo) {
final TSStatus status = confirmLeader();
Expand Down Expand Up @@ -2626,6 +2668,8 @@ public TSStatus alterOrDropTable(final TAlterOrDropTableReq req) {
return procedureManager.alterTableDropColumn(req);
case DROP_TABLE:
return procedureManager.dropTable(req);
case RENAME_TABLE:
return procedureManager.renameTable(req);
default:
throw new IllegalArgumentException();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import org.apache.iotdb.commons.cluster.NodeStatus;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.path.PathPatternTree;
import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema;
import org.apache.iotdb.confignode.consensus.request.read.ainode.GetAINodeConfigurationPlan;
import org.apache.iotdb.confignode.consensus.request.read.auth.AuthorReadPlan;
import org.apache.iotdb.confignode.consensus.request.read.database.CountDatabasePlan;
Expand Down Expand Up @@ -835,6 +836,13 @@ TDataPartitionTableResp getOrCreateDataPartition(
/** Set space quota. */
TSStatus setSpaceQuota(TSetSpaceQuotaReq req);

TSStatus createTreeViewTable(
final String databaseName,
final String tableName,
final PartialPath nameSpace,
final List<TsTableColumnSchema> columns,
final String ttl);

TSStatus createTable(final ByteBuffer tableInfo);

TSStatus alterOrDropTable(final TAlterOrDropTableReq req);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@
import org.apache.iotdb.confignode.procedure.impl.schema.table.DropTableColumnProcedure;
import org.apache.iotdb.confignode.procedure.impl.schema.table.DropTableProcedure;
import org.apache.iotdb.confignode.procedure.impl.schema.table.RenameTableColumnProcedure;
import org.apache.iotdb.confignode.procedure.impl.schema.table.RenameTableProcedure;
import org.apache.iotdb.confignode.procedure.impl.schema.table.SetTablePropertiesProcedure;
import org.apache.iotdb.confignode.procedure.impl.subscription.consumer.CreateConsumerProcedure;
import org.apache.iotdb.confignode.procedure.impl.subscription.consumer.DropConsumerProcedure;
Expand Down Expand Up @@ -167,7 +168,7 @@ public class ProcedureManager {
private static final CommonConfig COMMON_CONFIG = CommonDescriptor.getInstance().getConfig();

public static final long PROCEDURE_WAIT_TIME_OUT = COMMON_CONFIG.getDnConnectionTimeoutInMS();
private static final int PROCEDURE_WAIT_RETRY_TIMEOUT = 10;
public static final int PROCEDURE_WAIT_RETRY_TIMEOUT = 10;
private static final String PROCEDURE_TIMEOUT_MESSAGE =
"Timed out to wait for procedure return. The procedure is still running.";

Expand Down Expand Up @@ -1549,6 +1550,17 @@ public TSStatus dropTable(final TAlterOrDropTableReq req) {
new DropTableProcedure(req.database, req.tableName, req.queryId));
}

public TSStatus renameTable(final TAlterOrDropTableReq req) {
return executeWithoutDuplicate(
req.database,
null,
req.tableName,
req.queryId,
ProcedureType.RENAME_TABLE_PROCEDURE,
new RenameTableProcedure(
req.database, req.tableName, req.queryId, ReadWriteIOUtils.readString(req.updateInfo)));
}

public TDeleteTableDeviceResp deleteDevices(final TDeleteTableDeviceReq req) {
long procedureId;
DeleteDevicesProcedure procedure = null;
Expand Down Expand Up @@ -1650,6 +1662,7 @@ public Pair<Long, Boolean> checkDuplicateTableTask(
case DROP_TABLE_COLUMN_PROCEDURE:
case DROP_TABLE_PROCEDURE:
case DELETE_DEVICES_PROCEDURE:
case RENAME_TABLE_PROCEDURE:
final AbstractAlterOrDropTableProcedure<?> alterTableProcedure =
(AbstractAlterOrDropTableProcedure<?>) procedure;
if (type == thisType && queryId.equals(alterTableProcedure.getQueryId())) {
Expand Down
Loading
Loading