@@演算子 その2

co-sakaです。


@@演算子 - Ludia開発日記
PostgreSQL8.3の場合、@@演算子はTsearch2で使われてるから、
Ludiaでは使えないぞ、というのが前の日記でした。
Tsearch2をアンインストールしてね、という仕様でも良かったのですが、
素直に@@演算子を変更します。


http://postgresql.jp/document/pg825doc/html/sql-createoperator.html
http://www.postgresql.org/docs/8.3/static/sql-createoperator.html
このページにある、

+ - * / < > = ~ ! @ # % ^ & | ` ?

を組み合わせて使います。

SELECT oprname FROM pg_operator;
ここを見てみると、同じ文字二連続の場合、以下の7つは使われている。

--, ~~, !!, @@, ##, &&, ||

つまり、

++, **, //, <<, >>, ==, %%, ^^, ``, ??

が同じ文字二連続の候補。

さて、どうしようか?

案1、
SELECT * FROM tab WHERE col %% '検索';
中間一致検索をイメージ。

案2、
SELECT * FROM tab WHERE col ?? '検索';
検索っぽくて良い。

案3、
SELECT * FROM tab WHERE col == '検索';
算術演算子を連想してしまう・・・。

案4、
SELECT * FROM tab WHERE col >^@^< '検索';
アスキーアート。


ご意見募集中!
メーリングリストにも流してみようか。


追記(2008/02/27)
案1になりました!
コメント、ありがとうございました!