pg_controldata_walfilename_v4.patch
application/octet-stream
Filename: pg_controldata_walfilename_v4.patch
Type: application/octet-stream
Part: 0
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 v4
| File | + | − |
|---|---|---|
| src/bin/pg_controldata/pg_controldata.c | 12 | 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"
***************
*** 95,100 **** main(int argc, char *argv[])
--- 96,103 ----
char sysident_str[32];
const char *strftime_fmt = "%c";
const char *progname;
+ XLogSegNo segno;
+ char xlogfilename[MAXFNAMELEN];
set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_controldata"));
***************
*** 171,176 **** main(int argc, char *argv[])
--- 174,186 ----
localtime(&time_tmp));
/*
+ * Calculate the WAL file name containing the latest checkpoint's REDO
+ * record.
+ */
+ XLByteToSeg(ControlFile.checkPointCopy.redo, segno);
+ XLogFileName(xlogfilename, ControlFile.checkPointCopy.ThisTimeLineID, segno);
+
+ /*
* Format system_identifier separately to keep platform-dependent format
* code out of the translatable message string.
*/
***************
*** 201,206 **** main(int argc, char *argv[])
--- 211,218 ----
printf(_("Latest checkpoint's REDO location: %X/%X\n"),
(uint32) (ControlFile.checkPointCopy.redo >> 32),
(uint32) ControlFile.checkPointCopy.redo);
+ 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"),