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
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
212
218
219#define SizeOfXLogRecordDataHeaderShort (sizeof(uint8) * 2)
220
222{
224
226
227#define SizeOfXLogRecordDataHeaderLong (sizeof(uint8) + sizeof(uint32))
228
229
230
231
232
233
234
235
236
237
238
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