Re: Dyamic updates of NEW with pl/pgsql
От | Pavel Stehule |
---|---|
Тема | Re: Dyamic updates of NEW with pl/pgsql |
Дата | |
Msg-id | 162867791003121035n6a7d991m614fe966bd9bc38a@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Dyamic updates of NEW with pl/pgsql (David Fetter <david@fetter.org>) |
Ответы |
Re: Dyamic updates of NEW with pl/pgsql
|
Список | pgsql-hackers |
2010/3/12 David Fetter <david@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 <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. :) 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 <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 по дате отправления: