datalake_fdw: write path — INSERT to data files and a committed snapshot
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- c, postgresql, spark
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- C
- スター
- 1.4k
- フォーク
- 248
- 平均マージ
- 4日 10時間
- マージ済み PR(30日)
- 40
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/cloudberry のほかの issue
-
type: Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
apache/cloudberry#1885 · リアクション 2 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
apache/cloudberry#1825 ·
-
type: Bug
難易度 3/5 1〜2日 初心者へのやさしさ 65/100
apache/cloudberry#2048 · リアクション 1 件 ·
-
type: Bug
難易度 4/5 3〜5日 初心者へのやさしさ 40/100
apache/cloudberry#2047 ·
-
type: Bug
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
apache/cloudberry#2046 · コメント 1 件 ·
apache/cloudberry の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
bradcypert/plum#53 ·
-
Component: GLib
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
Status: Opened
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
nextbsd/nextbsd-userland#285 ·