Re: delete inside for plpgsql loop on same relation? - Mailing list pgsql-general

From Tom Lane
Subject Re: delete inside for plpgsql loop on same relation?
Date
Msg-id 17007.1560882011@sss.pgh.pa.us
Whole thread Raw
In response to delete inside for plpgsql loop on same relation?  (Rob Nikander <rob.nikander@gmail.com>)
List pgsql-general
Rob Nikander <rob.nikander@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
seemslike 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



pgsql-general by date:

Previous
From: Andres Freund
Date:
Subject: Re: perf tuning for 28 cores and 252GB RAM
Next
From: Ken Tanzer
Date:
Subject: Re: psql UPDATE field [tab] expands to DEFAULT?