Re: Trigger bug ? - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Trigger bug ?
Date
Msg-id baf9bba2-30c5-d1f4-0055-033b631fa365@aklaver.com
Whole thread Raw
In response to Trigger bug ?  (PegoraroF10 <marcos@f10.com.br>)
Responses Re: Trigger bug ?
List pgsql-general
On 5/22/19 2:33 PM, PegoraroF10 wrote:
> We created a usual trigger which seemed to be not firing or not working
> properly. Then we put some raise notices on it and saw that it was returning
> Null values. But why, it´s after insert and is a primary key, cannot be
> null.

https://www.postgresql.org/docs/11/plpgsql-trigger.html
"The return value of a row-level trigger fired AFTER or a 
statement-level trigger fired BEFORE or AFTER is always ignored; it 
might as well be null. However, any of these types of triggers might 
still abort the entire operation by raising an error."

More below.

> 
> create function MyFunction() returns trigger as $$
> begin
>    raise '%', new.MyPK;
> end$$ language plpgsql;
> 
> create trigger MyTrigger after insert on MyTable execute procedure
> MyFunction();
> 
> We forgot FOR EACH ROW/STATEMENT when created our trigger.
> 
> On docs it´s written {ROW/STATEMENT} between {}, so it´s needed. But why did
> it accepted our command to create that trigger ?

https://www.postgresql.org/docs/11/sql-createtrigger.html
"FOR EACH ROW
FOR EACH STATEMENT

     This specifies whether the trigger function should be fired once 
for every row affected by the trigger event, or just once per SQL 
statement. If neither is specified, FOR EACH STATEMENT is the default. 
Constraint triggers can only be specified FOR EACH ROW.
"
> 
> 
> 
> --
> Sent from: http://www.postgresql-archive.org/PostgreSQL-general-f1843780.html
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com



pgsql-general by date:

Previous
From: PegoraroF10
Date:
Subject: Trigger bug ?
Next
From: "David G. Johnston"
Date:
Subject: Re: Trigger bug ?