diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2008-09-01 18:53:03 +0000 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2008-09-01 18:53:03 +0000 |
commit | db8e4c7028909c2420568883a931438e5dcddab5 (patch) | |
tree | 880dba9718867a28a5c8be14428d058bdfc27f08 | |
parent | 3c3fb2160c4ff51520c9cb12b8a48c61b44cfb3e (diff) | |
download | postgresql-db8e4c7028909c2420568883a931438e5dcddab5.tar.gz postgresql-db8e4c7028909c2420568883a931438e5dcddab5.zip |
HeapTupleHeaderAdjustCmax made the incorrect assumption that the raw
command id is the cmin, when it can in fact be a combo cid. That made rows
incorrectly invisible to a transaction where a tuple was deleted by multiple
aborted subtransactions.
Report and patch Karl Schnaitter. Back-patch to 8.3, where combo cids was
introduced.
-rw-r--r-- | src/backend/utils/time/combocid.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/utils/time/combocid.c b/src/backend/utils/time/combocid.c index 815b961e69c..8e04c39a4d7 100644 --- a/src/backend/utils/time/combocid.c +++ b/src/backend/utils/time/combocid.c @@ -34,7 +34,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/time/combocid.c,v 1.4 2008/01/01 19:45:55 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/time/combocid.c,v 1.4.2.1 2008/09/01 18:53:03 heikki Exp $ * *------------------------------------------------------------------------- */ @@ -155,7 +155,7 @@ HeapTupleHeaderAdjustCmax(HeapTupleHeader tup, if (!(tup->t_infomask & HEAP_XMIN_COMMITTED) && TransactionIdIsCurrentTransactionId(HeapTupleHeaderGetXmin(tup))) { - CommandId cmin = HeapTupleHeaderGetRawCommandId(tup); + CommandId cmin = HeapTupleHeaderGetCmin(tup); *cmax = GetComboCommandId(cmin, *cmax); *iscombo = true; |