Fix pg_amcheck --skip option parameter handling
authorDaniel Gustafsson <dgustafsson@postgresql.org>
Wed, 18 Aug 2021 09:23:43 +0000 (11:23 +0200)
committerDaniel Gustafsson <dgustafsson@postgresql.org>
Wed, 18 Aug 2021 09:23:43 +0000 (11:23 +0200)
The skip options set for all-visible and all-frozen were incorrect
as they used space rather than hyphen, causing a syntax error when
invoked. Also, the option for not skipping any pages at all, none,
was documented but not implemented.

Backpatch through 14 where pg_amcheck was introduced.

Bug: #17149
Reported-by: Chen Jiaoqian <chenjq.jy@fujitsu.com>
Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
Discussion: https://postgr.es/m/17149-5918ea748da36b15@postgresql.org
Backpatch-through: 14

src/bin/pg_amcheck/pg_amcheck.c

index bcb02db4958b6f297c67f84f6e2d276a9cfddf24..a86a1c098780b6b847bd31e31a0322b02361073d 100644 (file)
@@ -395,9 +395,11 @@ main(int argc, char *argv[])
                break;
            case 6:
                if (pg_strcasecmp(optarg, "all-visible") == 0)
-                   opts.skip = "all visible";
+                   opts.skip = "all-visible";
                else if (pg_strcasecmp(optarg, "all-frozen") == 0)
-                   opts.skip = "all frozen";
+                   opts.skip = "all-frozen";
+               else if (pg_strcasecmp(optarg, "none") == 0)
+                   opts.skip = "none";
                else
                {
                    pg_log_error("invalid argument for option %s", "--skip");