Re: Tables cannot have INSTEAD OF triggers
От | Andres Freund |
---|---|
Тема | Re: Tables cannot have INSTEAD OF triggers |
Дата | |
Msg-id | 20150401170704.GA17586@awork2.anarazel.de обсуждение исходный текст |
Ответ на | Re: Tables cannot have INSTEAD OF triggers (Robert Haas <robertmhaas@gmail.com>) |
Ответы |
Re: Tables cannot have INSTEAD OF triggers
|
Список | pgsql-hackers |
On 2015-04-01 12:46:05 -0400, Robert Haas wrote: > On Wed, Apr 1, 2015 at 12:04 PM, Andres Freund <andres@2ndquadrant.com> wrote: > > On 2015-04-01 11:40:13 -0400, Robert Haas wrote: > > Without INSTEAD OF you can't, to my knowledge, return a valid tuple from > > the top level table without also inserting into it. Returning NULL after > > redirecting the tuple into a child table will break RETURNING; not > > returning NULL will insert the tuple in the top level table. > > > > So the only way to do redirection that doesn't break RETURNING without > > rules is to insert the tuple in the child in the BEFORE trigger return > > NEW and delete the top level table row in an AFTER trigger. That sucks. > > So, the idea is that INSTEAD OF would behave like BEFORE but the tuple > it returns wouldn't actually be inserted? That wasn't clear to me > from the OP, but I guess it would be a reasonable way to go. I'm not sure what the OP intended, but to me that's pretty much the only reasonable definition of INSTEAD OF for tables that I can think of. Greetings, Andres Freund
В списке pgsql-hackers по дате отправления: