Re: Dyamic updates of NEW with pl/pgsql - Mailing list pgsql-hackers

From David Fetter
Subject Re: Dyamic updates of NEW with pl/pgsql
Date
Msg-id 20100312165456.GC15080@fetter.org
Whole thread Raw
In response to Re: Dyamic updates of NEW with pl/pgsql  (Andrew Dunstan <andrew@dunslane.net>)
Responses Re: Dyamic updates of NEW with pl/pgsql
List pgsql-hackers
On Wed, Mar 10, 2010 at 07:50:16AM -0500, Andrew Dunstan wrote:
> hubert depesz lubaczewski wrote:
> >On Tue, Mar 09, 2010 at 06:59:31PM +0100, Pavel Stehule wrote:
> >>2010/3/9 strk <strk@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.

This is, by the way, an excellent argument for including hstore in
core in 9.1. :)

Cheers,
David.
-- 
David Fetter <david@fetter.org> http://fetter.org/
Phone: +1 415 235 3778  AIM: dfetter666  Yahoo!: dfetter
Skype: davidfetter      XMPP: david.fetter@gmail.com
iCal: webcal://www.tripit.com/feed/ical/people/david74/tripit.ics

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate


pgsql-hackers by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: buildfarm logging versus embedded nulls
Next
From: Bruce Momjian
Date:
Subject: Re: Warning about invalid .pgpass passwords