Re: bug (?) with RULEs with WHERE
От | Kovacs Zoltan |
---|---|
Тема | Re: bug (?) with RULEs with WHERE |
Дата | |
Msg-id | Pine.LNX.4.21.0110301346020.11253-100000@pc10.radnoti-szeged.sulinet.hu обсуждение исходный текст |
Ответ на | Re: bug (?) with RULEs with WHERE (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
On Sat, 27 Oct 2001, Tom Lane wrote: > Kovacs Zoltan <kovacsz@pc10.radnoti-szeged.sulinet.hu> writes: > > [...] > > foo=# CREATE RULE d AS ON INSERT TO c WHERE new.foo=5 DO INSTEAD SELECT foo FROM b; > > CREATE > > foo=# INSERT INTO c VALUES (5); > > ERROR: Cannot insert into a view without an appropriate rule > > You didn't provide a rule covering the new.foo<>5 case. > > In practice, you *must* have an unconditional INSTEAD rule present for > any view operation you want to allow. It can be DO INSTEAD NOTHING, > and then you can do all your useful work in conditional rules, but the > unconditional rule must be there. Else the system thinks that perhaps > the insert into the view would really happen. Thank you, I see. It works now. But in 7.1.1 on a rather complex view I experienced that the RULE has been executed as many times as many rows the view contains, although I added a WHERE to filter the rows: in fact it should have been executed only once. In 7.1.3 this problem doesn't occur. Has anything been changed since 7.1.1 in this code? So I'm migrating to 7.1.3 now. But currently I'm still having problems with user authentication (I get "Password authentication failed for user 'xxxx'." errors). I always used INSERT INTO pg_shadow... Is this changed? With ALTER USER... it works, of course. Do you suggest stopping use "INSERT INTO pg_shadow..."? TIA, Zoltan Kov\'acs, Zolt\'an kovacsz@pc10.radnoti-szeged.sulinet.hu http://www.math.u-szeged.hu/~kovzol ftp://pc10.radnoti-szeged.sulinet.hu/home/kovacsz
В списке pgsql-hackers по дате отправления: