Fix pg_amcheck --skip option parameter handling
authorDaniel Gustafsson
Wed, 18 Aug 2021 09:23:43 +0000 (11:23 +0200)
committerDaniel Gustafsson
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
Reviewed-by: Masahiko Sawada
Discussion: https://postgr.es/m/17149-5918ea748da36b15@postgresql.org
Backpatch-through: 14

src/bin/pg_amcheck/pg_amcheck.c

index 406fedaab146fb2a55cd1bacc30206dae0bb17ab..e6ea8e6e5d088b30b1a529d8a12e44484382295f 100644 (file)
@@ -397,9 +397,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");