@@ -276,7 +276,6 @@ extractPageMap(const char *archivedir, uint32 wal_seg_size,
276
276
timelineInfo * end_tlinfo = NULL ;
277
277
timelineInfo * tmp_tlinfo = NULL ;
278
278
XLogRecPtr prev_switchpoint = InvalidXLogRecPtr ;
279
- lsnInterval * wal_interval = NULL ;
280
279
281
280
/* We must find TLI information about final timeline (t3 in example) */
282
281
for (i = 0 ; i < parray_num (tli_list ); i ++ )
@@ -298,7 +297,7 @@ extractPageMap(const char *archivedir, uint32 wal_seg_size,
298
297
tmp_tlinfo = end_tlinfo ;
299
298
while (tmp_tlinfo )
300
299
{
301
- wal_interval = pgut_malloc (sizeof (lsnInterval ));
300
+ lsnInterval * wal_interval = pgut_malloc (sizeof (lsnInterval ));
302
301
wal_interval -> tli = tmp_tlinfo -> tli ;
303
302
304
303
if (tmp_tlinfo -> tli == end_tli )
@@ -326,25 +325,25 @@ extractPageMap(const char *archivedir, uint32 wal_seg_size,
326
325
for (i = parray_num (interval_list ) - 1 ; i >= 0 ; i -- )
327
326
{
328
327
bool inclusive_endpoint ;
329
- wal_interval = parray_get (interval_list , i );
328
+ lsnInterval * tmp_interval = ( lsnInterval * ) parray_get (interval_list , i );
330
329
331
330
/* In case of replica promotion, endpoints of intermediate
332
331
* timelines can be unreachable.
333
332
*/
334
333
inclusive_endpoint = false;
335
334
336
335
/* ... but not the end timeline */
337
- if (wal_interval -> tli == end_tli )
336
+ if (tmp_interval -> tli == end_tli )
338
337
inclusive_endpoint = true;
339
338
340
339
extract_isok = RunXLogThreads (archivedir , 0 , InvalidTransactionId ,
341
- InvalidXLogRecPtr , wal_interval -> tli , wal_seg_size ,
342
- wal_interval -> begin_lsn , wal_interval -> end_lsn ,
340
+ InvalidXLogRecPtr , tmp_interval -> tli , wal_seg_size ,
341
+ tmp_interval -> begin_lsn , tmp_interval -> end_lsn ,
343
342
false, extractPageInfo , NULL , inclusive_endpoint );
344
343
if (!extract_isok )
345
344
break ;
346
345
347
- pg_free (wal_interval );
346
+ pg_free (tmp_interval );
348
347
}
349
348
pg_free (interval_list );
350
349
}
@@ -1064,6 +1063,12 @@ RunXLogThreads(const char *archivedir, time_t target_time,
1064
1063
elog (ERROR , "Invalid startpoint value %X/%X" ,
1065
1064
(uint32 ) (startpoint >> 32 ), (uint32 ) (startpoint ));
1066
1065
1066
+ if (process_record )
1067
+ elog (LOG , "Extracting pagemap from tli %i on range from %X/%X to %X/%X" ,
1068
+ tli ,
1069
+ (uint32 ) (startpoint >> 32 ), (uint32 ) (startpoint ),
1070
+ (uint32 ) (endpoint >> 32 ), (uint32 ) (endpoint ));
1071
+
1067
1072
if (!XLogRecPtrIsInvalid (endpoint ))
1068
1073
{
1069
1074
// if (XRecOffIsNull(endpoint) && !inclusive_endpoint)
0 commit comments