textsearch_sennaというのがあって,これはsennaを使った全文検索をpostgresqlに提供するために便利な演算子や関数を提供してくれるやつなんですが,これをアンインストールする必要が出てきた時に「インストール時に追加された関数とか演算子とかビューとか全部調べて手で削除しないとマズいのかーうへー」とか思ってたんですけど,そんなことする必要無かったのでメモ.
結論からいうと,$PG_HOME/share/contrib/uninstall_textsearch_senna.sql
を流し込んでやるとよろしい.このファイルはtextsearch_sennaインストール時に同時に提供されるファイルです.
psql --user=user_name -f $PG_HOME/share/contrib/uninstall_textsearch_senna.sql db_name
これで関連のものがDBから削除されるので,あとはtextsearch_sennaをインストールする時に使ったMakefileを利用して
PATH=$PG_HOME/bin/:$PATH make uninstall
などとしてやると完全にアンインストールされます.ちゃんとアンインストールの為のユーティリティが用意されていた!
ちなみになぜキレイに消し去らなければならないのかというと,pg_updateでpgサーバのバージョンを上げるとなった時に,新しいバージョンではtextsearch_sennaは必要無いのにも関わらず「古いバージョンがtextsearch_senna要求してるけど新しいバージョンにはtextsearch_sennaが入ってないよ〜」とか怒られて死ぬのでそれを回避する為です.
世の中には色々な理由があります.理由があるのです.