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]

Reply via email to