github-actions[bot] commented on code in PR #67166:
URL: https://github.com/apache/doris/pull/67166#discussion_r3913179864


##########
fe/fe-type/src/main/java/org/apache/doris/catalog/Type.java:
##########
@@ -526,7 +526,7 @@ public String hideVersionForVersionColumn(
             StructType structType = (StructType) this;
             for (int i = 0; i < structType.getFields().size(); i++) {
                 StructField field = structType.getFields().get(i);
-                StringBuilder desc = new 
StringBuilder(field.getName()).append(":")
+                StringBuilder desc = new 
StringBuilder(field.getOriginalName()).append(":")

Review Comment:
   [P1] Keep the displayed Unicode field name executable
   
   For a current Iceberg `STRUCT<Σ:INT>`, this line now shows `Σ` while the 
runtime/thrift child name is ROOT-lowered `σ`. Nereids accepts 
`element_at(payload, 'Σ')`, but translation preserves that literal and BE 
`DataTypeStruct::try_get_position_by_name` uses bytewise `iequal`, so execution 
raises `Element not found` (length-changing pairs such as `ẞ`/`ß` fail too). 
Base displayed `σ`, which executed. Canonicalize a resolved struct selector to 
its runtime name before BE translation, or align BE with the same Unicode 
identity, and add an end-to-end query using the exact displayed Unicode 
spelling.



##########
fe/fe-connector/fe-connector-iceberg/src/main/java/org/apache/doris/connector/iceberg/IcebergConnectorMetadata.java:
##########
@@ -1336,7 +1336,8 @@ private DorisConnectorException 
upgradeNestedModifyError(IcebergTableHandle hand
         try {
             Types.NestedField current = executeAuthenticated(() ->
                     catalogOps.withTable(handle.getDbName(), 
handle.getTableName(),
-                            table -> 
table.schema().findField(column.getName())));
+                            table -> 
IcebergNestedColumnEvolution.findTopLevelField(

Review Comment:
   [P2] Resolve the nested path before upgrading this error
   
   This helper is also called by `modifyNestedColumn`, but it receives only 
`ConnectorColumn`, whose name is the leaf. For `MODIFY COLUMN Root.leaf 
ARRAY<SMALLINT>` with actual `Root.Leaf ARRAY<INT>` and unrelated top-level 
`LEAF ARRAY<FLOAT>`, `buildColumnType` fails, this new case-insensitive 
top-level lookup binds `LEAF`, and the error reports float-to-smallint instead 
of the requested int-to-smallint. Pass the full `ConnectorColumnPath` on the 
nested call and resolve that path before deriving the parity error; please add 
a same-leaf top-level decoy test.



-- 
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