From eb632649b49b8c48593294875d823c0077d06d78 Mon Sep 17 00:00:00 2001 From: Srinath Reddy Sadipiralla Date: Sat, 25 Jan 2025 17:52:50 +0530 Subject: [PATCH 1/1] Parse the --format option for pg_restore with pg_strcasecmp instead of first char of the formatName. --- src/bin/pg_dump/pg_restore.c | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/src/bin/pg_dump/pg_restore.c b/src/bin/pg_dump/pg_restore.c index 88ae39d938..79f046163c 100644 --- a/src/bin/pg_dump/pg_restore.c +++ b/src/bin/pg_dump/pg_restore.c @@ -383,27 +383,21 @@ main(int argc, char **argv) if (opts->formatName) { - switch (opts->formatName[0]) - { - case 'c': - case 'C': - opts->format = archCustom; - break; - - case 'd': - case 'D': - opts->format = archDirectory; - break; - - case 't': - case 'T': - opts->format = archTar; - break; - - default: - pg_fatal("unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\"", + if (pg_strcasecmp(opts->formatName, "c") == 0) + opts->format = archCustom; + else if (pg_strcasecmp(opts->formatName, "custom") == 0) + opts->format = archCustom; + else if (pg_strcasecmp(opts->formatName, "d") == 0) + opts->format = archDirectory; + else if (pg_strcasecmp(opts->formatName, "directory") == 0) + opts->format = archDirectory; + else if (pg_strcasecmp(opts->formatName, "t") == 0) + opts->format = archTar; + else if (pg_strcasecmp(opts->formatName, "tar") == 0) + opts->format = archTar; + else + pg_fatal("unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\"", opts->formatName); - } } AH = OpenArchive(inputFileSpec, opts->format); -- 2.43.0