Edited at

PostgreSQL configureオプション(8.3~11)


はじめに

なんとなくPostgreSQLのconfigureオプションの変遷について調べてみた。


調査のきっかけ

先日、とある案件でPostgreSQL 8.3からAurora PostgreSQL 10への移行したい、みたいな話を聞いて、互換性に関する下調べをしてた。

で、リリースノートを見ると、configureオプションの変更についても記載されているバージョンがあったので、この際、configureのオプションの歴史を調べてみようかなと。

(configureを使ってソースビルドからインストールするユーザはそんなにいないような気もするけど)

だいたい、普段もprefixとか、beta版フェーズで--enable-debugを使うくらいだしなあ。


バージョン毎の変更点

configureオプションの変更なんて、そんなにないだろうと思っていたけど、調べてみると結構あるなという印象。


PostgreSQL 8.4

8.4では非常に多くのconfigureオプションの変更があった。こんなに変更があったとは。


  • 追加:datarootdir

  • 追加:docdir

  • 削除:with-docdir

  • 削除:with-docdir

  • 追加:htmldir

  • 追加:with-python

  • 追加:with-libedit-preferred

  • 追加:with-bonjour

  • 追加:with-ossp-uuid

  • 追加:disable-integer-datetimes

  • 削除:enable-integer-datetimes

  • 追加:disable-float4-byval

  • 追加:disable-float8-byval

  • 追加:with-segsize

  • 追加:with-blocksize

  • 追加:with-wal-segsize

  • 追加:with-wal-blocksize*

  • 追加:enable-coverage


PostgreSQL 9.0

スレッドセーフ指定がデフォルト有効に。


  • 追加:disable-thread-safety

  • 削除:enable-thread-safety


PostgreSQL 9.1

configureのオプションページには記載されていないけど、contrib/sepgsql(9.1~)のページに、with-selinuxオプションに関する記述があるので注意。


  • 追加:with-selinux


PostgreSQL 9.2, 9.3

変更なし。


PostgreSQL 9.4

with-extra-versionって、今まで使ったことなかったけど、パッチを当てたコードをビルドするような時に付与しておくと良さそう。(性能検証のときなど)


  • 追加:with-extra-version

  • 追加:with-uuid

  • 追加:enable-tap-tests


PostgreSQL 9.5

with-krb-srvnamの指定の有無で代用するようにしたのかな?(使ったことないので分からない)


  • 削除:with-krb5


PostgreSQL 9.6


  • 追加:with-bsd-auth

  • 追加:with-systemd


PostgreSQL 10

disable-integer-datetimesがついに削除された!


  • 追加:with-icu

  • 削除:disable-integer-datetimes

  • 追加:disable-strong-random


PostgreSQL 11

JIT対応に関連するwith-llvmの追加と、initdbパラメータとして指定可能になった、with-wal-segsizeが削除された。


  • 追加:with-llvm

  • 削除:with-wal-segsize


configureオプションの変遷

オプション名
8.3
8.4
9.0
9.1
9.2
9.3
9.4
9.5
9.6
10
11

prefix










exec-prefix










bindir










datadir










sysconfdir










libdir










includedir










datarootdir










mandir










localedir










docdir










with-docdir










htmldir










without-docdir










with-extra-version










with-includes










with-libraries










enable-nls










with-pgport










with-perl










with-python










with-tcl










with-tclconfig










with-gssapi










with-krb5










with-krb-srvname










with-llvm










with-icu










with-openssl










with-pam










with-bsd-auth










with-ldap










with-systemd










without-readline










with-libedit-preferred










with-bonjour










with-uuid










with-ossp-uuid










with-libxml










with-libxslt










disable-integer-datetimes










enable-integer-datetimes










disable-float4-byval










disable-float8-byval










with-segsize










with-blocksize










with-wal-segsize










with-wal-blocksize










disable-spinlock










disable-strong-random










disable-thread-safety










enable-thread-safety










with-system-tzdata










without-zlib










enable-debug










enable-coverage










enable-profiling










enable-cassert










enable-depend










enable-dtrace










enable-tap-tests










with-selinux











その他


  • 何気にバージョンによって、PostgreSQL文書での記述順序が違っていたりするのがちょっと面倒だった。

  • 今更、アルファベット順に変更するのは無理なんだろうなあ。

  • contrib/sepgsql のように拡張機能依存のconfigureオプションが他にもあるかもしれない。気づいたら随時追加する。


おわりに


  • configureオプションの変遷、調べてみると意外に面白かった。


  • with-extra-versionのように、使いこなすと検証作業に使えそうなオプションの存在も知ることができたので、たまにはこういう調査もやって良かったなと。