laskoviymishka opened a new pull request, #1089:
URL: https://github.com/apache/iceberg-go/pull/1089

   The partitioned position-delete writer was building partition paths from 
`iceberg.PositionalDeleteSchema`, which only contains `file_path` and `pos`.
   
   That breaks for partition specs based on real table columns. 
`PartitionSpec.PartitionType` silently skips fields whose source IDs are not 
present in the schema, so those partitions collapse to an empty struct and 
`PartitionToPath` returns `""`.
   
   The downstream effect is pretty bad: 
`writerFactory.getOrCreateRollingDataWriter` keys writers by that path, so 
every partition ends up sharing the same rolling writer. Since the writer keeps 
the first partition’s `partitionData`, the resulting delete file is tagged as 
belonging to the first partition while containing position deletes for files 
from multiple partitions.
   
   This PR fixes that by deriving the partition path from 
`metadata.CurrentSchema()`, matching what the data-side 
`partitionedFanoutWriter` already does.
   
   The actual file contents schema is unchanged: position-delete files still 
use `PositionalDeleteSchema`, which is passed separately to the writer factory 
via `withFactoryFileSchema`.
   
   Fixes #1082.


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