• Vadim B. Mikheev's avatar
    1. MyProc->xid assignment is moved to GetNewTransactionId so newer · 9680a712
    Vadim B. Mikheev authored
       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).
    9680a712
xact.c 38 KB