diff --git a/src/bin/pg_resetwal/pg_resetwal.c b/src/bin/pg_resetwal/pg_resetwal.c index 884a6eac547..21748ed5b3a 100644 --- a/src/bin/pg_resetwal/pg_resetwal.c +++ b/src/bin/pg_resetwal/pg_resetwal.c @@ -233,7 +233,7 @@ main(int argc, char *argv[]) pg_log_error_hint("Try \"%s --help\" for more information.", progname); exit(1); } - newest_commit_ts_xid_val = strtoul(endptr + 1, &endptr2, 0); + newest_commit_ts_xid_val = strtouint32_strict(endptr + 1, &endptr2, 0); if (endptr2 == endptr + 1 || *endptr2 != '\0' || errno != 0) { pg_log_error("invalid argument for option %s", "-c"); @@ -482,8 +482,10 @@ main(int argc, char *argv[]) if (commit_ts_xids_given) { - ControlFile.checkPointCopy.oldestCommitTsXid = oldest_commit_ts_xid_val; - ControlFile.checkPointCopy.newestCommitTsXid = newest_commit_ts_xid_val; + if (oldest_commit_ts_xid_val != InvalidTransactionId) + ControlFile.checkPointCopy.oldestCommitTsXid = oldest_commit_ts_xid_val; + if (newest_commit_ts_xid_val != InvalidTransactionId) + ControlFile.checkPointCopy.newestCommitTsXid = newest_commit_ts_xid_val; } if (next_oid_given)