PostgreSQLもPGroonaもどちらもデバッグオプション付きでビルドすることをオススメします。
Groongaもデバッグオプション(Groongaのconfigure
には--enable-debug
オプションがある)でビルドした方が便利なことが多いです。Groongaのパッケージを使う場合は、開発用パッケージをインストールする必要があります。Debian系のディストリビューションではlibgroonga-dev
で、Red Hat系のディストリビューションではgroonga-devel
です。
すべてのテストを実行するためにはtoken_fitlers/stem
というGroongaのプラグインをインストールする必要があります。groonga-token-filter-stem
パッケージをインストールするとインストールできます。
PostgreSQLのサイトからソースをダウンロードします。以下はPostgreSQL 16.2のソースをダウンロードして展開するコマンドラインです。
% wget https://ftp.postgresql.org/pub/source/v16.2/postgresql-16.2.tar.bz2
% tar xf postgresql-16.2.tar.bz2
% cd postgresql-16.2
CFLAGS="-O0 -g3"
引数付きでconfigure
を実行します。これでデバッグビルドになります。--prefix=/tmp/local
は指定してもしなくてもどちらでもよいです。
% ./configure CFLAGS="-O0 -g3" --prefix=/tmp/local
PostgreSQLをビルドしてインストールします。
% make -j$(nproc) > /dev/null
% make install > /dev/null
% (cd contrib/postgres_fdw && make install > /dev/null)
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
リリース版のPGroongaではなく最新のPGroongaを使うことをオススメします。以下は最新のPGroongaのソースをクローンするコマンドラインです。
% git clone --recursive git@github.com:pgroonga/pgroonga.git
% cd pgroonga
PGroongaのテストは2種類あります。
SQLベースのリグレッションテスト
RubyとSQLを使ったpgroonga_check
のテスト
通常、前者だけを使います。test/run-sql-test.sh
は前者用のテストランナーです。このスクリプトはPGroongaをビルド・インストールし、続けてSQLベースのリグレッションテストも実行します。PATH=/tmp/local/bin:$PATH
が必要なのはPostgreSQLを--prefix=/tmp/local
オプションを指定してビルドしたからです。この場合はpg_config
は/tmp/local/bin
にあります。
% PATH=/tmp/local/bin:$PATH test/run-sql-test.sh
テストも読んでください。