Tom Lane wrote:
>
> Hiroshi Inoue <[EMAIL PROTECTED]> writes:
> > GetXmaxRecent() ignores the backend tx_old because it had been
> > committed when VACUUM started and may return the xid > the
> > very old xid of tx_old.
>
> Absolutely not; things would never work if that were true.
> GetXmaxRecent() returns the oldest TID that was running *when any
> current transaction started*, not just VACUUM's transaction. Thus,
> no transaction that could be considered live by the cursor-holding
> transaction will be considered dead by VACUUM.
>
Oops I've misunderstood GetXmaxRecent() until now.
Now I'm checking the current source.
Hmm is there any place setting proc->xmin other than
the following ?
[in storage/ipc/sinval.c]
if (serializable)
MyProc->xmin = snapshot->xmin;
regards,
Hiroshi Inoue
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/users-lounge/docs/faq.html