Re: functions: stable/volatile - Mailing list pgsql-general

From Tomasz Ostrowski
Subject Re: functions: stable/volatile
Date
Msg-id 20061120155901.GE29319@batory.org.pl
Whole thread Raw
In response to functions: stable/volatile  (Rafal Pietrak <rafal@zorro.isa-geek.com>)
Responses Re: functions: stable/volatile  (Rafal Pietrak <rafal@zorro.isa-geek.com>)
List pgsql-general
On Mon, 20 Nov 2006, Rafal Pietrak wrote:

> The most obvious construct I'd use is:
>         UPDATE my_table set filed=newvalue WHERE
>                  my_function(input)=my_table.selector_field;
> but it's useless, since the function would have been be evaluated for
> every row of the table.

-- Not tested

create function update_my_table(newvalue, input)
    returns void
    volatile
    language plpgsql
as $$
declare
    selector selector_field_type;
begin
    selector := my_function(input);
    update my_table set filed=newvalue
        where my_table.selector_field=selector;
end;
$$;

-- and then

select update_my_table(newvalue, input);

-- Not tested.

Regards
Tometzky
--
...although Eating Honey was a very good thing to do, there was a
moment just before you began to eat it which was better than when you
were...
                                                      Winnie the Pooh

pgsql-general by date:

Previous
From: "Frank Millman"
Date:
Subject: pg_get_serial_sequence is inconsistent
Next
From: Vivek Khera
Date:
Subject: Re: Eliminating bad characters from a database for upgrading from 7.4 to 8.1