You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by sh...@apache.org on 2026/05/26 04:16:17 UTC
(iotdb) branch addColumnForTableDiskUsageTable created (now 3c43ad6c259)
This is an automated email from the ASF dual-hosted git repository.
shuwenwei pushed a change to branch addColumnForTableDiskUsageTable
in repository https://gitbox.apache.org/repos/asf/iotdb.git
at 3c43ad6c259 Add table type to table disk usage
This branch includes the following new commits:
new 3c43ad6c259 Add table type to table disk usage
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(iotdb) 01/01: Add table type to table disk usage
Posted by sh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
shuwenwei pushed a commit to branch addColumnForTableDiskUsageTable
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 3c43ad6c259ef8f55657ead5c3b806123a31e6f3
Author: shuwenwei <s1...@gmail.com>
AuthorDate: Tue May 26 12:15:53 2026 +0800
Add table type to table disk usage
---
.../relational/it/IoTDBShowDiskUsageTableIT.java | 1 +
.../relational/it/schema/IoTDBDatabaseIT.java | 1 +
.../InformationSchemaContentSupplierFactory.java | 29 ++++++++++++++++------
.../commons/schema/table/InformationSchema.java | 2 ++
4 files changed, 25 insertions(+), 8 deletions(-)
diff --git a/integration-test/src/test/java/org/apache/iotdb/relational/it/IoTDBShowDiskUsageTableIT.java b/integration-test/src/test/java/org/apache/iotdb/relational/it/IoTDBShowDiskUsageTableIT.java
index 76ac3ccc758..f9bb0cfc90b 100644
--- a/integration-test/src/test/java/org/apache/iotdb/relational/it/IoTDBShowDiskUsageTableIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/relational/it/IoTDBShowDiskUsageTableIT.java
@@ -80,6 +80,7 @@ public class IoTDBShowDiskUsageTableIT {
Map<String, Long> tableSizes = new HashMap<>();
while (iterator.next()) {
String table = iterator.getString("table_name");
+ Assert.assertEquals("BASE TABLE", iterator.getString("table_type"));
long timePartition = iterator.getLong("time_partition");
long size = iterator.getLong("size_in_bytes");
timePartitionSizes.compute(timePartition, (k, v) -> v == null ? size : v + size);
diff --git a/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBDatabaseIT.java b/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBDatabaseIT.java
index 2b367b70b22..46d27d997e9 100644
--- a/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBDatabaseIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBDatabaseIT.java
@@ -578,6 +578,7 @@ public class IoTDBDatabaseIT {
Arrays.asList(
"database,STRING,FIELD,",
"table_name,STRING,FIELD,",
+ "table_type,STRING,FIELD,",
"datanode_id,INT32,FIELD,",
"region_id,INT32,FIELD,",
"time_partition,INT64,FIELD,",
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java
index 0dbd86d600c..910c5afb5ab 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java
@@ -1271,6 +1271,7 @@ public class InformationSchemaContentSupplierFactory {
private final Filter pushDownFilter;
private final PaginationController paginationController;
private final OperatorContext operatorContext;
+ private final Map<String, String> currentTableTypeMap = new HashMap<>();
private DataRegion currentDataRegion;
private boolean currentDatabaseOnlyHasOneTable;
@@ -1347,6 +1348,7 @@ public class InformationSchemaContentSupplierFactory {
try {
while (dataRegionIterator.nextDataRegion()) {
currentDataRegion = dataRegionIterator.currentDataRegion();
+ currentTableTypeMap.clear();
for (Long timePartition : currentDataRegion.getTsFileManager().getTimePartitions()) {
Map<String, Long> tablesToScan = getTablesToScan(currentDataRegion, timePartition);
if (!tablesToScan.isEmpty()) {
@@ -1420,12 +1422,13 @@ public class InformationSchemaContentSupplierFactory {
}
totalValidTableCount++;
if (pushDownFilter != null) {
- Object[] row = new Object[5];
+ Object[] row = new Object[6];
row[0] = new Binary(dataRegion.getDatabaseName(), TSFileConfig.STRING_CHARSET);
row[1] = new Binary(tTableInfo.getTableName(), TSFileConfig.STRING_CHARSET);
- row[2] = IoTDBDescriptor.getInstance().getConfig().getDataNodeId();
- row[3] = dataRegion.getDataRegionId();
- row[4] = timePartition;
+ row[2] = new Binary(getTableTypeName(tTableInfo), TSFileConfig.STRING_CHARSET);
+ row[3] = IoTDBDescriptor.getInstance().getConfig().getDataNodeId();
+ row[4] = dataRegion.getDataRegionId();
+ row[5] = timePartition;
if (!pushDownFilter.satisfyRow(0, row)) {
continue;
}
@@ -1439,11 +1442,19 @@ public class InformationSchemaContentSupplierFactory {
}
paginationController.consumeLimit();
tablesToScan.put(tTableInfo.getTableName(), 0L);
+ currentTableTypeMap.put(tTableInfo.getTableName(), getTableTypeName(tTableInfo));
}
currentDatabaseOnlyHasOneTable = totalValidTableCount == 1;
return tablesToScan;
}
+ private String getTableTypeName(final TTableInfo tableInfo) {
+ if (tableInfo.isSetType()) {
+ return TableType.values()[tableInfo.getType()].getName();
+ }
+ return TableType.BASE_TABLE.getName();
+ }
+
@Override
public TsBlock next() {
if (!hasNext()) {
@@ -1531,10 +1542,12 @@ public class InformationSchemaContentSupplierFactory {
columns[0].writeBinary(
new Binary(currentDataRegion.getDatabaseName(), TSFileConfig.STRING_CHARSET));
columns[1].writeBinary(new Binary(tableName, TSFileConfig.STRING_CHARSET));
- columns[2].writeInt(IoTDBDescriptor.getInstance().getConfig().getDataNodeId());
- columns[3].writeInt(currentDataRegion.getDataRegionId());
- columns[4].writeLong(timePartition);
- columns[5].writeLong(size);
+ columns[2].writeBinary(
+ new Binary(currentTableTypeMap.get(tableName), TSFileConfig.STRING_CHARSET));
+ columns[3].writeInt(IoTDBDescriptor.getInstance().getConfig().getDataNodeId());
+ columns[4].writeInt(currentDataRegion.getDataRegionId());
+ columns[5].writeLong(timePartition);
+ columns[6].writeLong(size);
builder.declarePosition();
}
}
diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/table/InformationSchema.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/table/InformationSchema.java
index 75b71efc75d..a52f34b21b0 100644
--- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/table/InformationSchema.java
+++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/table/InformationSchema.java
@@ -356,6 +356,8 @@ public class InformationSchema {
ColumnHeaderConstant.DATABASE.toLowerCase(Locale.ENGLISH), TSDataType.STRING));
tableDiskUsageTable.addColumnSchema(
new FieldColumnSchema(ColumnHeaderConstant.TABLE_NAME_TABLE_MODEL, TSDataType.STRING));
+ tableDiskUsageTable.addColumnSchema(
+ new FieldColumnSchema(ColumnHeaderConstant.TABLE_TYPE_TABLE_MODEL, TSDataType.STRING));
tableDiskUsageTable.addColumnSchema(
new FieldColumnSchema(ColumnHeaderConstant.DATA_NODE_ID_TABLE_MODEL, TSDataType.INT32));
tableDiskUsageTable.addColumnSchema(