You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Part of #2008. Letters (A, B0–B7, C, D, E) are the PRs listed there; this is C.
Scope
write.c, the orchestration the format interface was written for: a writer per segment, rolling at the target size, Iceberg file naming under <location>/data/, a FileMeta per file (counts, sizes, per-column bounds and null counts) for commit.
AM insert callbacks (tuple_insert, multi_insert, finish_bulk_insert): slots into the batch builder, field ids from the Iceberg schema into WriterOptions.field_ids.
Segments write straight to object storage; the QD gathers every FileMeta and commits once at pre-commit. Abort anywhere leaves no data file (resource owner plus object delete) and no snapshot.
Part of #2008. Letters (A, B0–B7, C, D, E) are the PRs listed there; this is C.
Scope
write.c, the orchestration the format interface was written for: a writer per segment, rolling at the target size, Iceberg file naming under<location>/data/, aFileMetaper file (counts, sizes, per-column bounds and null counts) for commit.tuple_insert,multi_insert,finish_bulk_insert): slots into the batch builder, field ids from the Iceberg schema intoWriterOptions.field_ids.FileMetaand commits once at pre-commit. Abort anywhere leaves no data file (resource owner plus object delete) and no snapshot.COPY ... FROMuses the same path.Out of scope
UPDATE/DELETE (E), partitioned tables (#1683 §2.3).
Depends on
A, B2, B4. Rolling,
FileMetaand abort logic are testable with the local-file functions first.Acceptance
INSERT ... SELECTyields files readable by pyarrow and Spark; manifest counts and bounds match the data.gp_vmem_limit_per_query; refusal surfaces asERRCODE_OUT_OF_MEMORY.