What I wanted is simple:
I don't want other processes that run the function at the same time have
read/write access from the tables this function accesses(select and
insert/update). Is it possible, say, let other proccess blocked on this
function?
On 06 Jul 2001 18:49:49 +0200, Peter Eisentraut wrote:
> Wei Weng writes:
>
> > Does that mean if I used
> > DECLARE
> > ...
> > BEGIN
> > DO_STUFF
> > END;
> >
> > the DO_STUFF will not be interrupted (maintain atomicity) even when
> > multiple threads use the function concurrently?
>
> Interruption, atomicity, and concurrency are separate issues. The
> function could of course be interrupted if there's an error. (That error
> may be related to concurrency, such as a serialization failure.) The
> database interactions of the function will be atomic in the sense that
> rollback will work. Concurrent execution of a function is permitted, but
> there may be issues if you modify global state or there is a serialization
> failure. These are the same issues that you have to deal with in any
> programming environment.
>
> --
> Peter Eisentraut peter_e@gmx.net http://funkturm.homeip.net/~peter
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://www.postgresql.org/search.mpl
>
--
Wei Weng
Network Software Engineer
KenCast Inc.