This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new c8d7c5dfea9 Reopen drop column and delete devices operations
c8d7c5dfea9 is described below
commit c8d7c5dfea9afeb8883302fa0786034169a404cf
Author: Caideyipi <[email protected]>
AuthorDate: Fri Jan 10 17:36:15 2025 +0800
Reopen drop column and delete devices operations
---
.../iotdb/relational/it/schema/IoTDBDeviceIT.java | 37 +++----
.../iotdb/relational/it/schema/IoTDBTableIT.java | 122 ++++++++++-----------
.../confignode/persistence/schema/ConfigMTree.java | 2 +-
.../plan/relational/sql/ast/DeleteDevice.java | 2 -
.../plan/relational/sql/ast/DropColumn.java | 3 -
pom.xml | 2 +-
6 files changed, 77 insertions(+), 91 deletions(-)
diff --git
a/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBDeviceIT.java
b/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBDeviceIT.java
index d2479f68f35..578d807a6dd 100644
---
a/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBDeviceIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBDeviceIT.java
@@ -249,29 +249,26 @@ public class IoTDBDeviceIT {
TestUtils.assertResultSetSize(
statement.executeQuery("show devices from table0 offset 1 limit 1"),
1);
- // TODO: Reopen
- if (false) {
- // Test delete devices
- statement.execute("delete devices from table0 where region_id = '1'
and plant_id = '木兰'");
- TestUtils.assertResultSetSize(statement.executeQuery("show devices
from table0"), 1);
+ // Test delete devices
+ statement.execute("delete devices from table0 where region_id = '1' and
plant_id = '木兰'");
+ TestUtils.assertResultSetSize(statement.executeQuery("show devices from
table0"), 1);
- // Test successfully Invalidate cache
- statement.execute(
- "insert into table0(region_id, plant_id, device_id, model,
temperature, humidity) values('1', '木兰', '3', 'A', 37.6, 111.1)");
- TestUtils.assertResultSetSize(statement.executeQuery("show devices
from table0"), 2);
+ // Test successfully Invalidate cache
+ statement.execute(
+ "insert into table0(region_id, plant_id, device_id, model,
temperature, humidity) values('1', '木兰', '3', 'A', 37.6, 111.1)");
+ TestUtils.assertResultSetSize(statement.executeQuery("show devices from
table0"), 2);
- // Test successfully delete data
- TestUtils.assertResultSetSize(
- statement.executeQuery("select * from table0 where region_id =
'1'"), 1);
+ // Test successfully delete data
+ TestUtils.assertResultSetSize(
+ statement.executeQuery("select * from table0 where region_id =
'1'"), 1);
- try {
- statement.executeQuery("delete devices from table0 where time = 1");
- fail("Delete devices shall fail when specifies non tag column");
- } catch (final Exception e) {
- assertEquals(
- "701: The TIME/FIELD columns are currently not allowed in
devices related operations",
- e.getMessage());
- }
+ try {
+ statement.executeQuery("delete devices from table0 where time = 1");
+ fail("Delete devices shall fail when specifies non tag column");
+ } catch (final Exception e) {
+ assertEquals(
+ "701: The TIME/FIELD columns are currently not allowed in devices
related operations",
+ e.getMessage());
}
}
}
diff --git
a/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBTableIT.java
b/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBTableIT.java
index 1bfd554dde2..d27e298f877 100644
---
a/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBTableIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBTableIT.java
@@ -390,70 +390,67 @@ public class IoTDBTableIT {
statement.execute(
"insert into table2(region_id, plant_id, color, temperature, speed)
values(1, 1, 1, 1, 1)");
- // TODO: Reopen
- if (false) {
- // Test drop column
- statement.execute("alter table table2 drop column color");
-
- columnNames = new String[] {"time", "region_id", "plant_id",
"temperature", "speed"};
- dataTypes = new String[] {"TIMESTAMP", "STRING", "STRING", "FLOAT",
"DOUBLE"};
- categories = new String[] {"TIME", "TAG", "TAG", "FIELD", "FIELD"};
- final String[] statuses = new String[] {"USING", "USING", "USING",
"USING", "USING"};
- try (final ResultSet resultSet = statement.executeQuery("describe
table2 details")) {
- int cnt = 0;
- ResultSetMetaData metaData = resultSet.getMetaData();
- assertEquals(describeTableDetailsColumnHeaders.size(),
metaData.getColumnCount());
- for (int i = 0; i < describeTableDetailsColumnHeaders.size(); i++) {
- assertEquals(
- describeTableDetailsColumnHeaders.get(i).getColumnName(),
- metaData.getColumnName(i + 1));
- }
- while (resultSet.next()) {
- assertEquals(columnNames[cnt], resultSet.getString(1));
- assertEquals(dataTypes[cnt], resultSet.getString(2));
- assertEquals(categories[cnt], resultSet.getString(3));
- assertEquals(statuses[cnt], resultSet.getString(4));
- cnt++;
- }
- assertEquals(columnNames.length, cnt);
+ // Test drop column
+ statement.execute("alter table table2 drop column color");
+
+ columnNames = new String[] {"time", "region_id", "plant_id",
"temperature", "speed"};
+ dataTypes = new String[] {"TIMESTAMP", "STRING", "STRING", "FLOAT",
"DOUBLE"};
+ categories = new String[] {"TIME", "TAG", "TAG", "FIELD", "FIELD"};
+ final String[] statuses = new String[] {"USING", "USING", "USING",
"USING", "USING"};
+ try (final ResultSet resultSet = statement.executeQuery("describe table2
details")) {
+ int cnt = 0;
+ ResultSetMetaData metaData = resultSet.getMetaData();
+ assertEquals(describeTableDetailsColumnHeaders.size(),
metaData.getColumnCount());
+ for (int i = 0; i < describeTableDetailsColumnHeaders.size(); i++) {
+ assertEquals(
+ describeTableDetailsColumnHeaders.get(i).getColumnName(),
+ metaData.getColumnName(i + 1));
}
-
- statement.execute("alter table table2 drop column speed");
-
- try {
- statement.executeQuery("select color from table2");
- fail();
- } catch (final SQLException e) {
- assertEquals("616: Column 'color' cannot be resolved",
e.getMessage());
+ while (resultSet.next()) {
+ assertEquals(columnNames[cnt], resultSet.getString(1));
+ assertEquals(dataTypes[cnt], resultSet.getString(2));
+ assertEquals(categories[cnt], resultSet.getString(3));
+ assertEquals(statuses[cnt], resultSet.getString(4));
+ cnt++;
}
+ assertEquals(columnNames.length, cnt);
+ }
- try {
- statement.executeQuery("select speed from table2");
- fail();
- } catch (final SQLException e) {
- assertEquals("616: Column 'speed' cannot be resolved",
e.getMessage());
- }
+ statement.execute("alter table table2 drop column speed");
- try {
- statement.execute("alter table table2 drop column speed");
- } catch (final SQLException e) {
- assertEquals("616: Column speed in table 'test2.table2' does not
exist.", e.getMessage());
- }
+ try {
+ statement.executeQuery("select color from table2");
+ fail();
+ } catch (final SQLException e) {
+ assertEquals("616: Column 'color' cannot be resolved", e.getMessage());
+ }
- try {
- statement.execute("alter table table2 drop column time");
- } catch (final SQLException e) {
- assertEquals("701: Dropping tag or time column is not supported.",
e.getMessage());
- }
+ try {
+ statement.executeQuery("select speed from table2");
+ fail();
+ } catch (final SQLException e) {
+ assertEquals("616: Column 'speed' cannot be resolved", e.getMessage());
+ }
- // test data deletion by drop column
- statement.execute("alter table table2 add column speed double");
- TestUtils.assertResultSetEqual(
- statement.executeQuery("select speed from table2"),
- "speed,",
- Collections.singleton("null,"));
+ try {
+ statement.execute("alter table table2 drop column speed");
+ } catch (final SQLException e) {
+ assertEquals("616: Column speed in table 'test2.table2' does not
exist.", e.getMessage());
}
+ try {
+ statement.execute("alter table table2 drop column time");
+ } catch (final SQLException e) {
+ assertEquals("701: Dropping tag or time column is not supported.",
e.getMessage());
+ }
+
+ // test data deletion by drop column
+ statement.execute("alter table table2 add column speed double");
+ TestUtils.assertResultSetEqual(
+ statement.executeQuery("select speed from table2"),
+ "speed,",
+ Collections.singleton("null,"));
+
statement.execute("drop table table2");
try {
statement.executeQuery("describe table2");
@@ -504,14 +501,11 @@ public class IoTDBTableIT {
assertEquals("500: Unknown database test1", e.getMessage());
}
- // TODO: Reopen
- if (false) {
- try {
- statement.execute("alter table test1.test drop column a");
- fail();
- } catch (final SQLException e) {
- assertEquals("500: Unknown database test1", e.getMessage());
- }
+ try {
+ statement.execute("alter table test1.test drop column a");
+ fail();
+ } catch (final SQLException e) {
+ assertEquals("500: Unknown database test1", e.getMessage());
}
try {
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/ConfigMTree.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/ConfigMTree.java
index 0b4bf3f840c..ff91998a887 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/ConfigMTree.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/ConfigMTree.java
@@ -866,7 +866,7 @@ public class ConfigMTree {
}
if (columnSchema.getColumnCategory() == TsTableColumnCategory.TAG
|| columnSchema.getColumnCategory() == TsTableColumnCategory.TIME) {
- throw new SemanticException("Dropping id or time column is not
supported.");
+ throw new SemanticException("Dropping tag or time column is not
supported.");
}
node.addPreDeletedColumn(columnName);
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DeleteDevice.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DeleteDevice.java
index 79bf8147da3..6d3f3438f08 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DeleteDevice.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DeleteDevice.java
@@ -23,7 +23,6 @@ import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.schema.column.ColumnHeader;
import org.apache.iotdb.commons.schema.filter.SchemaFilter;
import org.apache.iotdb.commons.schema.table.TsTable;
-import org.apache.iotdb.db.exception.sql.SemanticException;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import
org.apache.iotdb.db.queryengine.execution.operator.schema.source.DeviceBlackListConstructor;
import
org.apache.iotdb.db.queryengine.execution.operator.schema.source.TableDeviceQuerySource;
@@ -68,7 +67,6 @@ public class DeleteDevice extends AbstractTraverseDevice {
public DeleteDevice(final NodeLocation location, final Table table, final
Expression where) {
super(location, table, where);
- throw new SemanticException("Delete device is unsupported yet.");
}
public void parseModEntries(final TsTable table) {
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropColumn.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropColumn.java
index 1cad3f8f3a3..20e18053088 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropColumn.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropColumn.java
@@ -19,8 +19,6 @@
package org.apache.iotdb.db.queryengine.plan.relational.sql.ast;
-import org.apache.iotdb.db.exception.sql.SemanticException;
-
import com.google.common.collect.ImmutableList;
import java.util.List;
@@ -48,7 +46,6 @@ public class DropColumn extends Statement {
this.field = requireNonNull(field, "field is null");
this.tableIfExists = tableIfExists;
this.columnIfExists = columnIfExists;
- throw new SemanticException("Drop column is unsupported yet.");
}
public QualifiedName getTable() {
diff --git a/pom.xml b/pom.xml
index 28f72ddc9bc..e278d579b44 100644
--- a/pom.xml
+++ b/pom.xml
@@ -167,7 +167,7 @@
<thrift.version>0.14.1</thrift.version>
<xz.version>1.9</xz.version>
<zstd-jni.version>1.5.6-3</zstd-jni.version>
- <tsfile.version>1.2.0-241224-SNAPSHOT</tsfile.version>
+ <tsfile.version>2.0.0-250109-SNAPSHOT</tsfile.version>
</properties>
<!--
if we claim dependencies in dependencyManagement, then we do not claim