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]
