PostgreSQL Source Code  git master
xlogrecord.h File Reference
#include "access/rmgr.h"
#include "access/xlogdefs.h"
#include "port/pg_crc32c.h"
#include "storage/block.h"
#include "storage/relfilelocator.h"
Include dependency graph for xlogrecord.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  XLogRecord
 
struct  XLogRecordBlockHeader
 
struct  XLogRecordBlockImageHeader
 
struct  XLogRecordBlockCompressHeader
 
struct  XLogRecordDataHeaderShort
 
struct  XLogRecordDataHeaderLong
 

Macros

#define SizeOfXLogRecord   (offsetof(XLogRecord, xl_crc) + sizeof(pg_crc32c))
 
#define XLR_INFO_MASK   0x0F
 
#define XLR_RMGR_INFO_MASK   0xF0
 
#define XLogRecordMaxSize   (1020 * 1024 * 1024)
 
#define XLR_SPECIAL_REL_UPDATE   0x01
 
#define XLR_CHECK_CONSISTENCY   0x02
 
#define SizeOfXLogRecordBlockHeader   (offsetof(XLogRecordBlockHeader, data_length) + sizeof(uint16))
 
#define SizeOfXLogRecordBlockImageHeader    (offsetof(XLogRecordBlockImageHeader, bimg_info) + sizeof(uint8))
 
#define BKPIMAGE_HAS_HOLE   0x01 /* page image has "hole" */
 
#define BKPIMAGE_APPLY
 
#define BKPIMAGE_COMPRESS_PGLZ   0x04
 
#define BKPIMAGE_COMPRESS_LZ4   0x08
 
#define BKPIMAGE_COMPRESS_ZSTD   0x10
 
#define BKPIMAGE_COMPRESSED(info)
 
#define SizeOfXLogRecordBlockCompressHeader    sizeof(XLogRecordBlockCompressHeader)
 
#define MaxSizeOfXLogRecordBlockHeader
 
#define BKPBLOCK_FORK_MASK   0x0F
 
#define BKPBLOCK_FLAG_MASK   0xF0
 
#define BKPBLOCK_HAS_IMAGE   0x10 /* block data is an XLogRecordBlockImage */
 
#define BKPBLOCK_HAS_DATA   0x20
 
#define BKPBLOCK_WILL_INIT   0x40 /* redo will re-init the page */
 
#define BKPBLOCK_SAME_REL
 
#define SizeOfXLogRecordDataHeaderShort   (sizeof(uint8) * 2)
 
#define SizeOfXLogRecordDataHeaderLong   (sizeof(uint8) + sizeof(uint32))
 
#define XLR_MAX_BLOCK_ID   32
 
#define XLR_BLOCK_ID_DATA_SHORT   255
 
#define XLR_BLOCK_ID_DATA_LONG   254
 
#define XLR_BLOCK_ID_ORIGIN   253
 
#define XLR_BLOCK_ID_TOPLEVEL_XID   252
 

Typedefs

typedef struct XLogRecord XLogRecord
 
typedef struct XLogRecordBlockHeader XLogRecordBlockHeader
 
typedef struct XLogRecordBlockImageHeader XLogRecordBlockImageHeader
 
typedef struct XLogRecordBlockCompressHeader XLogRecordBlockCompressHeader
 
typedef struct XLogRecordDataHeaderShort XLogRecordDataHeaderShort
 
typedef struct XLogRecordDataHeaderLong XLogRecordDataHeaderLong
 

Macro Definition Documentation

◆ BKPBLOCK_FLAG_MASK

#define BKPBLOCK_FLAG_MASK   0xF0

Definition at line 196 of file xlogrecord.h.

◆ BKPBLOCK_FORK_MASK

#define BKPBLOCK_FORK_MASK   0x0F

Definition at line 195 of file xlogrecord.h.

◆ BKPBLOCK_HAS_DATA

#define BKPBLOCK_HAS_DATA   0x20

Definition at line 198 of file xlogrecord.h.

◆ BKPBLOCK_HAS_IMAGE

#define BKPBLOCK_HAS_IMAGE   0x10 /* block data is an XLogRecordBlockImage */

Definition at line 197 of file xlogrecord.h.

◆ BKPBLOCK_SAME_REL

#define BKPBLOCK_SAME_REL
Value:
0x80 /* RelFileLocator omitted, same as
* previous */

Definition at line 200 of file xlogrecord.h.

◆ BKPBLOCK_WILL_INIT

#define BKPBLOCK_WILL_INIT   0x40 /* redo will re-init the page */

Definition at line 199 of file xlogrecord.h.

◆ BKPIMAGE_APPLY

#define BKPIMAGE_APPLY
Value:
0x02 /* page image should be restored
* during replay */

Definition at line 158 of file xlogrecord.h.

◆ BKPIMAGE_COMPRESS_LZ4

#define BKPIMAGE_COMPRESS_LZ4   0x08

