Thread: Question about accessing current row data inside trigger

Question about accessing current row data inside trigger

From
peter Willis
Date:
Hello,

I have a trigger function written in C.
The trigger function is called via:

CREATE TRIGGER after_update AFTER UPDATE ON some_table
    FOR EACH ROW EXECUTE PROCEDURE  my_trigger_function();

    Since the trigger is called after each row update the actual row data
should be available in some way to the trigger.
    What functionality (SPI ?) do I use to use the column values from
the current row in the actual trigger?

thanks for any insight,

Peter



Re: Question about accessing current row data inside trigger

From
Michael Fuhr
Date:
On Tue, Mar 08, 2005 at 11:37:14AM -0800, peter Willis wrote:

> I have a trigger function written in C.
> The trigger function is called via:
>
> CREATE TRIGGER after_update AFTER UPDATE ON some_table
>    FOR EACH ROW EXECUTE PROCEDURE  my_trigger_function();
>
>    Since the trigger is called after each row update the actual row data
> should be available in some way to the trigger.
>    What functionality (SPI ?) do I use to use the column values from
> the current row in the actual trigger?

See "Writing Trigger Functions in C" and "C-Language Functions" in
the documentation.  Here are links to documentation for the latest
version of PostgreSQL:

http://www.postgresql.org/docs/8.0/interactive/trigger-interface.html
http://www.postgresql.org/docs/8.0/interactive/xfunc-c.html

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

Re: Question about accessing current row data inside trigger

From
Tom Lane
Date:
peter Willis <peterw@borstad.com> writes:
> I have a trigger function written in C.
> ...
>     Since the trigger is called after each row update the actual row data
> should be available in some way to the trigger.

Sure: tg_trigtuple or tg_newtuple depending on which state you want.
See
http://www.postgresql.org/docs/8.0/static/trigger-interface.html

            regards, tom lane

Re: Question about accessing current row data inside trigger

From
peter Willis
Date:
Hello,

This issue is resolved.
I was using the wrong struct.

Peter


Tom Lane wrote:

>peter Willis <peterw@borstad.com> writes:
>
>
>>I have a trigger function written in C.
>>...
>>    Since the trigger is called after each row update the actual row data
>>should be available in some way to the trigger.
>>
>>
>
>Sure: tg_trigtuple or tg_newtuple depending on which state you want.
>See
>http://www.postgresql.org/docs/8.0/static/trigger-interface.html
>
>            regards, tom lane
>
>
>
>



Re: Question about accessing current row data inside trigger

From
peter Willis
Date:
Hello,

I resolved this issue already.
The trigger now works fine.
I was looking at the wrong structure.

Thanks,

Peter


Michael Fuhr wrote:

>On Tue, Mar 08, 2005 at 11:37:14AM -0800, peter Willis wrote:
>
>
>
>>I have a trigger function written in C.
>>The trigger function is called via:
>>
>>CREATE TRIGGER after_update AFTER UPDATE ON some_table
>>   FOR EACH ROW EXECUTE PROCEDURE  my_trigger_function();
>>
>>   Since the trigger is called after each row update the actual row data
>>should be available in some way to the trigger.
>>   What functionality (SPI ?) do I use to use the column values from
>>the current row in the actual trigger?
>>
>>
>
>See "Writing Trigger Functions in C" and "C-Language Functions" in
>the documentation.  Here are links to documentation for the latest
>version of PostgreSQL:
>
>http://www.postgresql.org/docs/8.0/interactive/trigger-interface.html
>http://www.postgresql.org/docs/8.0/interactive/xfunc-c.html
>
>
>