diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-07-21 22:31:26 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-07-21 22:31:26 +0000 |
commit | 2042b3428d3947987b27dbd4598fd9a5716ec9e8 (patch) | |
tree | 99ba34f4b04e8e951dca70c31ab4edcdd3985e62 /src/backend/access/heap/heapam.c | |
parent | 8d3517dc1f9383d606bd8e50a9b58e732322fffd (diff) | |
download | postgresql-2042b3428d3947987b27dbd4598fd9a5716ec9e8.tar.gz postgresql-2042b3428d3947987b27dbd4598fd9a5716ec9e8.zip |
Invent WAL timelines, as per recent discussion, to make point-in-time
recovery more manageable. Also, undo recent change to add FILE_HEADER
and WASTED_SPACE records to XLOG; instead make the XLOG page header
variable-size with extra fields in the first page of an XLOG file.
This should fix the boundary-case bugs observed by Mark Kirkwood.
initdb forced due to change of XLOG representation.
Diffstat (limited to 'src/backend/access/heap/heapam.c')
-rw-r--r-- | src/backend/access/heap/heapam.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index f0be8123f5c..6e65966c936 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.170 2004/07/11 18:01:44 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.171 2004/07/21 22:31:19 tgl Exp $ * * * INTERFACE ROUTINES @@ -1214,7 +1214,7 @@ heap_insert(Relation relation, HeapTuple tup, CommandId cid) recptr = XLogInsert(RM_HEAP_ID, info, rdata); PageSetLSN(page, recptr); - PageSetSUI(page, ThisStartUpID); + PageSetTLI(page, ThisTimeLineID); } else { @@ -1390,7 +1390,7 @@ l1: recptr = XLogInsert(RM_HEAP_ID, XLOG_HEAP_DELETE, rdata); PageSetLSN(dp, recptr); - PageSetSUI(dp, ThisStartUpID); + PageSetTLI(dp, ThisTimeLineID); } else { @@ -1748,10 +1748,10 @@ l2: if (newbuf != buffer) { PageSetLSN(BufferGetPage(newbuf), recptr); - PageSetSUI(BufferGetPage(newbuf), ThisStartUpID); + PageSetTLI(BufferGetPage(newbuf), ThisTimeLineID); } PageSetLSN(BufferGetPage(buffer), recptr); - PageSetSUI(BufferGetPage(buffer), ThisStartUpID); + PageSetTLI(BufferGetPage(buffer), ThisTimeLineID); } else { @@ -1902,7 +1902,7 @@ l3: * XLOG stuff: no logging is required as long as we have no * savepoints. For savepoints private log could be used... */ - PageSetSUI(BufferGetPage(*buffer), ThisStartUpID); + PageSetTLI(BufferGetPage(*buffer), ThisTimeLineID); /* store transaction information of xact marking the tuple */ tuple->t_data->t_infomask &= ~(HEAP_XMAX_COMMITTED | @@ -2184,7 +2184,7 @@ heap_xlog_clean(bool redo, XLogRecPtr lsn, XLogRecord *record) PageRepairFragmentation(page, NULL); PageSetLSN(page, lsn); - PageSetSUI(page, ThisStartUpID); /* prev sui */ + PageSetTLI(page, ThisTimeLineID); LockBuffer(buffer, BUFFER_LOCK_UNLOCK); WriteBuffer(buffer); } @@ -2217,7 +2217,7 @@ heap_xlog_newpage(bool redo, XLogRecPtr lsn, XLogRecord *record) memcpy(page, (char *) xlrec + SizeOfHeapNewpage, BLCKSZ); PageSetLSN(page, lsn); - PageSetSUI(page, ThisStartUpID); + PageSetTLI(page, ThisTimeLineID); LockBuffer(buffer, BUFFER_LOCK_UNLOCK); WriteBuffer(buffer); } @@ -2283,7 +2283,7 @@ heap_xlog_delete(bool redo, XLogRecPtr lsn, XLogRecord *record) /* Make sure there is no forward chain link in t_ctid */ htup->t_ctid = xlrec->target.tid; PageSetLSN(page, lsn); - PageSetSUI(page, ThisStartUpID); + PageSetTLI(page, ThisTimeLineID); LockBuffer(buffer, BUFFER_LOCK_UNLOCK); WriteBuffer(buffer); return; @@ -2368,7 +2368,7 @@ heap_xlog_insert(bool redo, XLogRecPtr lsn, XLogRecord *record) if (offnum == InvalidOffsetNumber) elog(PANIC, "heap_insert_redo: failed to add tuple"); PageSetLSN(page, lsn); - PageSetSUI(page, ThisStartUpID); /* prev sui */ + PageSetTLI(page, ThisTimeLineID); LockBuffer(buffer, BUFFER_LOCK_UNLOCK); WriteBuffer(buffer); return; @@ -2466,7 +2466,7 @@ heap_xlog_update(bool redo, XLogRecPtr lsn, XLogRecord *record, bool move) if (samepage) goto newsame; PageSetLSN(page, lsn); - PageSetSUI(page, ThisStartUpID); + PageSetTLI(page, ThisTimeLineID); LockBuffer(buffer, BUFFER_LOCK_UNLOCK); WriteBuffer(buffer); goto newt; @@ -2564,7 +2564,7 @@ newsame:; if (offnum == InvalidOffsetNumber) elog(PANIC, "heap_update_redo: failed to add tuple"); PageSetLSN(page, lsn); - PageSetSUI(page, ThisStartUpID); /* prev sui */ + PageSetTLI(page, ThisTimeLineID); LockBuffer(buffer, BUFFER_LOCK_UNLOCK); WriteBuffer(buffer); return; |