lasdf1234 commented on PR #14552:
URL: https://github.com/apache/gravitino/pull/14552#issuecomment-6602688006

   Thanks for the careful review — addressed as follows:
   
   1. **Residual names** — After planning, residuals are remapped back onto the 
request (current) schema by field id via `prepareTasksForResponse` / 
`remapResidualToSchema`, so clients see current column names (e.g. `l2`) rather 
than snapshot names.
   
   2. **Client parse of dropped partition sources** — Tasks whose spec still 
has `unknown` are rewritten to the unpartitioned spec before the response 
(`asUnpartitionedTask`), so Iceberg clients can deserialize with their local 
`table.specs()` map. Covered with a serialize/parse round-trip test.
   
   3. **Branch movement** — When rewriting for a snapshot with no branch, 
predicates on columns added after that snapshot become `alwaysTrue` for file 
pruning and are reattached as current-schema residuals via 
`postSnapshotResidual`, matching the `useRef` path.
   
   4. **Source types** — Dropped partition sources are restored from historical 
table schemas (identity partition data only as a fallback). Transform result 
types and a binary guess are no longer used; unrestorable specs are left 
unchanged so empty plans are not made worse.
   
   5. **Duplicate dropped sources** — Restoration dedupes by source id 
(`_dropped_source_<id>`).
   
   Also kept `select: ["*"]` as project-all, and dropped the unnecessary 
`PlannedScan` / `planFileScanTasks` wrapper — residual prep is inlined in 
`planTableScan`.


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

Reply via email to