pg_dumpall: Skip global objects with --statistics-only or --no-schema.
authorJeff Davis <jdavis@postgresql.org>
Wed, 16 Jul 2025 16:57:12 +0000 (09:57 -0700)
committerJeff Davis <jdavis@postgresql.org>
Wed, 16 Jul 2025 16:57:12 +0000 (09:57 -0700)
Previously, pg_dumpall would still dump global objects such as roles
and tablespaces even when --statistics-only or --no-schema was specified.
Since these global objects are treated as schema-level data, they should
be skipped in these cases.

This commit fixes the issue by ensuring that global objects are not
dumped when either --statistics-only or --no-schema is used.

Author: Fujii Masao <masao.fujii@oss.nttdata.com>
Reviewed-by: Corey Huinker <corey.huinker@gmail.com>
Discussion: https://postgr.es/m/08129593-6f3c-4fb9-94b7-5aa2eefb99b0@oss.nttdata.com
Backpatch-through: 18

src/bin/pg_dump/pg_dumpall.c

index 3cbcad65c5fb5fd78f2af0eb7f20023252f7f4d3..100317b1aa949f6ad370c9e812149ad33342c2bd 100644 (file)
@@ -632,7 +632,7 @@ main(int argc, char *argv[])
        fprintf(OPF, "SET escape_string_warning = off;\n");
    fprintf(OPF, "\n");
 
-   if (!data_only)
+   if (!data_only && !statistics_only && !no_schema)
    {
        /*
         * If asked to --clean, do that first.  We can avoid detailed