pg_dump: Fix incorrect archive format shown in error message.
authorFujii Masao <fujii@postgresql.org>
Thu, 17 Apr 2025 00:52:47 +0000 (09:52 +0900)
committerFujii Masao <fujii@postgresql.org>
Thu, 17 Apr 2025 00:52:47 +0000 (09:52 +0900)
In pg_dump and pg_restore, _allocAH() calls _discoverArchiveFormat() to
determine the archive format when the input format is unknown one.
If the input or discovered format is unrecognized, it reports an error
including the archive format number.

If discovered format is unrecognized, its number should be shown in
the error message. But previously the error message mistakenly showed
the originally requested format number (i.e., unknown one) instead of
the discovered one, due to referencing the wrong variable in the error
message.

This commit corrects the issue by using the appropriate variable in
the error message.

This fix has no practical impact since _discoverArchiveFormat() never
returns an unrecognized format and that error mesasge is actually
never output. Therefore, while the issue exists in back branches,
it's not worth the trouble and buildfarm cycles to back-patch.
So this fix is applied only to the master branch.

Author: Mahendra Singh Thalor <mahi6run@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Fujii Masao <masao.fujii@gmail.com>
Discussion: https://postgr.es/m/CAKYtNAqu+N-Ab2Fq6wzNSOm_-0N-BMneanYNV1+6kFDXjva1Eg@mail.gmail.com

src/bin/pg_dump/pg_backup_archiver.c

index f961162f365cd0840908904f1c06dc394ab76836..afa42337b110fe15f1ef99f3fdbd9f4ff5bad3fe 100644 (file)
@@ -2469,7 +2469,7 @@ _allocAH(const char *FileSpec, const ArchiveFormat fmt,
            break;
 
        default:
-           pg_fatal("unrecognized file format \"%d\"", fmt);
+           pg_fatal("unrecognized file format \"%d\"", AH->format);
    }
 
    return AH;