diff --git a/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBTableWithDefinedTimeIT.java b/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBTableWithDefinedTimeIT.java index 0d37085ad484b..6d260f1af5428 100644 --- a/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBTableWithDefinedTimeIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBTableWithDefinedTimeIT.java @@ -227,4 +227,26 @@ public void testCreateView() { fail(e.getMessage()); } } + + @Test + public void testAddTimeColumn() { + try (final Connection connection = + EnvFactory.getEnv().getConnection(BaseEnv.TABLE_SQL_DIALECT); + final Statement statement = connection.createStatement()) { + statement.execute("use " + TABLE_DATABASE); + + try { + statement.execute( + "create table table_time(device string tag, s1 int32 field, record_time timestamp time)"); + statement.execute("alter table table_time add column d_datetime timestamp time"); + fail("Add the TIME column should not be supported"); + } catch (SQLException e) { + assertEquals("701: Adding TIME column is not supported.", e.getMessage()); + } + + } catch (SQLException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TableConfigTaskVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TableConfigTaskVisitor.java index aa1f43d95ea42..c2f903398e2ab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TableConfigTaskVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TableConfigTaskVisitor.java @@ -722,6 +722,9 @@ protected IConfigTask visitAddColumn(final AddColumn node, final MPPQueryContext context.getSession().getUserName(), new QualifiedObjectName(database, tableName), context); final ColumnDefinition definition = node.getColumn(); + if (definition.getColumnCategory() == TsTableColumnCategory.TIME) { + throw new SemanticException("Adding TIME column is not supported."); + } return new AlterTableAddColumnTask( database, tableName,