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 <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.
This is, by the way, an excellent argument for including hstore in core in 9.1. :) Cheers, David. -- David Fetter <da...@fetter.org> http://fetter.org/ Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter Skype: davidfetter XMPP: david.fet...@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 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers