diff options
author | Vadim B. Mikheev <vadim4o@yahoo.com> | 2000-10-13 02:03:02 +0000 |
---|---|---|
committer | Vadim B. Mikheev <vadim4o@yahoo.com> | 2000-10-13 02:03:02 +0000 |
commit | 25a26a7ab8a70ee45dcbc6b060ce6ba274857a44 (patch) | |
tree | 1f064e59737b6a5891566267d6a1d76c12a9277b /src/backend/access/heap/heapam.c | |
parent | 0b33ace6785dda49d461d7889a9623f67d81e3f7 (diff) | |
download | postgresql-25a26a7ab8a70ee45dcbc6b060ce6ba274857a44.tar.gz postgresql-25a26a7ab8a70ee45dcbc6b060ce6ba274857a44.zip |
WAL
Diffstat (limited to 'src/backend/access/heap/heapam.c')
-rw-r--r-- | src/backend/access/heap/heapam.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index dbcefbf2733..3e1de33bfe4 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.86 2000/10/04 00:04:41 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.87 2000/10/13 02:02:59 vadim Exp $ * * * INTERFACE ROUTINES @@ -2016,6 +2016,22 @@ void heap_redo(XLogRecPtr lsn, XLogRecord *record) elog(STOP, "heap_redo: unknown op code %u", info); } +void heap_undo(XLogRecPtr lsn, XLogRecord *record) +{ + uint8 info = record->xl_info & ~XLR_INFO_MASK; + + if (info == XLOG_HEAP_INSERT) + heap_xlog_insert(false, lsn, record); + else if (info == XLOG_HEAP_DELETE) + heap_xlog_delete(false, lsn, record); + else if (info == XLOG_HEAP_UPDATE) + heap_xlog_update(false, lsn, record); + else if (info == XLOG_HEAP_MOVE) + heap_xlog_move(false, lsn, record); + else + elog(STOP, "heap_undo: unknown op code %u", info); +} + void heap_xlog_delete(bool redo, XLogRecPtr lsn, XLogRecord *record) { xl_heap_delete *xlrec = (xl_heap_delete*) XLogRecGetData(record); @@ -2199,7 +2215,7 @@ void heap_xlog_insert(bool redo, XLogRecPtr lsn, XLogRecord *record) else /* we can't delete tuple right now */ { lp->lp_flags |= LP_DELETE; /* mark for deletion */ - MarkBufferForCleanup(buffer, PageCleanup); + MarkBufferForCleanup(buffer, HeapPageCleanup); } } |