github-actions[bot] commented on code in PR #63825:
URL: https://github.com/apache/doris/pull/63825#discussion_r3317187726
##########
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateTableInfo.java:
##########
@@ -1105,6 +1111,27 @@ private void validateKeyColumns() {
}
}
+ private void validateIcebergRowLineageColumns() {
+ int formatVersion = 2;
+ String formatVersionProperty =
properties.get(TableProperties.FORMAT_VERSION);
Review Comment:
This default lets a reserved row-lineage column through when the Iceberg
catalog is configured to create v3 tables by default, for example with
`table-default.format-version=3`, and the CREATE TABLE statement omits
`properties('format-version'='3')`. `IcebergMetadataOps.createTableImpl` passes
only `createTableInfo.getProperties()` to Iceberg, and the Iceberg catalog
builder can still apply catalog default table properties during
`createTable`/`buildTable().create()`. In that path this method treats the
table as v2 and allows `_row_id` or `_last_updated_sequence_number`, but the
actual table is v3, so Doris will later append/use hidden row-lineage columns
with the same reserved names. Please resolve the effective format version from
the target Iceberg catalog defaults as well, or conservatively reject these
reserved names unless the statement explicitly sets `format-version < 3`. Add a
test for an Iceberg catalog with default format-version 3 and no table-level
format-version prop
erty.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]