@@演算子

co-sakaです。こんにちは。
PostgreSQL8.3beta2 が出ましたね。
Ludiaを試してくれましたか?
こちらでも少しずつ調査検証を始めています。


PostgreSQL8.3からtsearch2が最初からインストールされてます。
これが原因で問題が発生しました。
tsearch2とLudiaで、@@演算子のシーケンシャルスキャンの定義が競合します。
Ludiaのつもりでシーケンシャルスキャンを実行したつもりでも、
tsearch2のシーケンシャルスキャンが選択されます。


具体的に@@演算子の定義を見てみると以下。
(oprleftとは演算子の左側の型(text型は25)、oprrightは演算子の右側の型。)

test=# select * from pg_operator where oprname = '@@' 
         AND oprleft = 25 AND oprright = 25;
-[ RECORD 1 ]+------------
oprname      | @@
oprnamespace | 11
oprowner     | 10
oprkind      | b
oprcanmerge  | f
oprcanhash   | f
oprleft      | 25
oprright     | 25
oprresult    | 16
oprcom       | 17420
oprnegate    | 0
oprcode      | ts_match_tt
oprrest      | contsel
oprjoin      | contjoinsel
-[ RECORD 2 ]+------------
oprname      | @@
oprnamespace | 2200
oprowner     | 10
oprkind      | b
oprcanmerge  | f
oprcanhash   | f
oprleft      | 25
oprright     | 25
oprresult    | 16
oprcom       | 3762
oprnegate    | 0
oprcode      | pgs2contain
oprrest      | contsel
oprjoin      | contjoinsel


oprleftとoprrightが、tsearch2とludiaで一緒。
困った困った。
PostgreSQL8.2のtsearch2では、シーケンシャルスキャンに対応していなかったようで、
Ludiaと競合はしなかったのですが・・・。


さて、どうしようか。
tsearch2のシーケンシャルスキャンをアンインストールするか、
それとも、他に方法があるのか???
調査せねば!