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