Rob Nikander <rob.nikan...@gmail.com> writes:
> Are there guarantees about how this plpgsql behaves? It’s deleting from a 
> table while it loops over it. So far it seems like the delete is logically 
> after the select, as I hoped, and doesn’t interfere. 

>     for row in select * from some_stuff loop
>         delete from some_stuff where …
>         ...
>     end loop;

Sure.  A query will not see the effects of queries that start after it.
This isn't particularly plpgsql-specific.

Some qualifications are needed if you have triggers or volatile functions
in the first query (those *can* see later effects); but this usage seems
safe enough.

                        regards, tom lane


Reply via email to