Search Postgresql Archives

Re: concurrency in stored procedures

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/23/07, Ottavio Campana <ottavio@xxxxxxxxxxxxx> wrote:
Ottavio Campana wrote:
> What would you to in order to be sure that one function or a part of it
> is atomically executed?

would it be correct something like? or how would you write this?

create or replace function my_function () returs integer as
$$
declare
  ...
  status boolean;
  ...
begin
  ...
  loop
    begin
      set transaction isolation level serializable;
      ...
      do_something();
      ...
      status := true;
    exception serialization_failure
      status := false;
    end;

    if status then exit;
  end loop;
  ...
  return 0;
end
$$ language plpgsql

you can also use advisory locks if you want to implement 'critical
section' inside a plpgsql function.

see:
http://merlinmoncure.blogspot.com/2006/12/advisory-locks-part-2.html

merlin


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux