diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-02-11 22:55:26 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-02-11 22:55:26 +0000 |
commit | c3c09be34b6b0d7892f1087a23fc6eb93f3c4f04 (patch) | |
tree | 53331a1f14775c903a6b520f3344b533f9f275ab /src/include/access/xact.h | |
parent | 0cb117eb33558bc779df833480958a97227dcbc2 (diff) | |
download | postgresql-c3c09be34b6b0d7892f1087a23fc6eb93f3c4f04.tar.gz postgresql-c3c09be34b6b0d7892f1087a23fc6eb93f3c4f04.zip |
Commit the reasonably uncontroversial parts of J.R. Nield's PITR patch, to
wit: Add a header record to each WAL segment file so that it can be reliably
identified. Avoid splitting WAL records across segment files (this is not
strictly necessary, but makes it simpler to incorporate the header records).
Make WAL entries for file creation, deletion, and truncation (as foreseen but
never implemented by Vadim). Also, add support for making XLOG_SEG_SIZE
configurable at compile time, similarly to BLCKSZ. Fix a couple bugs I
introduced in WAL replay during recent smgr API changes. initdb is forced
due to changes in pg_control contents.
Diffstat (limited to 'src/include/access/xact.h')
-rw-r--r-- | src/include/access/xact.h | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/include/access/xact.h b/src/include/access/xact.h index 54ae24e53f9..95de83dc461 100644 --- a/src/include/access/xact.h +++ b/src/include/access/xact.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/access/xact.h,v 1.60 2004/01/26 22:51:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/access/xact.h,v 1.61 2004/02/11 22:55:25 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -101,20 +101,23 @@ typedef TransactionStateData *TransactionState; typedef struct xl_xact_commit { time_t xtime; - - /* - * Array of RelFileNode-s to drop may follow at the end of struct - */ + /* Array of RelFileNode(s) to drop at commit */ + /* The XLOG record length determines how many there are */ + RelFileNode xnodes[1]; /* VARIABLE LENGTH ARRAY */ } xl_xact_commit; -#define SizeOfXactCommit ((offsetof(xl_xact_commit, xtime) + sizeof(time_t))) +#define MinSizeOfXactCommit offsetof(xl_xact_commit, xnodes) typedef struct xl_xact_abort { time_t xtime; + /* Array of RelFileNode(s) to drop at abort */ + /* The XLOG record length determines how many there are */ + RelFileNode xnodes[1]; /* VARIABLE LENGTH ARRAY */ } xl_xact_abort; -#define SizeOfXactAbort ((offsetof(xl_xact_abort, xtime) + sizeof(time_t))) +#define MinSizeOfXactAbort offsetof(xl_xact_abort, xnodes) + /* ---------------- * extern definitions |