This is an automated email from the ASF dual-hosted git repository.
justinchen pushed a commit to branch UserDefineTime-TsFile
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/UserDefineTime-TsFile by this
push:
new 3c1821380ef Update TableHeaderSchemaValidator.java
3c1821380ef is described below
commit 3c1821380efdb22becfc183b17cd36c7221f5e74
Author: Caideyipi <[email protected]>
AuthorDate: Thu Jan 22 14:29:24 2026 +0800
Update TableHeaderSchemaValidator.java
---
.../metadata/fetcher/TableHeaderSchemaValidator.java | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableHeaderSchemaValidator.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableHeaderSchemaValidator.java
index 846dceeca2d..f1cf4b48987 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableHeaderSchemaValidator.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableHeaderSchemaValidator.java
@@ -70,6 +70,7 @@ import java.util.Optional;
import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;
+import static org.apache.iotdb.commons.schema.table.TsTable.TIME_COLUMN_NAME;
import static
org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager.getTSDataType;
import static
org.apache.iotdb.db.utils.EncodingInferenceUtils.getDefaultEncoding;
@@ -673,12 +674,16 @@ public class TableHeaderSchemaValidator {
}
private void addColumnSchema(final List<ColumnSchema> columnSchemas, final
TsTable tsTable) {
+ long timeColumnCount = 0;
for (final ColumnSchema columnSchema : columnSchemas) {
TsTableColumnCategory category = columnSchema.getColumnCategory();
if (category == null) {
throw new ColumnCreationFailException(
"Cannot create column " + columnSchema.getName() + " category is
not provided");
}
+ if (category == TsTableColumnCategory.TIME) {
+ ++timeColumnCount;
+ }
final String columnName = columnSchema.getName();
if (tsTable.getColumnSchema(columnName) != null) {
throw new SemanticException(
@@ -691,6 +696,13 @@ public class TableHeaderSchemaValidator {
}
tsTable.addColumnSchema(generateColumnSchema(category, columnName,
dataType, null, null));
}
+ if (timeColumnCount > 1) {
+ throw new SemanticException("A table cannot have more than one time
column");
+ }
+ if (timeColumnCount == 0) {
+ // append the time column with default name "time" if user do not
specify the time column
+ tsTable.addColumnSchema(new TimeColumnSchema(TIME_COLUMN_NAME,
TSDataType.TIMESTAMP));
+ }
}
public static TsTableColumnSchema generateColumnSchema(