IvorySQL: 切り替え可能なモードを持つ Oracle 互換 PostgreSQL
オープンソースの Oracle 互換 PostgreSQL。 IvorySQL のハイライトの 1 つは、Oracle の PL/SQL 構文と Oracle スタイルのパッケージをサポートする PL/iSQL 手続き型言語です。
ひと目でわかる
- これは何?
- GUC パラメータと PL/iSQL プロシージャ言語を通じて Oracle 互換性を追加するオープンソースの PostgreSQL フォーク。
- 誰に向いている?
- IvorySQL の README は、PostgreSQL との互換性を維持しながら Oracle 機能を提供するプロジェクトを説明しています。Docker ベースの開発環境、フォーマットフック、明確なコミュニティチャネルが含まれています。
- 商用利用できる?
- できます。Apache-2.0 は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 2 日前です。
- 何の言語で書かれている?
- 主に C です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月19日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
PostgreSQL ベースと Oracle 互換モード
IvorySQL は PostgreSQL から開発され、高度でフル機能を備えたオープンソースの Oracle 互換 PostgreSQL と自称しています。README は、最新の PostgreSQL との 100% 互換性とドロップイン置換を維持することにコミットしていると述べています。動作を切り替えるために、`ivorysql.compatible_mode` GUC パラメータを追加し、Oracle と PostgreSQL の互換モードを切り替えます。もう一つのハイライトは、Oracle の PL/SQL 構文と Oracle スタイルのパッケージをサポートするプロシージャ言語 PL/iSQL です。プロジェクトは Apache 2 ライセンスでリリースされ、あらゆる種類の貢献を明示的に歓迎しています。
インストール方法とドキュメントリンク
README は、IvorySQL のインストールと実行に関する公式クイックスタートガイドと、より詳細な手順についてはインストールドキュメントを指しています。Yum、Docker、RPM、ソースコードインストールの4つのインストール方法がリストされています。各方法はオンラインドキュメントの特定のセクションにリンクしています。README にはこれらの方法のコマンドはリンク以外には含まれておらず、オプションのみが説明されています。一貫した開発環境のために、リポジトリにはすべてのビルド依存関係を含む Docker ベースのセットアップも含まれており、次のセクションで説明します。
Docker と Meson による開発環境
リポジトリは開発用の Docker Compose セットアップを提供しています。記録された手順は `docker compose up -d` で始まり、`docker compose exec dev bash` で開発コンテナに入ります。コンテナ内では、`./configure --prefix=/home/ivorysql/ivorysql --enable-debug --enable-cassert --with-uuid=e2fs --with-libxml` で設定し、`make -j$(nproc)` と `make install` でビルドします。Oracle モードでデータベースを初期化するには、README は `initdb -D data_ora -m oracle` を示し、続いて `pg_ctl -D data_ora start` を使用します。テストは `make oracle-check` で実行します。代替として、Meson ビルドも記録されています: `meson setup build -Dcassert=true -Dbuildtype=debug`、次に `ninja -C build`。README は Meson がクリーンなソースツリーを必要とすることに言及しており、以前に `./configure` を実行した場合は、最初に `make distclean` を実行してください。
フォーマットフックと CI チェック
IvorySQL には、`.githooks/pre-commit` に事前コミットフォーマットフックが含まれています。有効にするには、`git config core.hooksPath .githooks` を実行するか、`make code-format`(同等に `bash tools/enable-git-hooks.sh`)を使用します。フックはリポジトリ内のツール `src/tools/pgindent` と `src/tools/pg_bsd_indent` のみに依存し、コミット時にステージされた C/C++ ファイルを pgindent でフォーマットし、ステージ領域に再追加します。`FormatCheck` という Cirrus ワークフローは、プルリクエストで変更されたファイルに対して `pgindent --check` を実行します。これらの詳細は README から直接得られています。
貢献ガイドラインと CLA 要件
README には多くの貢献方法がリストされています: ドキュメント更新、翻訳、ウェブサイトのデザイン作業、テスト、問題報告、修正や機能のプルリクエスト提出、メーリングリストでの質問への回答などです。詳細なルールについては、コミュニティ貢献ガイドと開発者貢献ガイドを参照しています。コードを提出する前に、貢献者は貢献者ライセンス契約(CLA)に署名する必要があり、README はそれが貢献者とプロジェクトの両方を保護すると述べています。さらに、AI コーディングアシスタント向けの専用ドキュメントがあり、貢献する前に読む必要があり、ライセンス、帰属、コード品質基準をカバーしています。
コミュニティチャネルと公式リソース
プロジェクトは、lists.ivorysql.org でホストされている一般メーリングリストとハッカーズメーリングリスト、さらに Discord サーバーと X/Twitter アカウントを維持しています。バグ報告と機能リクエストは GitHub Issues を通じて行われ、ソースコードは GitHub および GitCode/AtomGit で利用できます。公式ウェブサイトは ivorysql.org、ドキュメントサイトは docs.ivorysql.org です。README にはメーリングリストのアーカイブと Discord 招待へのリンクも含まれています。
ライセンス条項とその対象外
IvorySQL は Apache ライセンス 2.0 の下でリリースされています。このライセンスは、作品および派生作品を複製、派生作品を作成、公に表示および実行、サブライセンス、配布するための永続的、世界的、非独占的、無償、ロイヤリティフリー、取消不能の著作権ライセンスを付与します。また、特定の条件下で特許ライセンスも付与します。ライセンス本文は、サポート、保証、セキュリティ、または本番環境への readiness については何も述べていません。ソフトウェアが安全であるとか、特定の目的に適しているとは述べていません。そのような主張は他の場所から来る必要があり、README もそのような主張をしていません。導入を検討する組織は、既存 SQL が PostgreSQL 側の構文と PL/SQL 側の構文のどちらに依存しているかを分けて棚卸しできます。Docker 手順なら `initdb -D data_ora -m oracle`、起動後の `make oracle-check`、通常の PostgreSQL 接続の三つを同じ版で比較し、互換モード切り替えが対象アプリの接続設定に与える差を記録するのが実務的です。
編集部の結論
IvorySQL の README は、PostgreSQL との互換性を維持しながら Oracle 機能を提供するプロジェクトを説明しています。Docker ベースの開発環境、フォーマットフック、明確なコミュニティチャネルが含まれています。Apache 2.0 ライセンスは広範な再利用権を付与しますが、ライセンス本文と README はサポート、保証、セキュリティについて主張していません。
コミュニティノート