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


##########
regression-test/suites/external_table_p0/iceberg/iceberg_schema_change_ddl_with_branch.groovy:
##########
@@ -198,10 +198,11 @@ suite("iceberg_schema_change_ddl_with_branch", 
"p0,external,doris,external_docke
     
     // All branches expose the current table columns: id, name, grade, email, 
phone.
 
-    // Verify all branches have the latest columns
-    qt_all_branches_have_grade """ SELECT id, grade FROM 
${branch_table_name}@branch(branch1) WHERE grade > 0 ORDER BY id """
+    // Iceberg validates filters against the referenced snapshot schema, so 
columns renamed or
+    // added later are verified through projection instead of predicates on 
historical branches.
+    qt_all_branches_have_grade """ SELECT id, grade FROM 
${branch_table_name}@branch(branch1) ORDER BY id """

Review Comment:
   [P1] Preserve the branch ref through MVCC freezing
   
   Analysis resolves this branch with its ref and current schema, but 
`newExplicitSnapshotValue` stores only snapshot/schema IDs. Execution therefore 
reconstructs a null ref and calls `useSnapshot`, which in Iceberg 1.11 changes 
the scan's internal schema to the historical snapshot schema; the following 
`project(currentSchema)` changes only projection. `SnapshotScan.specs()` then 
binds pruning to that historical schema, so predicates on valid branch columns 
such as `grade` or `phone` fail with `ValidationException`. Removing those 
predicates makes this regression pass without preserving branch semantics. 
Please retain the ref (or otherwise preserve the branch-current internal 
schema) through the pinned MVCC value and restore predicate coverage through 
the Doris planner.



##########
fe/pom.xml:
##########
@@ -333,7 +333,7 @@ under the License.
         <!-- ATTN: avro version must be consistent with Iceberg version -->
         <!-- Please modify iceberg.version and avro.version together,
          you can find avro version info in iceberg mvn repository -->
-        <iceberg.version>1.10.1</iceberg.version>
+        <iceberg.version>1.11.0</iceberg.version>

Review Comment:
   [P1] Preserve the system-table task wire format across this bump
   
   `createIcebergSysSplit` Java-serializes Iceberg `ScanTask` objects, and each 
BE deserializes them with its locally packaged metadata-scanner Iceberg 
classes. The published 1.10.1 and 1.11.0 `Schema` classes have incompatible 
serial UIDs, ordinary metadata tasks embed `Schema`, and a direct cross-version 
probe fails with `InvalidClassException` in both directions. Generic 
system-table splits can still reach mixed-version BEs during rolling upgrade; 
only `position_deletes` has a compatibility gate. Please use a stable/versioned 
wire representation or otherwise support both mixed-version directions, and add 
mixed-version coverage.



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