Hello.
Could somebody explain me the mechanism in the backend,
which is responsible for the followings. (I tried to
look around snapshots, but couldnt figure out th answer).
In a transaction, isol. read comitted, a select from a
table can see the comitted changes by others, but
a previously declared cursor can not.
A few lines in src/backend/tcop/pquery.c runs when
a DECLARE cursor is issued:
> if (isRetrieveIntoPortal)
> {
> PortalExecutorHeapMemory = NULL;
>
> ProcessPortal(intoName,
> [...]
> return;
> }
, but I cannot see neither in these, nor in ProcessPortal that
where does it fix the set of rows being visible.
Please help to find it out.
Thanks,
Baldvin