diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-08-29 16:34:48 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-08-29 16:34:48 +0000 |
commit | 0ffe11abd3a0b2e1b387192213eea58dce12d7d2 (patch) | |
tree | 8d61852b694125b792d18f98357076ef79191bdd /src/include/access/xlog.h | |
parent | b6b71b85bc45b49005b5aec87cba2c33fc8baf49 (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.h | 8 |
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) |