plPerl: How to iterate over $_TD->{new} in a trigger function? - Mailing list pgsql-interfaces

From Dirk Heinrichs
Subject plPerl: How to iterate over $_TD->{new} in a trigger function?
Date
Msg-id 200606282000.43782.dirk.heinrichs@online.de
Whole thread Raw
Responses Re: plPerl: How to iterate over $_TD->{new} in a trigger function?
List pgsql-interfaces
Hi,

I want to write a generic trigger function, which can be attached to any
table, but it seems I'm to stupid :-) to get column/value pairs out of
$_TD->{new} and $_TD->{old}.

Here is my sample code:

create or replace function test_trig() returns trigger as $$       elog (INFO, "Table is: $_TD->{relname}\n");       my
%newrow= %_TD->{new};       elog (INFO, "$x=$y\n") while (($x,$y) = each %newrow);       return; 
$$ language plperl;

CREATE trigger trig1 after update or insert or delete on test for each row
execute procedure test_trig();

Table test can be anything. This is what I get when I insert something:

# insert into test (data) values ('foo');
INFO:  Table is: test

INFO:  =

INSERT 0 1

What I want to get at the second "INFO:" line is:

INFO: data=foo

Any hints?

Thanks...
Dirk

pgsql-interfaces by date:

Previous
From: "Robert Wimmer"
Date:
Subject: Re: jdbc windows
Next
From: Dirk Heinrichs
Date:
Subject: Re: plPerl: How to iterate over $_TD->{new} in a trigger function?