On Mon, Aug 1, 2011 at 11:21 AM, Jeff Davis <pg...@j-davis.com> wrote: > On Mon, 2011-08-01 at 08:12 -0400, Robert Haas wrote: >> > Is the "&& LocalTransactionIdIsValid(lxid)" a guard against calling >> > VirtualXactLockTableCleanup twice? Can that happen? Or is it just >> > defensive coding to avoid making an additional assumption? >> >> lxid there is just a local variable storing the value that we >> extracted from fpLocalTransactionId while holding the lock. I named >> it that way just as a mnemonic for the type of value that it was, not >> intending to imply that it was copied from MyProc->lxid. > > I know, this is the other purpose of fpLocalTransactionId that I was > talking about. Is it just a guard against calling > VirtualXactLockTableCleanup twice?
I guess you could look at that way. It just seemed like the obvious way to write the code: we do LockRefindAndRelease() only if we have a fast-path lock that someone else has pushed into the main table. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers