pg_controldata_walfilename_v3.patch

application/octet-stream

Filename: pg_controldata_walfilename_v3.patch
Type: application/octet-stream
Part: 0
Message: Re: Reporting WAL file containing checkpoint's REDO record in pg_controldata's result

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: context
Series: patch v3
File+
src/bin/pg_controldata/pg_controldata.c 13 0
*** a/src/bin/pg_controldata/pg_controldata.c
--- b/src/bin/pg_controldata/pg_controldata.c
***************
*** 24,29 ****
--- 24,30 ----
  #include <fcntl.h>
  
  #include "access/xlog.h"
+ #include "access/xlog_internal.h"
  #include "catalog/pg_control.h"
  
  
***************
*** 101,106 **** main(int argc, char *argv[])
--- 102,110 ----
  	char		sysident_str[32];
  	const char *strftime_fmt = "%c";
  	const char *progname;
+ 	uint32	log;
+ 	uint32	seg;
+ 	char		xlogfilename[MAXFNAMELEN];
  
  	set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_controldata"));
  
***************
*** 177,182 **** main(int argc, char *argv[])
--- 181,193 ----
  			 localtime(&time_tmp));
  
  	/*
+ 	 * Calculate the WAL file name containing the latest checkpoint's REDO
+ 	 * record.
+ 	 */
+ 	XLByteToSeg(ControlFile.checkPointCopy.redo, log, seg);
+ 	XLogFileName(xlogfilename, ControlFile.checkPointCopy.ThisTimeLineID, log, seg);
+ 
+ 	/*
  	 * Format system_identifier separately to keep platform-dependent format
  	 * code out of the translatable message string.
  	 */
***************
*** 207,212 **** main(int argc, char *argv[])
--- 218,225 ----
  	printf(_("Latest checkpoint's REDO location:    %X/%X\n"),
  		   ControlFile.checkPointCopy.redo.xlogid,
  		   ControlFile.checkPointCopy.redo.xrecoff);
+ 	printf(_("Latest checkpoint's REDO WAL file:    %s\n"),
+ 		   xlogfilename);
  	printf(_("Latest checkpoint's TimeLineID:       %u\n"),
  		   ControlFile.checkPointCopy.ThisTimeLineID);
  	printf(_("Latest checkpoint's full_page_writes: %s\n"),