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