1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-15 19:21:59 +03:00

Unbreak pg_resetxlog -l.

Fujii Masao
This commit is contained in:
Robert Haas
2012-06-25 13:58:38 -04:00
parent 2dfa87bcb6
commit a6427f1f47

View File

@ -86,9 +86,13 @@ main(int argc, char *argv[])
Oid set_oid = 0; Oid set_oid = 0;
MultiXactId set_mxid = 0; MultiXactId set_mxid = 0;
MultiXactOffset set_mxoff = (MultiXactOffset) -1; MultiXactOffset set_mxoff = (MultiXactOffset) -1;
uint32 minXlogTli = 0; uint32 minXlogTli = 0,
minXlogId = 0,
minXlogSeg = 0;
XLogSegNo minXlogSegNo = 0; XLogSegNo minXlogSegNo = 0;
char *endptr; char *endptr;
char *endptr2;
char *endptr3;
char *DataDir; char *DataDir;
int fd; int fd;
char path[MAXPGPATH]; char path[MAXPGPATH];
@ -200,13 +204,28 @@ main(int argc, char *argv[])
break; break;
case 'l': case 'l':
if (strspn(optarg, "01234567890ABCDEFabcdef") != 24) minXlogTli = strtoul(optarg, &endptr, 0);
if (endptr == optarg || *endptr != ',')
{ {
fprintf(stderr, _("%s: invalid argument for option -l\n"), progname); fprintf(stderr, _("%s: invalid argument for option -l\n"), progname);
fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname); fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
exit(1); exit(1);
} }
XLogFromFileName(optarg, &minXlogTli, &minXlogSegNo); minXlogId = strtoul(endptr + 1, &endptr2, 0);
if (endptr2 == endptr + 1 || *endptr2 != ',')
{
fprintf(stderr, _("%s: invalid argument for option -l\n"), progname);
fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
exit(1);
}
minXlogSeg = strtoul(endptr2 + 1, &endptr3, 0);
if (endptr3 == endptr2 + 1 || *endptr3 != '\0')
{
fprintf(stderr, _("%s: invalid argument for option -l\n"), progname);
fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
exit(1);
}
minXlogSegNo = (uint64) minXlogId * XLogSegmentsPerXLogId + minXlogSeg;
break; break;
default: default: