]> granicus.if.org Git - postgresql/blob - src/include/catalog/storage_xlog.h
Update copyrights for 2013
[postgresql] / src / include / catalog / storage_xlog.h
1 /*-------------------------------------------------------------------------
2  *
3  * storage_xlog.h
4  *        prototypes for XLog support for backend/catalog/storage.c
5  *
6  *
7  * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * src/include/catalog/storage_xlog.h
11  *
12  *-------------------------------------------------------------------------
13  */
14 #ifndef STORAGE_XLOG_H
15 #define STORAGE_XLOG_H
16
17 #include "access/xlog.h"
18 #include "storage/block.h"
19 #include "storage/relfilenode.h"
20
21 /*
22  * Declarations for smgr-related XLOG records
23  *
24  * Note: we log file creation and truncation here, but logging of deletion
25  * actions is handled by xact.c, because it is part of transaction commit.
26  */
27
28 /* XLOG gives us high 4 bits */
29 #define XLOG_SMGR_CREATE        0x10
30 #define XLOG_SMGR_TRUNCATE      0x20
31
32 typedef struct xl_smgr_create
33 {
34         RelFileNode rnode;
35         ForkNumber      forkNum;
36 } xl_smgr_create;
37
38 typedef struct xl_smgr_truncate
39 {
40         BlockNumber blkno;
41         RelFileNode rnode;
42 } xl_smgr_truncate;
43
44 extern void log_smgrcreate(RelFileNode *rnode, ForkNumber forkNum);
45
46 extern void smgr_redo(XLogRecPtr lsn, XLogRecord *record);
47 extern void smgr_desc(StringInfo buf, uint8 xl_info, char *rec);
48
49 #endif   /* STORAGE_XLOG_H */