hubert depesz lubaczewski wrote:
On Tue, Mar 09, 2010 at 06:59:31PM +0100, Pavel Stehule wrote:
2010/3/9 strk <s...@keybit.net>:
How can a pl/pgsql trigger change the
values of dynamic fields in NEW record ?

By "dynamic" I mean that the field name
is a variable in the trigger context.

I've been told it's easy to do with pl/perl but
I'd like to delive a pl/pgsql solution to have
less dependencies.
It isn't possible yet

well, it's possible. it's just not nice.

http://www.depesz.com/index.php/2010/03/10/dynamic-updates-of-fields-in-new-in-plpgsql/

Using an hstore in 9.0 it's not too bad, Try something like:

   CREATE OR REPLACE FUNCTION dyntrig()
    RETURNS trigger
    LANGUAGE plpgsql
   AS $function$

   declare
           hst hstore;
   begin
           hst := hstore(NEW);
           hst := hst || ('foo' => 'bar');
           NEW := populate_record(NEW,hst);
           return NEW;
   end;

   $function$;


But this question probably belongs on -general rather than -hackers.

cheers

andrew



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to