Re: Dyamic updates of NEW with pl/pgsql
От | Andrew Dunstan |
---|---|
Тема | Re: Dyamic updates of NEW with pl/pgsql |
Дата | |
Msg-id | 4B979588.4030408@dunslane.net обсуждение исходный текст |
Ответ на | Re: Dyamic updates of NEW with pl/pgsql (hubert depesz lubaczewski <depesz@depesz.com>) |
Ответы |
Re: Dyamic updates of NEW with pl/pgsql
Re: Dyamic updates of NEW with pl/pgsql Re: Dyamic updates of NEW with pl/pgsql |
Список | pgsql-hackers |
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. cheers andrew
В списке pgsql-hackers по дате отправления: