datalake_fdw: write path — INSERT to data files and a committed snapshot
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- c, postgresql, spark
- Ambito
- backend, data-engineering, databases
Direzione di ricerca
Start with write.c and the AM insert callbacks: tuple_insert, multi_insert, and finish_bulk_insert. Review dependencies A, B2, and B4, then exercise the local-file functions for rolling, FileMeta, and abort logic. Done means the listed INSERT and COPY acceptance cases pass, including commit visibility, cleanup, metadata, size limits, and memory refusal.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.- AM insert callbacks (
tuple_insert,multi_insert,finish_bulk_insert): slots into the batch builder, field ids from the Iceberg schema intoWriterOptions.field_ids. - Segments write straight to object storage; the QD gathers every
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.- With it: #1988 NUMERIC and #1990 timestamp units.
Out of scope
UPDATE/DELETE (E), partitioned tables (#1683 §2.3).
Depends on
A, B2, B4. Rolling, FileMeta and abort logic are testable with the local-file functions first.
Acceptance
- A multi-segment
INSERT ... SELECTyields files readable by pyarrow and Spark; manifest counts and bounds match the data. - Nothing visible before commit; abort leaves no files and no snapshot.
- Row group and target file size honoured within one row group.
- A large insert stays within
gp_vmem_limit_per_query; refusal surfaces asERRCODE_OUT_OF_MEMORY.
- Lingua principale
- C
- Stelle
- 1.4k
- Fork
- 248
- Merge medio
- 4g 10h
- PR unite (30g)
- 40
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/cloudberry
-
type: Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
apache/cloudberry#1885 · 2 reazioni ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
apache/cloudberry#1825 ·
-
type: Bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
apache/cloudberry#2048 · 1 reazione ·
-
type: Bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 40/100
apache/cloudberry#2047 ·
-
type: Bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
apache/cloudberry#2046 · 1 commento ·
Tutte le issue di apache/cloudberry
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
bradcypert/plum#53 ·
-
Component: GLib
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Status: Opened
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
nextbsd/nextbsd-userland#285 ·