Re: Dyamic updates of NEW with pl/pgsql
От | David Fetter |
---|---|
Тема | Re: Dyamic updates of NEW with pl/pgsql |
Дата | |
Msg-id | 20100312165456.GC15080@fetter.org обсуждение исходный текст |
Ответ на | Re: Dyamic updates of NEW with pl/pgsql (Andrew Dunstan <andrew@dunslane.net>) |
Ответы |
Re: Dyamic updates of NEW with pl/pgsql
|
Список | 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 по дате отправления: