Tishj opened a new issue, #17334:
URL: https://github.com/apache/iceberg/issues/17334
### Apache Iceberg version
None
### Query engine
None
### Please describe the bug 🐞
Spark sql
```sql
CREATE or REPLACE TABLE default.simple_v3_table
TBLPROPERTIES (
'format-version' = '3',
'write.delete.mode' = 'merge-on-read',
'write.delete.format' = 'puffin',
'write.update.mode' = 'merge-on-read'
)
AS SELECT * FROM parquet_file_view;
delete from default.simple_v3_table where c_custkey % 2 = 0;
```
Produced a puffin file like so:
```
File Size: 25484 bytes
Number of Blobs: 2
==================================================
Blob 0:
Type: deletion-vector-v1
Snapshot ID: -1
Sequence Number: -1
Fields: [2147483645]
Properties: {'referenced-data-file':
'/Users/thijs/DuckDBLabs/duckdb_iceberg/data/generated/iceberg/spark-local/default/simple_v3_table/data/00001-2-a1c10f5b-fff5-4f98-9020-207ede834bd8-0-00001.parquet',
'cardinality': '61440'}
Data Length: 16432 bytes
Blob 1:
Type: deletion-vector-v1
Snapshot ID: -1
Sequence Number: -1
Fields: [2147483645]
Properties: {'referenced-data-file':
'/Users/thijs/DuckDBLabs/duckdb_iceberg/data/generated/iceberg/spark-local/default/simple_v3_table/data/00002-3-a1c10f5b-fff5-4f98-9020-207ede834bd8-0-00001.parquet',
'cardinality': '13560'}
Data Length: 8232 bytes
Footer Payload:
{
"blobs": [
{
"type": "deletion-vector-v1",
"fields": [
2147483645
],
"snapshot-id": -1,
"sequence-number": -1,
"offset": 4,
"length": 16432,
"properties": {
"referenced-data-file":
"/Users/thijs/DuckDBLabs/duckdb_iceberg/data/generated/iceberg/spark-local/default/simple_v3_table/data/00001-2-a1c10f5b-fff5-4f98-9020-207ede834bd8-0-00001.parquet",
"cardinality": "61440"
}
},
{
"type": "deletion-vector-v1",
"fields": [
2147483645
],
"snapshot-id": -1,
"sequence-number": -1,
"offset": 16436,
"length": 8232,
"properties": {
"referenced-data-file":
"/Users/thijs/DuckDBLabs/duckdb_iceberg/data/generated/iceberg/spark-local/default/simple_v3_table/data/00002-3-a1c10f5b-fff5-4f98-9020-207ede834bd8-0-00001.parquet",
"cardinality": "13560"
}
}
],
"properties": {
"created-by": "Apache Iceberg 1.11.0 (commit
6976e020b894f6a6777704df2b8c4458cb291ae9)"
}
}
```
Which has 2 blobs, for separate `referenced-data-file` references.
But the Scan Planning API returns:
```json
{
"status": "completed",
"plan-id": "sync-86b10b50-5c2c-487f-8768-8fceebe30ffa",
"delete-files": [
{
"spec-id": 0,
"content": "position-deletes",
"file-path":
"s3://warehouse/default/simple_v3_table/data/00000-6-0d2bb4cd-d1bb-462a-ac95-2f85d31b2724-00001-deletes.puffin",
"file-format": "puffin",
"partition": [],
"file-size-in-bytes": 25366,
"record-count": 61440,
"referenced-data-file":
"s3://warehouse/default/simple_v3_table/data/00001-2-e48509dd-3593-4cff-b3c0-56dada5eb013-0-00001.parquet",
"content-offset": 4,
"content-size-in-bytes": 16432
},
{
"spec-id": 0,
"content": "position-deletes",
"file-path":
"s3://warehouse/default/simple_v3_table/data/00000-6-0d2bb4cd-d1bb-462a-ac95-2f85d31b2724-00001-deletes.puffin",
"file-format": "puffin",
"partition": [],
"file-size-in-bytes": 25366,
"record-count": 13560,
"referenced-data-file":
"s3://warehouse/default/simple_v3_table/data/00002-3-e48509dd-3593-4cff-b3c0-56dada5eb013-0-00001.parquet",
"content-offset": 16436,
"content-size-in-bytes": 8232
}
],
"file-scan-tasks": [
{
"data-file": {
"spec-id": 0,
"content": "data",
"file-path":
"s3://warehouse/default/simple_v3_table/data/00001-2-e48509dd-3593-4cff-b3c0-56dada5eb013-0-00001.parquet",
"file-format": "parquet",
"partition": [],
"file-size-in-bytes": 6596897,
"record-count": 122880,
"split-offsets": [
4
],
"sort-order-id": 0,
"first-row-id": 0
},
"delete-file-references": [
1
],
"residual-filter": true
},
{
"data-file": {
"spec-id": 0,
"content": "data",
"file-path":
"s3://warehouse/default/simple_v3_table/data/00002-3-e48509dd-3593-4cff-b3c0-56dada5eb013-0-00001.parquet",
"file-format": "parquet",
"partition": [],
"file-size-in-bytes": 1458262,
"record-count": 27120,
"split-offsets": [
4
],
"sort-order-id": 0,
"first-row-id": 122880
},
"delete-file-references": [
1
],
"residual-filter": true
}
]
}
```
(note that the paths are different, I wasn't able to inspect the puffin file
from the rest catalog, so I reran the query against a local catalog in order to
be able to inspect the puffin file)
Both `file-scan-tasks` entries reference the same `delete-files` index, but
they should be separate
### Willingness to contribute
- [ ] I can contribute a fix for this bug independently
- [ ] I would be willing to contribute a fix for this bug with guidance from
the Iceberg community
- [x] I cannot contribute a fix for this bug at this time
--
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]