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  (strk <strk@keybit.net>)
Re: Dyamic updates of NEW with pl/pgsql  (Merlin Moncure <mmoncure@gmail.com>)
Re: Dyamic updates of NEW with pl/pgsql  (David Fetter <david@fetter.org>)
Список 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 по дате отправления:

Предыдущее
От: hubert depesz lubaczewski
Дата:
Сообщение: Re: Dyamic updates of NEW with pl/pgsql
Следующее
От: Dag-Erling Smørgrav
Дата:
Сообщение: [patch] build issues on Win32