postgresql-9.1.1 にてはまる。

PostgreSQL-9.1.1 を DL し、textsearch_ja にて 全文検索を行おうと設定を行っていました。
textsearch_ja についてはこちらを参照(http://textsearch-ja.projects.postgresql.org/index-ja.html)

今までのリリースとおりに、textsearch_ja.sql まで実行完了、そしてtsearch2 を入れようとしたところ、
あれ。$PGHOME/share/contrib の下にファイルがない
ということで探したところ $PGHOME/share/extension/tsearch2--1.0.sql になっていた。
まぁここまではOK。
そして以下のように対象のSQLを実行


psql -f share/extension/tsearch2--1.0.sql
CREATE DOMAIN
CREATE DOMAIN
CREATE DOMAIN
CREATE DOMAIN
CREATE FUNCTION
psql:share/extension/tsearch2--1.0.sql:21: ERROR: could not access file "MODULE_PATHNAME": No such file or directory
psql:share/extension/tsearch2--1.0.sql:27: ERROR: could not access file "MODULE_PATHNAME": No such file or directory
....
あれ。おかしい。おかしい。。おかしい。。。
でも、動けばいいかということで、全文検索の確認を行うも

postgres=# SELECT to_tsvector('japanese', 'ユーザとユーザーは正規化されます。ミラーとミラは別扱い。');
ERROR: invalid input syntax for type oid: "japanese"
LINE 1: SELECT to_tsvector('japanese', 'ユーザとユーザーは?...
見事to_tsvector処理でエラー。oid を english にしてもエラー。入れ方が悪かったかと思い2時間ほど繰り返す。が、結果同じ。
にしてもよくよく見ると$PGHOME/share/extensionの下の*.sqlファイルすべてMODULE_PATHNAMEが置き換わってない。
それぞれのPATHNAME全部変更はいくらなんでも面倒だ。ということでPostgreSQL-9.0.5 をおとなしく使うことにしました。
※通常なら、$libdir/xxxxx になります。そして、PostgreSQL-9.0.5 なら素直に一発で構築完了でした。時間が。。。



簡単に本件を調べてみましたが、以下のforumの記事でも問題点としてあがっていた事象でした。
http://postgresql.1045698.n5.nabble.com/Extensions-vs-PGXS-MODULE-PATHNAME-handling-td3382870.html

簡単なことですが、pg_config で出てくる、pgxs.mk の MODULE_PATHNAMEの置換の正規表現周りということ。

9.1.Xから、extensionとしていろいろ変更したため、MODULE_PATHNAMEが書き換わらなくなったのですね。
9.1.2では直るかなー。

                          • -

追記)

9.1.X からは create extension にてFUNCTIONを作成するようです。
コマンドは以下
psql# create extension tsearch2;
新機能に書いてありますね。。。