ziting-openai commented on code in PR #5262:
URL: https://github.com/apache/datafusion-comet/pull/5262#discussion_r3930092772


##########
native/Cargo.toml:
##########
@@ -62,8 +62,8 @@ object_store = { version = "0.13.2", features = ["gcp", 
"azure", "aws", "http"]
 url = "2.2"
 aws-config = "1.8.18"
 aws-credential-types = "1.2.13"
-iceberg = { git = "https://github.com/apache/iceberg-rust";, rev = 
"8adaa872f31549dd5ad8255848715758228038bc" }
-iceberg-storage-opendal = { git = "https://github.com/apache/iceberg-rust";, 
rev = "8adaa872f31549dd5ad8255848715758228038bc", features = ["opendal-memory", 
"opendal-fs", "opendal-s3", "opendal-gcs", "opendal-oss", "opendal-azdls"] }
+iceberg = { git = "https://github.com/apache/iceberg-rust";, rev = 
"665c64e48e8d33797ecb1a421f327edd9b024879" }

Review Comment:
   At `598f5e979bdaf82b929596dfcae6ec116bae265e`, the compiler errors are 
fixed, but the new `FileScanTask` builder validation still rejects valid 
serialized scan tasks:
   
   - Metadata projections can omit a partition source from the serialized task 
schema. [Spark 4.1 scan 
CI](https://github.com/apache/datafusion-comet/actions/runs/33824701130/job/100880184873)
 fails `SELECT id, _spec_id` on a table partitioned by `category`: the task 
schema contains only `id`/`_spec_id`, and `.build()` at `planner.rs:4540` 
rejects missing source column 2. The expression shards similarly fail 
`COUNT(DISTINCT _file)` after pruning the partition source. These ordinary 
metadata queries do not require a v1 table or dropped columns. The [Iceberg 
1.11 Spark extension 
job](https://github.com/apache/datafusion-comet/actions/runs/33824701130/job/100880832892)
 also confirms an ordinary partitioned `DELETE`: 
`TestDelete.testDeleteWithPartitionedTable` creates `(id INT, dep STRING) 
PARTITIONED BY (dep)`, appends rows, then runs `DELETE ... WHERE id = 1`. Its 
native file-filter scan carries only `id`/`_file`, omits partition source `dep` 
(id 2), and fails the same builder validati
 on before the delete completes.
   - A v1 table partitioned by `[identity(region), identity(category)]` can 
remove the trailing category partition, write under its retained `void` spec, 
then drop the category column. The serializer filters the now-unknown value but 
retains the full spec because region remains; the builder rejects one value 
versus two fields. This case is source-traced.
   
   Please make the task schema, partition spec and values satisfy the new 
validation while preserving metadata projection and dropped-field semantics. 
Also supply partition values in 
`test_unified_partition_type_merges_specs_by_descending_spec_id`; [Rust 
CI](https://github.com/apache/datafusion-comet/actions/runs/33824701130/job/100875289278)
 confirms its missing-values failure at `planner.rs:7103`.
   
   These remain one Iceberg migration P2. CI tested synthetic merge 
`27cfb46bbf6309823fcfa3d90a56140fe15c898f`; the relevant Comet source, 
fixtures, harness configuration and dependency pins match the reviewed head. No 
local execution was performed.
   



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