summaryrefslogtreecommitdiff
path: root/src/include/access/xlog.h
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2004-08-29 16:34:48 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2004-08-29 16:34:48 +0000
commit0ffe11abd3a0b2e1b387192213eea58dce12d7d2 (patch)
tree8d61852b694125b792d18f98357076ef79191bdd /src/include/access/xlog.h
parentb6b71b85bc45b49005b5aec87cba2c33fc8baf49 (diff)
Widen xl_len field of XLogRecord header to 32 bits, so that we'll have
a more tolerable limit on the number of subtransactions or deleted files in COMMIT and ABORT records. Buy back the extra space by eliminating the xl_xact_prev field, which isn't being used for anything and is rather unlikely ever to be used for anything. This does not force initdb, but you do need to do pg_resetxlog if you want to upgrade an existing 8.0 installation without initdb.
Diffstat (limited to 'src/include/access/xlog.h')
-rw-r--r--src/include/access/xlog.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/include/access/xlog.h b/src/include/access/xlog.h
index 8d3d3cfb62d..eeee24bc41a 100644
--- a/src/include/access/xlog.h
+++ b/src/include/access/xlog.h
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/access/xlog.h,v 1.57 2004/08/29 05:06:55 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/access/xlog.h,v 1.58 2004/08/29 16:34:48 tgl Exp $
*/
#ifndef XLOG_H
#define XLOG_H
@@ -35,18 +35,18 @@ typedef struct XLogRecord
{
crc64 xl_crc; /* CRC for this record */
XLogRecPtr xl_prev; /* ptr to previous record in log */
- XLogRecPtr xl_xact_prev; /* ptr to previous record of this xact */
TransactionId xl_xid; /* xact id */
- uint16 xl_len; /* total len of rmgr data */
+ uint32 xl_len; /* total len of rmgr data */
uint8 xl_info; /* flag bits, see below */
RmgrId xl_rmid; /* resource manager for this record */
+ /* Depending on MAXALIGN, there are either 2 or 6 wasted bytes here */
+
/* ACTUAL LOG DATA FOLLOWS AT END OF STRUCT */
} XLogRecord;
#define SizeOfXLogRecord MAXALIGN(sizeof(XLogRecord))
-#define MAXLOGRECSZ 65535 /* the most that'll fit in xl_len */
#define XLogRecGetData(record) ((char*) (record) + SizeOfXLogRecord)