datalake_fdw: NUMERIC/DECIMAL in the Parquet format layer
メンテナーはふだん 3 日以内に返信
@MisterRaindrop がすでに取り組んでいます。
2026年9月13日 から。
評価
この issue はまだ評価されていません。
説明
Summary
contrib/datalake_fdw's Parquet format layer (#1951) refuses numeric columns at CREATE TABLE ... USING iceberg. DECIMAL is the most common column type in real lake tables, so this is the first type to add.
What has to be decided
- Storage form. Parquet stores DECIMAL four ways (INT32, INT64, FIXED_LEN_BYTE_ARRAY, BYTE_ARRAY). Iceberg's spec fixes the writer to
decimal(P,S)with P <= 38 backed by fixed-length bytes; the reader has to accept all four. - Unconstrained
numeric.atttypmod = -1has no precision or scale. Computing((typmod - 4) >> 16) & 65535without checking gives precision 65535 / scale 65531, so barenumericcolumns silently match nothing (the trap in lithium-tech/teavalidate.cpp:59-61). Iceberg needs P and S, so the likely answer is to refuse barenumericatCREATE TABLEand requirenumeric(P,S). - Precision above 38. PostgreSQL allows up to 1000;
decimal128caps at 38. Refuse atCREATE TABLE. - Conversion.
NumericVar<-> two's-complement int128, the way tea'sbridge.cpp:269-277andnumeric_var.cppdo it, withNaN/Infinityrefused on write.
Where
format/format_types.h/arrow_support.cpp:dl_format_type_refusal()decides whatCREATE TABLEaccepts; the mapping toarrow::decimal128(P, S)goes next to the other types.arrow_builder.cpp/arrow_decode.c: append and decode. The decoder reads the Arrow C data interface directly; the format string isd:P,S.- Tests in
test/automation/sqlrepo/smoke/format_parquet/, plusCREATE TABLErefusals iniceberg_am_reject.sql.
Deferred from #1951 on purpose: the framework there is settled, the type work is separate.
- 主要言語
- C
- スター
- 1.4k
- フォーク
- 262
- 平均マージ
- 4日 20時間
- マージ済み PR(30日)
- 57
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/cloudberry のほかの issue
-
[Bug] Expand fails to recognize user-defined tablespaces対応中かも @nix-oss が 61 日前に担当しました。 オープンtype: Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
apache/cloudberry#1885 · リアクション 2 件 ·
メンテナーはふだん 3 日以内に返信
-
gpexpand first stage fails: 'SyncPackages' object has no attribute 'ret' (extension sync never runs; regression)対応中かも @talmacschen-arch が 122 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
apache/cloudberry#1825 ·
メンテナーはふだん 3 日以内に返信
-
Lance support: contrib/lance_fdw and the MCP server's Lance tools対応中かも @MisterRaindrop が 3 日前に担当しました。 オープン
apache/cloudberry#2139 · コメント 1 件 · 担当者 1 名 ·
メンテナーはふだん 3 日以内に返信
-
type: Bug
難易度 3/5 半日 初心者へのやさしさ 58/100
apache/cloudberry#2137 ·
メンテナーはふだん 3 日以内に返信
-
[Proposal] Remove `gpcontrib/gpmapreduce` starting from Cloudberry 3.0対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンtype: Proposal
難易度 4/5 3〜5日 初心者へのやさしさ 22/100
apache/cloudberry#2136 · コメント 1 件 ·
メンテナーはふだん 3 日以内に返信
apache/cloudberry の issue をすべて見る
似ている issue
-
mewencode: base256[] and base128[] are indexed out of bounds by a non-ASCII octet対応中かも @kazu-yamamoto が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
kazu-yamamoto/Mew#276 ·
メンテナーはふだん 1 日以内に返信
-
[iwm] transaction_get() copies the whole payload regardless of the length asked for対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 91/100
FujiNetWIFI/fujinet-firmware#2045 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
[Performance]: Qwen-Image-2.1 CPU-only on i5-10500H (6C AVX2, 32 GB): 512x512 in 7.7 min at 8 stepsオープン
難易度 1/5 1時間未満 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
area:gates area:gfx found-by:critic kind:gate-defect
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
InauguralSystems/EigenScript#1825 ·
メンテナーはふだん 1 日以内に返信