ビルド

このドキュメントは開発者としてPGroongaをビルドする方法を説明しています。たとえば、新しい機能を開発したりバグを直したりするような開発者が対象になります。

もし、カジュアルなPGroonga開発者になりたい場合は、このドキュメントよりもカジュアル開発者としてビルドの方が適切です。

ビルド環境のセットアップ

PostgreSQLもPGroonaもどちらもデバッグオプション付きでビルドすることをオススメします。

デバッグオプション付きでGroongaもビルドした方がよいです。そのためには、cmake --preset=debug-maximum ...を使えます。

Groongaのパッケージを使う場合は、開発用パッケージをインストールする必要があります。Debian系のディストリビューションではlibgroonga-devで、Red Hat系のディストリビューションではgroonga-develです。

すべてのテストを実行するためにはtoken_fitlers/stemというGroongaのプラグインをインストールする必要があります。groonga-token-filter-stemパッケージをインストールするとインストールできます。

PostgreSQLのビルド方法

PostgreSQLのサイトからソースをダウンロードします。以下はPostgreSQL 17.0のソースをダウンロードして展開するコマンドラインです。

wget https://ftp.postgresql.org/pub/source/v17.0/postgresql-17.0.tar.bz2
tar xf postgresql-17.0.tar.bz2

--buildtype=debug引数付きでmeson setupを実行します。これでデバッグビルドになります。--prefix=/tmp/localは指定してもしなくてもどちらでもよいです。

meson setup \
  --buildtype=debug \
  --prefix=/tmp/local \
  postgresql-17.0.build \
  postgresql-17.0

PostgreSQLをビルドしてインストールします。

meson compile -C postgresql-17.0.build
meson install -C postgresql-17.0.build

PostgreSQLを初期化して実行します。

mkdir -p /tmp/local/var/lib
/tmp/local/bin/initdb \
  --locale C \
  --encoding UTF-8 \
  --set=enable_partitionwise_join=on \
  --set=max_prepared_transactions=1 \
  --set=random_page_cost=0 \
  -D /tmp/local/var/lib/postgresql
/tmp/local/bin/postgres -D /tmp/local/var/lib/postgresql

以下のワンライナーはPostgreSQL関連のすべてのデータをリセットするときに便利です。このワンライナーをシェルのヒストリーに入れておけば、すぐにこのワンライナーを再実行できます。

rm -rf /tmp/local/var/lib/postgresql && \
  mkdir -p /tmp/local/var/lib/postgresql &&
  /tmp/local/bin/initdb \
    --locale C \
    --encoding UTF-8 \
    --set=enable_partitionwise_join=on \
    --set=max_prepared_transactions=1 \
    --set=random_page_cost=0 \
    -D /tmp/local/var/lib/postgresql && \
 /tmp/local/bin/postgres -D /tmp/local/var/lib/postgresql

フォークリポジトリーの準備

開発するためにhttps://github.com/pgroonga/pgroonga/をフォークする必要があります。後でフォークしたリポジトリーからプルリクエストを作るかもしれません。GitHubのドキュメントも参照してください。

フォークしたリポジトリーをクローンするコマンドラインは次のとおりです。

git clone --recursive git@github.com:${YOUR_GITHUB_ACCOUNT}/pgroonga.git
cd pgroonga

PGroongaをビルドしてテストを実行する方法

PGroongaをビルドしてPGroongaのテストを実行するには次のコマンドラインを使います。

HAVE_XXHASH=1 test/run-sql-test.sh

PGroongaのテストは2種類あります。

通常、前者だけを使います。test/run-sql-test.shは前者用のテストランナーです。PGroongaをビルド・インストールしてSQLベースのリグレッションテストを実行します。

テストも読んでください。