PostgreSQL Source Code: src/include/access/xlogrecord.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11#ifndef XLOGRECORD_H

12#define XLOGRECORD_H

13

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

42{

48

50

51

52

54

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

56

57

58

59

60

61

62#define XLR_INFO_MASK 0x0F

63#define XLR_RMGR_INFO_MASK 0xF0

64

65

66

67

68

69

70

71

72

73

74#define XLogRecordMaxSize (1020 * 1024 * 1024)

75

76

77

78

79

80

81

82#define XLR_SPECIAL_REL_UPDATE 0x01

83

84

85

86

87

88

89

90

91#define XLR_CHECK_CONSISTENCY 0x02

92

93

94

95

96

97

98

99

100

101

102

104{

108

109

110

111

112

114

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

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

142{

146

147

148

149

150

152

153#define SizeOfXLogRecordBlockImageHeader \

154 (offsetof(XLogRecordBlockImageHeader, bimg_info) + sizeof(uint8))

155

156

157#define BKPIMAGE_HAS_HOLE 0x01

158#define BKPIMAGE_APPLY 0x02

159

160

161#define BKPIMAGE_COMPRESS_PGLZ 0x04

162#define BKPIMAGE_COMPRESS_LZ4 0x08

163#define BKPIMAGE_COMPRESS_ZSTD 0x10

165#define BKPIMAGE_COMPRESSED(info) \

166 ((info & (BKPIMAGE_COMPRESS_PGLZ | BKPIMAGE_COMPRESS_LZ4 | \

167 BKPIMAGE_COMPRESS_ZSTD)) != 0)

168

169

170

171

178#define SizeOfXLogRecordBlockCompressHeader \

179 sizeof(XLogRecordBlockCompressHeader)

180

181

182

183

185#define MaxSizeOfXLogRecordBlockHeader \

186 (SizeOfXLogRecordBlockHeader + \

187 SizeOfXLogRecordBlockImageHeader + \

188 SizeOfXLogRecordBlockCompressHeader + \

189 sizeof(RelFileLocator) + \

190 sizeof(BlockNumber))

191

192

193

194

196#define BKPBLOCK_FORK_MASK 0x0F

197#define BKPBLOCK_FLAG_MASK 0xF0

198#define BKPBLOCK_HAS_IMAGE 0x10

199#define BKPBLOCK_HAS_DATA 0x20

200#define BKPBLOCK_WILL_INIT 0x40

201#define BKPBLOCK_SAME_REL 0x80

202

203

204

205

206

207

208

209

210

211

212

215 uint8 id;

218

219#define SizeOfXLogRecordDataHeaderShort (sizeof(uint8) * 2)

220

222{

223 uint8 id;

224

226

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

228

229

230

231

232

233

234

235

236

237

238

239

240

241#define XLR_MAX_BLOCK_ID 32

243#define XLR_BLOCK_ID_DATA_SHORT 255

244#define XLR_BLOCK_ID_DATA_LONG 254

245#define XLR_BLOCK_ID_ORIGIN 253

246#define XLR_BLOCK_ID_TOPLEVEL_XID 252

247

248#endif

struct XLogRecordBlockImageHeader XLogRecordBlockImageHeader

struct XLogRecordBlockCompressHeader XLogRecordBlockCompressHeader

struct XLogRecordDataHeaderShort XLogRecordDataHeaderShort

struct XLogRecordBlockHeader XLogRecordBlockHeader

struct XLogRecord XLogRecord

struct XLogRecordDataHeaderLong XLogRecordDataHeaderLong