summaryrefslogtreecommitdiff
path: root/src/include/utils
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2005-08-20 00:40:32 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2005-08-20 00:40:32 +0000
commitf57e3f4cf36f3fdd89cae8d566479ad747809b2f (patch)
tree6cb7a1b32271692929ecef6be67a823c9d29cf3f /src/include/utils
parent97bb6e89beed326aae1990d798107b4af9a9af02 (diff)
downloadpostgresql-f57e3f4cf36f3fdd89cae8d566479ad747809b2f.tar.gz
Repair problems with VACUUM destroying t_ctid chains too soon, and with
insufficient paranoia in code that follows t_ctid links. (We must do both because even with VACUUM doing it properly, the intermediate state with a dangling t_ctid link is visible concurrently during lazy VACUUM, and could be seen afterwards if either type of VACUUM crashes partway through.) Also try to improve documentation about what's going on. Patch is a bit bulky because passing the XMAX information around required changing the APIs of some low-level heapam.c routines, but it's not conceptually very complicated. Per trouble report from Teodor and subsequent analysis. This needs to be back-patched, but I'll do that after 8.1 beta is out.
Diffstat (limited to 'src/include/utils')
-rw-r--r--src/include/utils/tqual.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/include/utils/tqual.h b/src/include/utils/tqual.h
index f12ae2233f..fa530ed977 100644
--- a/src/include/utils/tqual.h
+++ b/src/include/utils/tqual.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/tqual.h,v 1.57 2005/05/19 21:35:48 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/tqual.h,v 1.58 2005/08/20 00:40:32 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -42,7 +42,6 @@ typedef struct SnapshotData
TransactionId *xip; /* array of xact IDs in progress */
/* note: all ids in xip[] satisfy xmin <= xip[i] < xmax */
CommandId curcid; /* in my xact, CID < curcid are visible */
- ItemPointerData tid; /* required for Dirty snapshot -:( */
} SnapshotData;
typedef SnapshotData *Snapshot;