2010/3/12 David Fetter <da...@fetter.org>: > 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. :)
I like it - but it looking little bit strange - I thinking we need only one function (maybe with some special support from pl executor) begin update_field(NEW, 'field', value); .... Pavel > > 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