Jessica M Salmon <jmsalmon(at)fs(dot)fed(dot)us> writes:
> -is it true that when looping over query results in a plpgsql
> for..in..execute loop, several records are stored in memory at one time?
Yes, but that's got nothing to do with your issue.
> -if I then update one of the records currently in memory, are these
> changes visible when the loop gets to it?
*All* queries in Postgres see a snapshot as of the instant of query
start. This is a property of the MVCC rules and has nothing to do with
buffering. What's returned by a FOR IN EXECUTE is whatever was in the
database when the loop began.
regards, tom lane