cseはつみきウェブで配布されているフリーのSQL実行環境です。Oracle、PostgreSQL、MySQLは、ネイティブ呼び出しが出来ます。また、ODBCでの接続も行えるため多くのデータベースで利用が出来お勧めです。
PostgreSQLからネイティブ接続するためには、libpq.dllが必要になります。このlibpqですが、日本語Windows版 libpqが有名です。が、PostgreSQL 6.5から更新されていないため、md5認証に未対応かつ、長いSQLが実行出来ません。
そのため、PostgreSQL 8.2.4のソースからlibpq.dllを作ってみました。ただし、SSL未対応です。
しかし、cseでPostgreSQLへ接続する時にデータベース名を「"」で囲って呼び出しを行っているためそのままではデータベースへ接続出来ません。そのため、データベース名が「"」で囲まれている時は「"」を削除して接続を行うよう修正しました。無保証ですが、興味のある人は使って下さい。
過去バージョン
MeCabを使って、分かち書きをするPostgreSQLのユーザ定義関数です。
PostgreSQL 7.4以降に対応しています。動作確認は、Debian (3.1)、PostgreSQL 8.1.2、MeCab 0.90rc8、mecab-ipadic 2.7.0-20051110で行いました。
事前にMeCabをインストールしておく必要があります。また、ビルドにPostgreSQLのソースが必要になります。
分かち書き出来るユーザ定義関数が出来ると何がうれしいかというと、Tsearch2を使ってフルテキストサーチインデックスを作成出来ます。
NTT公開している、PostgreSQL + Tsearch2日本語化パッチによる日本語全文検索システムの、pgkakasiw部分をpgmecabに置き換えて使えます。
PostgreSQL + Tsearch2日本語化パッチによる日本語全文検索システムは、文字コードEUC-JPのみ対応ですが、pgmecabはmecabが対応する文字コードに対応出来ます。動作確認はUTF8で行いました。
MeCabの文字コードとPostgreSQLのデータベースを統一しておく必要があるので注意してください。
PostgreSQL + Tsearch2 + pgmecabによる日本語全文検索の方法は、PostgreSQL + Tsearch2日本語化パッチによる日本語全文検索システムのpgkakasiwの部分をpgmecabに置き換えながらトリガを作成し、検索用WHERE句を作成してもらえれば対応出来ます。
そのうち時間を作って、ここで方法を公開したいと思います。ひとまず、ソースの配布だけ。
ライセンスはGPLにしました。Apache Software Licenseにしたかったのですが、pgmecabのソースのアイデアとMakefile、Readmeに至るまでpgkakasiwのパクリと言って良いほどの内容です。なので、NTTに感謝してGPLとしました。
2006/02/15 ver.1.1 リリース。pgmecabへ空文字を渡すとNULLを返す仕様にしていたが、空文字が渡された時にNULLを返すとtsearch2の関数がエラーを出力するため、空文字が渡されたら空文字を返すよう仕様を変更。
最新バージョン pgmecab-1.1.tar.bz2
古いバージョンを使いたい人は下記のリンクから取得してください。
旧バージョン pgmecab-1.0.tar.bz2