3.x: Upgrade bundled orafce from 4.9.2 to 4.16.13
メンテナーはふだん 2 日以内に返信
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
調査の方向性
Start with gpcontrib/orafce/README.gp and the current regression schedule in gpcontrib/orafce; identify which of the 21 SQL tests can run in MPP before expanding coverage. Then compare the local patches with upstream tag VERSION_4_16_13 and preserve applicable changes. Done means the update chain, fresh install, upgrade and pg_upgrade paths pass, licensing checks stay green, and release notes describe user-visible changes.
索引モデルが issue の本文から書いたものです。
説明
Summary
The bundled gpcontrib/orafce is 4.9.2 (META.json:5; orafce.control default_version = '4.9', imported 2024-07). Propose upgrading it to 4.16.13 — the current release of the upstream series that supports PostgreSQL 16 — as part of 3.0.
orafce is the Oracle-compatibility layer many migration workloads depend on, so refreshing it is user-visible content for a major release, not just dependency hygiene.
Current state
- 4.9.2 is roughly seven minor releases and 2+ years behind upstream (4.10 → 4.16.x). 4.16.13 is currently packaged for PG16 by PGDG and distributions.
- The module is imported as a git subtree of
orafce/orafce(workflow documented ingpcontrib/orafce/README.gp), so the upgrade is agit subtree pullto tagVERSION_4_16_13, with local patches applied explicitly afterwards. - PG16 compatibility today is fine: there are 9
#if PG_VERSION_NUM >= 160000guards in the code, and CI runsgpcontrib/orafce:installcheckas part of the requiredic-gpcontribcheck. This issue is about refreshing content, not fixing a build. - Test coverage is thin:
Makefile:76,92runsREGRESS = orafceplus--schedule=parallel_schedule, but the schedule only listsinit,dbms_pipe_session_A,dbms_pipe_session_B— that is 4 of the 21 SQL test files (~19%). Thedbms_alerttests are commented out as MPP-unsuitable. - Local delta that must survive the upgrade:
regexp_not_like()added toorafce--4.8--4.9.sqlandorafce--4.9.sql(7bda69676d5);- MPP test adaptations (
gp_distributed_by,gp_partition_by,nlssort) and rebranding (b64d461e37c); - locale handling change in
others.c(4af1cf5a09b).
Why this belongs in 3.0
- A major release is the natural window to refresh a bundled dependency; doing it now avoids turning this into a multi-year jump.
- orafce is user-facing: accumulated upstream fixes and compatibility improvements can be summarized as a concrete 3.0 highlight in the release notes.
- It keeps future refreshes cheap — the next one can target a handful of minor releases instead of seven.
Work items
- Prerequisite: expand orafce regression coverage — move as many of the 21 test files into the schedule as can run single-node/MPP, keeping
dbms_alertskipped with an explicit reason. Without this, behavior changes from the upgrade are invisible. -
git subtree pullorafce/orafceat tagVERSION_4_16_13(perREADME.gp). - Re-apply the local delta:
regexp_not_like()(check whether upstream 4.16 has adopted it — drop the patch if so), MPP test adaptations,others.clocale handling, rebranding. - Ship the full upgrade chain from 4.9 to 4.16.13 (
orafce--4.9--4.10.sql…orafce--4.16.13.sql) plus the new base install script; bumporafce.controldefault_versionandMETA.json. - Verify the extension update path:
CREATE EXTENSION orafce VERSION '4.9'; ALTER EXTENSION orafce UPDATE;, and apg_upgradefrom a 2.x cluster (pg_upgrade'supdate_extensions.sqlemitsALTER EXTENSION orafce UPDATE). - Check licensing: orafce is 0BSD (
COPYRIGHT.orafce), registered underLICENSE:542+licenses/LICENSE-orafce.txt; confirm copyright/NOTICE text is still accurate after the update and RAT stays green. - Run the required
ic-gpcontribcheck plus broader ICW; prepare a short "user-visible changes" section for the 3.0 release notes.
Acceptance criteria
\dx orafcereports 4.16.13; fresh install, update from 4.9, and a 2.x → 3.0pg_upgradeall succeed.- Existing orafce behavior is unchanged except for documented upstream fixes/features; the expanded test suite passes.
regexp_not_like()and the other Cloudberry-specific behavior remain available.- License/NOTICE and RAT checks stay green; CI
ic-gpcontribis green. - A user-visible changes section is ready for the 3.0 release notes.
Risks
- Compatibility-layer semantics changes may alter results for Oracle-migration workloads; needs release-note attention.
- Local SQL patches complicate the subtree merge and the upgrade-script chain.
- Expanding tests in an MPP environment may require per-test expected-output adaptation — scope the prerequisite before starting the merge.
References
- orafce 4.16.13 packaged for PG16 (PGDG): https://www.postgresql.org/message-id/E1xDjRr-0000000146B-230h%40atalia.postgresql.org
- Upstream project and tags: https://github.com/orafce/orafce (
VERSION_4_16_13) - Subtree workflow:
gpcontrib/orafce/README.gp
- 主要言語
- C
- スター
- 1.4k
- フォーク
- 265
- 平均マージ
- 3日 18時間
- マージ済み PR(30日)
- 70
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/cloudberry のほかの issue
-
[Bug] Expand fails to recognize user-defined tablespaces対応中かも @nix-oss が 77 日前に担当しました。 オープンtype: Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
apache/cloudberry#1885 · リアクション 2 件 ·
メンテナーはふだん 2 日以内に返信
-
gpexpand first stage fails: 'SyncPackages' object has no attribute 'ret' (extension sync never runs; regression)対応中かも @talmacschen-arch が 138 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
apache/cloudberry#1825 ·
メンテナーはふだん 2 日以内に返信
-
難易度 3/5 半日 初心者へのやさしさ 30/100
apache/cloudberry#2224 ·
メンテナーはふだん 2 日以内に返信
-
[Bug] GPORCA: “could not find MotionState” for correlated EXISTS with LIMIT and a scalar subquery対応中かも @Alena0704 が 5 日前に担当しました。 オープンtype: Bug
apache/cloudberry#2221 · 担当者 1 名 ·
メンテナーはふだん 2 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 42/100
apache/cloudberry#2214 · コメント 2 件 ·
メンテナーはふだん 2 日以内に返信
apache/cloudberry の issue をすべて見る
似ている issue
-
bug core p3
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
RunanywhereAI/runanywhere-sdks#1258 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
rolotrealanis98/open-apollo#126 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
cython/cython#8110 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
onehumanbeing/esp32-iphone-agent#62 ·
メンテナーはふだん 1 日以内に返信
-
ai-driven-fuzzing bug claude Minor
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
linagora/open-bastion#425 ·
メンテナーはふだん 1 日以内に返信