Re: Why no INSTEAD OF triggers on tables?

Поиск
Список
Период
Сортировка
От Marko Tiikkaja
Тема Re: Why no INSTEAD OF triggers on tables?
Дата
Msg-id 52B00AF9.6040700@joh.to
обсуждение исходный текст
Ответ на Re: Why no INSTEAD OF triggers on tables?  (Robert Haas <robertmhaas@gmail.com>)
Ответы Re: Why no INSTEAD OF triggers on tables?
Список pgsql-hackers
On 12/17/13, 4:53 AM, Robert Haas wrote:
>> Well, I'm specifically thinking of master partition tables.  In that
>> case, we really want an INSTEAD OF trigger.
>
> /me scratches head.
>
> So, put a BEFORE trigger, and make it return NULL.  Same effect,
> different notation.

But it's not the same effect at all, that's the point:

=# create view foov as select 1 as a;
CREATE VIEW

=# create function insteadof() returns trigger as $$
$# begin
$# -- INSERT here
$# return new;
$# end
$# $$ language plpgsql;
CREATE FUNCTION

=# create function before() returns trigger as $$
$# begin
$# -- INSERT here
$# return null;
$# end
$# $$ language plpgsql;
CREATE FUNCTION

=# create trigger t1 instead of insert on foov for each row execute 
procedure insteadof();
CREATE TRIGGER

=# create trigger t2 before insert on bart for each row execute 
procedure before();
CREATE TRIGGER

=# insert into foov values (1) returning *; a
--- 1
(1 row)

INSERT 0 1

local:marko=#* insert into bart values (1) returning *; a
---
(0 rows)

INSERT 0 0



Regards,
Marko Tiikkaja



В списке pgsql-hackers по дате отправления:

Предыдущее
От: "imagenesis@gmail.com"
Дата:
Сообщение: Re: dpkg-buildpackage fails on 9.2.6 on ubuntu 12.04.3 LTS
Следующее
От: Andres Freund
Дата:
Сообщение: Re: Changeset Extraction Interfaces