Definition at line 161 of file xlogrecord.h.

◆ BKPIMAGE_COMPRESS_PGLZ

#define BKPIMAGE_COMPRESS_PGLZ   0x04

Definition at line 160 of file xlogrecord.h.

◆ BKPIMAGE_COMPRESS_ZSTD

#define BKPIMAGE_COMPRESS_ZSTD   0x10

Definition at line 162 of file xlogrecord.h.

◆ BKPIMAGE_COMPRESSED

#define BKPIMAGE_COMPRESSED (   info)
Value:
BKPIMAGE_COMPRESS_ZSTD)) != 0)
#define BKPIMAGE_COMPRESS_LZ4
Definition: xlogrecord.h:161
#define BKPIMAGE_COMPRESS_PGLZ
Definition: xlogrecord.h:160

Definition at line 164 of file xlogrecord.h.

◆ BKPIMAGE_HAS_HOLE

#define BKPIMAGE_HAS_HOLE   0x01 /* page image has "hole" */

Definition at line 157 of file xlogrecord.h.

◆ MaxSizeOfXLogRecordBlockHeader

#define MaxSizeOfXLogRecordBlockHeader
Value:
SizeOfXLogRecordBlockImageHeader + \
SizeOfXLogRecordBlockCompressHeader + \
sizeof(RelFileLocator) + \
sizeof(BlockNumber))
uint32 BlockNumber
Definition: block.h:31
#define SizeOfXLogRecordBlockHeader
Definition: xlogrecord.h:115

Definition at line 184 of file xlogrecord.h.

◆ SizeOfXLogRecord

#define SizeOfXLogRecord   (offsetof(XLogRecord, xl_crc) + sizeof(pg_crc32c))

Definition at line 55 of file xlogrecord.h.

◆ SizeOfXLogRecordBlockCompressHeader

#define SizeOfXLogRecordBlockCompressHeader    sizeof(XLogRecordBlockCompressHeader)

Definition at line 177 of file xlogrecord.h.

◆ SizeOfXLogRecordBlockHeader

#define SizeOfXLogRecordBlockHeader   (offsetof(XLogRecordBlockHeader, data_length) + sizeof(uint16))

Definition at line 115 of file xlogrecord.h.

◆ SizeOfXLogRecordBlockImageHeader

#define SizeOfXLogRecordBlockImageHeader    (offsetof(XLogRecordBlockImageHeader, bimg_info) + sizeof(uint8))

Definition at line 153 of file xlogrecord.h.

◆ SizeOfXLogRecordDataHeaderLong

#define SizeOfXLogRecordDataHeaderLong   (sizeof(uint8) + sizeof(uint32))

Definition at line 225 of file xlogrecord.h.

◆ SizeOfXLogRecordDataHeaderShort

#define SizeOfXLogRecordDataHeaderShort   (sizeof(uint8) * 2)

Definition at line 217 of file xlogrecord.h.

◆ XLogRecordMaxSize

#define XLogRecordMaxSize   (1020 * 1024 * 1024)

Definition at line 74 of file xlogrecord.h.

◆ XLR_BLOCK_ID_DATA_LONG

#define XLR_BLOCK_ID_DATA_LONG   254

Definition at line 242 of file xlogrecord.h.

◆ XLR_BLOCK_ID_DATA_SHORT

#define XLR_BLOCK_ID_DATA_SHORT   255

Definition at line 241 of file xlogrecord.h.

◆ XLR_BLOCK_ID_ORIGIN

#define XLR_BLOCK_ID_ORIGIN   253

Definition at line 243 of file xlogrecord.h.

◆ XLR_BLOCK_ID_TOPLEVEL_XID

#define XLR_BLOCK_ID_TOPLEVEL_XID   252

Definition at line 244 of file xlogrecord.h.

◆ XLR_CHECK_CONSISTENCY

#define XLR_CHECK_CONSISTENCY   0x02

Definition at line 91 of file xlogrecord.h.

◆ XLR_INFO_MASK

#define XLR_INFO_MASK   0x0F

Definition at line 62 of file xlogrecord.h.

◆ XLR_MAX_BLOCK_ID

#define XLR_MAX_BLOCK_ID   32

Definition at line 239 of file xlogrecord.h.

◆ XLR_RMGR_INFO_MASK

#define XLR_RMGR_INFO_MASK   0xF0

Definition at line 63 of file xlogrecord.h.

◆ XLR_SPECIAL_REL_UPDATE

#define XLR_SPECIAL_REL_UPDATE   0x01

Definition at line 82 of file xlogrecord.h.

Typedef Documentation

◆ XLogRecord

typedef struct XLogRecord XLogRecord

◆ XLogRecordBlockCompressHeader

◆ XLogRecordBlockHeader

◆ XLogRecordBlockImageHeader

◆ XLogRecordDataHeaderLong

◆ XLogRecordDataHeaderShort