Shared iceberg commit-with-retry primitive used by both the V1/V2 sink
committer and the V3 sink coordinator worker. Wraps the standard pattern
of “reload the table, build an action against the freshly-loaded snapshot,
commit, retry on transient errors only”.
Shared decoder with at most one cached Puffin reader/footer. Callers may reuse it across
sequential tasks for the same table/FileIO. Decoded bitmaps are never cached by path.
Puffin paths must identify immutable files; drop the reader to release its cache.
Resolves a partition spec by id from the table metadata, with a consolidated
error message. Shared spec-lookup mechanic for the pk-index merger, commit
coordinator, and sink commit paths.
Serializes files against the table’s current default partition spec, after
truncating oversized column statistics. Shared by the iceberg sink writer’s
commit-metadata generation and the pk-index merger’s delete-file serialization.
Iceberg V3 stores row lineage in data files as the reserved _row_id and
_last_updated_sequence_number columns. A table column with either name is ambiguous with the
lineage metadata column, so reject it when creating a V3 table.
Writes delete_vector as a single Puffin deletion-vector blob referencing data_file_path,
and returns its [DataFile] metadata (content PositionDeletes, format Puffin) with
referenced_data_file set.
Writes delete_vector as a single file-scoped Parquet position-delete file referencing
data_file_path, and returns its [DataFile] metadata (content PositionDeletes, format
Parquet) with referenced_data_file set.