summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut2018-03-24 19:40:21 +0000
committerPeter Eisentraut2018-03-24 19:40:21 +0000
commit496d56670af44a2a578c15195c36f797e29cff24 (patch)
treeff3962be86a78db6fb0e2d7731758da8e80fc920
parent4644a1170f0ad88f92d2835f589fffb6aa38c129 (diff)
initdb: Improve --wal-segsize handling
Give separate error messages for when the argument is not a number and when it is not the right kind of number. Fix wording in the help message.
-rw-r--r--src/bin/initdb/initdb.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
index feee3591699..970463441c1 100644
--- a/src/bin/initdb/initdb.c
+++ b/src/bin/initdb/initdb.c
@@ -2323,7 +2323,7 @@ usage(const char *progname)
printf(_(" -U, --username=NAME database superuser name\n"));
printf(_(" -W, --pwprompt prompt for a password for the new superuser\n"));
printf(_(" -X, --waldir=WALDIR location for the write-ahead log directory\n"));
- printf(_(" --wal-segsize=SIZE size of wal segment size in megabytes\n"));
+ printf(_(" --wal-segsize=SIZE size of WAL segments, in megabytes\n"));
printf(_("\nLess commonly used options:\n"));
printf(_(" -d, --debug generate lots of debugging output\n"));
printf(_(" -k, --data-checksums use data page checksums\n"));
@@ -3224,11 +3224,17 @@ main(int argc, char *argv[])
wal_segment_size_mb = strtol(str_wal_segment_size_mb, &endptr, 10);
/* verify that wal segment size is valid */
- if (*endptr != '\0' ||
- !IsValidWalSegSize(wal_segment_size_mb * 1024 * 1024))
+ if (*endptr != '\0')
{
fprintf(stderr,
- _("%s: --wal-segsize must be a power of two between 1 and 1024\n"),
+ _("%s: argument of --wal-segsize must be a number\n"),
+ progname);
+ exit(1);
+ }
+ if (!IsValidWalSegSize(wal_segment_size_mb * 1024 * 1024))
+ {
+ fprintf(stderr,
+ _("%s: argument of --wal-segsize must be a power of two between 1 and 1024\n"),
progname);
exit(1);
}