@@ -142,6 +142,14 @@ typedef XLogLongPageHeaderData *XLogLongPageHeader;
142
142
(uint32) ((logSegNo) / XLogSegmentsPerXLogId), \
143
143
(uint32) ((logSegNo) % XLogSegmentsPerXLogId))
144
144
145
+ #define IsXLogFileName (fname ) \
146
+ (strlen(fname) == 24 && strspn(fname, "0123456789ABCDEF") == 24)
147
+
148
+ #define IsPartialXLogFileName (fname ) \
149
+ (strlen(fname) == 24 + strlen(".partial") && \
150
+ strspn(fname, "0123456789ABCDEF") == 24 && \
151
+ strcmp((fname) + 24, ".partial") == 0)
152
+
145
153
#define XLogFromFileName (fname , tli , logSegNo ) \
146
154
do { \
147
155
uint32 log; \
@@ -158,6 +166,11 @@ typedef XLogLongPageHeaderData *XLogLongPageHeader;
158
166
#define TLHistoryFileName (fname , tli ) \
159
167
snprintf(fname, MAXFNAMELEN, "%08X.history", tli)
160
168
169
+ #define IsTLHistoryFileName (fname ) \
170
+ (strlen(fname) == 8 + strlen(".history") && \
171
+ strspn(fname, "0123456789ABCDEF") == 8 && \
172
+ strcmp((fname) + 8, ".history") == 0)
173
+
161
174
#define TLHistoryFilePath (path , tli ) \
162
175
snprintf(path, MAXPGPATH, XLOGDIR "/%08X.history", tli)
163
176
@@ -169,6 +182,11 @@ typedef XLogLongPageHeaderData *XLogLongPageHeader;
169
182
(uint32) ((logSegNo) / XLogSegmentsPerXLogId), \
170
183
(uint32) ((logSegNo) % XLogSegmentsPerXLogId), offset)
171
184
185
+ #define IsBackupHistoryFileName (fname ) \
186
+ (strlen(fname) > 24 && \
187
+ strspn(fname, "0123456789ABCDEF") == 24 && \
188
+ strcmp((fname) + strlen(fname) - strlen(".backup"), ".backup") == 0)
189
+
172
190
#define BackupHistoryFilePath (path , tli , logSegNo , offset ) \
173
191
snprintf(path, MAXPGPATH, XLOGDIR "/%08X%08X%08X.%08X.backup", tli, \
174
192
(uint32) ((logSegNo) / XLogSegmentsPerXLogId), \
0 commit comments