]> granicus.if.org Git - postgresql/commit
1. MyProc->xid assignment is moved to GetNewTransactionId so newer
authorVadim B. Mikheev <vadim4o@yahoo.com>
Thu, 3 Jun 1999 04:41:41 +0000 (04:41 +0000)
committerVadim B. Mikheev <vadim4o@yahoo.com>
Thu, 3 Jun 1999 04:41:41 +0000 (04:41 +0000)
commit9680a712051bcf043beab5a49472e7da2f5a369a
tree21a86dd8ac5e39b661833194c31abf183f1344b9
parentf3d2b2e0c7c9eb9d79f26591f844d6edb123335c
1. MyProc->xid assignment is moved to GetNewTransactionId so newer
   transactions will not assume that MyProc transaction was committed
   before snapshot calculations. With old MyProc->xid assignment
   (in xact.c:StartTransaction()) there was ability to see the same
   row twice (I used gdb for this)!...
2. Assignments of InvalidTransactionId to MyProc->xid and MyProc->xmin
   are moved from xact.c:CommitTransaction() to
   xact.c:RecordTransactionCommit() - this invalidation must be done
   before releasing transaction locks or bad (too high) XmaxRecent value
   might be used by vacuum ("ERROR:  Child itemid marked as unused"
   reported by "Hiroshi Inoue" <Inoue@tpf.co.jp>; once again, gdb
   allowed me reproduce this error).
src/backend/access/transam/varsup.c
src/backend/access/transam/xact.c