ルールシステムはこのままでよいのだろうか?

PostgreSQLではVIEWの仕組をRULEシステムをベースに構築しており、更にこれを利用して更新可能なVIEWも作成が可能となっている。しかし更新可能な
virtual tableとしてVIEWを見たときいささか心許ないものがある。実際私は更新可能なVIEWを使う気になれない。ということでわかっている問題点の覚書き。
RULEがマクロに過ぎないことによる副作用の発生が基本的な問題

  1. 引数の多重評価の発生 FAQ的な問題がある http://archives.postgresql.org/pgsql-sql/2003-07/msg00333.phpはその一例
  2. JOINビュー更新の不具合
  3. ビュー更新の際のロックのタイミング違い?の問題([pgsql-jp: 38295] SYNONYM 代わりのVIEW+RULEへの、更新時ロックの挙動について)
    • ロックのタイミングの違いとは少し違うようだ。RULEに従って変形していく時に発生する update .. from .. のPostgreSQL独自の構文においてfromで指定されるテーブルはread-onlyであって、それらには行ロックが取得されない。うーん、これはバグか仕様なのか?