datalake_fdw: read path — planned fragments, CustomScan, projection and pruning
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
調査の方向性
Start with the engine plan and the CustomScan planner hook, using dependencies A, B2, and B4; validate the skeleton, projection, and pruning against the stub and local files first. Done means matching Spark rows across schema evolution and fragment splits, reporting correct EXPLAIN ANALYZE pruning, refusing unsupported or dictionary-encoded columns by name, and releasing readers on cancellation.
索引モデルが issue の本文から書いたものです。
説明
Part of #2008. Letters (A, B0–B7, C, D, E) are the PRs listed there; this is D.
Scope
- Fragments from the engine's plan (files, row-group ranges) assigned to segments; one large file may be split by row group.
- A CustomScan (planner hook, design decision D10) that opens a reader per fragment and decodes batches into slots.
- Projection by field id from the table's Iceberg schema (
ProjectionSet), so files written before a column was added or renamed read correctly; only needed columns are read. - Row-group pruning from the query's quals against Parquet statistics;
EXPLAIN ANALYZEreports row groups skipped. - With it: #1989 name mapping for files without field ids.
Out of scope
Delete files (E), time travel (#1683 §2.3), ANALYZE beyond the current zero-sample no-op.
Depends on
A, B2, B4. Skeleton, projection and pruning are testable against the stub and local files first.
Acceptance
- Same rows as Spark on the same table, including one Spark evolved (column added, renamed, dropped, int promoted to long).
- A file split into three fragments reads the same as whole; every segment reads only its fragments.
EXPLAIN ANALYZEshows pruning for a selective predicate and none forWHERE true.- Unsupported or dictionary-encoded columns are refused naming the column; cancel mid-scan releases the reader.
- 主要言語
- 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 ·