waldump-beginread.patch
application/octet-stream
Filename: waldump-beginread.patch
Type: application/octet-stream
Part: 0
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/bin/pg_waldump/pg_waldump.c | 17 | 0 |
diff --git a/src/bin/pg_waldump/pg_waldump.c b/src/bin/pg_waldump/pg_waldump.c
index 6528113628..069c388510 100644
--- a/src/bin/pg_waldump/pg_waldump.c
+++ b/src/bin/pg_waldump/pg_waldump.c
@@ -700,6 +700,7 @@ main(int argc, char **argv)
XLogRecPtr first_record;
char *waldir = NULL;
char *errormsg;
+ bool beginread = false;
static struct option long_options[] = {
{"bkp-details", no_argument, NULL, 'b'},
@@ -719,6 +720,7 @@ main(int argc, char **argv)
{"xid", required_argument, NULL, 'x'},
{"version", no_argument, NULL, 'V'},
{"stats", optional_argument, NULL, 'z'},
+ {"beginread", no_argument, NULL, 'X'},
{NULL, 0, NULL, 0}
};
@@ -927,6 +929,9 @@ main(int argc, char **argv)
}
config.filter_by_xid_enabled = true;
break;
+ case 'X':
+ beginread = true;
+ break;
case 'z':
config.stats = true;
config.stats_per_record = false;
@@ -1073,6 +1078,15 @@ main(int argc, char **argv)
if (!xlogreader_state)
pg_fatal("out of memory while allocating a WAL reading processor");
+ if (beginread)
+ {
+ XLogBeginRead(xlogreader_state, private.startptr);
+ first_record = private.startptr;
+ }
+ else
+ {
+ /* NOT REINDENTED - THIS PATCH IS JUST FOR DEBUGGING */
+
/* first find a valid recptr to start from */
first_record = XLogFindNextRecord(xlogreader_state, private.startptr);
@@ -1094,6 +1108,9 @@ main(int argc, char **argv)
LSN_FORMAT_ARGS(first_record),
(uint32) (first_record - private.startptr));
+ /* NOT REINDENTED - THIS PATCH IS JUST FOR DEBUGGING */
+ }
+
if (config.stats == true && !config.quiet)
stats.startptr = first_record;