]> granicus.if.org Git - postgresql/commitdiff
Rewrite pg_dump TAP tests
authorStephen Frost <sfrost@snowman.net>
Wed, 4 Apr 2018 19:26:51 +0000 (15:26 -0400)
committerStephen Frost <sfrost@snowman.net>
Wed, 4 Apr 2018 19:26:51 +0000 (15:26 -0400)
This reworks how the tests to run are defined.  Instead of having to
define all runs for all tests, we define those tests which should pass
(generally using one of the defined broad hashes), add in any which
should be specific for this test, and exclude any specific runs that
shouldn't pass for this test.  This ends up removing some 4k+ lines
(more than half the file) but, more importantly, greatly simplifies the
way runs-to-be-tested are defined.

As discussed in the updated comments, for example, take the test which
does CREATE TABLE test_table.  That CREATE TABLE should show up in all
'full' runs of pg_dump, except those cases where 'test_table' is
excluded, of course, and that's exactly how the test gets defined now
(modulo a few other related cases, like where we dump only that table,
or we dump the schema it's in, or we exclude the schema it's in):

like => {
    %full_runs,
    %dump_test_schema_runs,
    only_dump_test_table    => 1,
    section_pre_data        => 1, },
unlike => {
    exclude_dump_test_schema => 1,
    exclude_test_table => 1, }, },

Next, we no longer expect every run to be listed for every test.  If a
run is listed in 'like' (directly or through a hash) then it's a 'like',
unless it's listed in 'unlike' in which case it's an 'unlike'.  If it
isn't listed in either, then it's considered an 'unlike' automatically.

Lastly, this changes the code to no longer use like/unlike but rather to
use 'ok()' with 'diag()' which allows much more control over what gets
spit out to the screen.  Gone are the days of the entire dump being sent
to the console, now you'll just get a couple of lines for each failing
test which say the test that failed and the run that it failed on.

This covers both the pg_dump TAP tests in src/bin/pg_dump and those in
src/test/modules/test_pg_dump.

src/bin/pg_dump/t/002_pg_dump.pl
src/test/modules/test_pg_dump/t/001_base.pl

index 1bea6ae81db823ba1bcfb12e52f0276ae58877aa..acdfde2a1e8c67b84e0e495542ef11384e542e2c 100644 (file)
@@ -274,21 +274,20 @@ my %pgdump_runs = (
 # and the success of the result will depend on if the regexp
 # result matches the expected 'like' or 'unlike' case.
 #
-# For each test, there are two sets of runs defined, one for
-# the 'like' tests and one for the 'unlike' tests.  'like'
-# essentially means "the regexp for this test must match the
-# output file".  'unlike' is the opposite.
+# The runs listed as 'like' will be checked if they match the
+# regexp and, if so, the test passes.  All runs which are not
+# listed as 'like' will be checked to ensure they don't match
+# the regexp; if they do, the test will fail.
 #
-# There are a few 'catch-all' tests which can be used to have
-# a single, simple, test to over a range of other tests.  For
-# example, there is a '^CREATE ' test, which is used for the
-# 'data-only' test as there should never be any kind of CREATE
-# statement in a 'data-only' run.  Without the catch-all, we
-# would have to list the 'data-only' run in each and every
-# 'CREATE xxxx' test, which would be a lot of additional tests.
+# The below hashes provide convenience sets of runs.  Individual
+# runs can be excluded from a general hash by placing that run
+# into the 'unlike' section.
 #
-# Note that it makes no sense for the same run to ever be listed
-# in both 'like' and 'unlike' categories.
+# For example, there is an 'exclude_test_table' run which runs a
+# full pg_dump but with an exclude flag to not include the test
+# table.  The CREATE TABLE test which creates the test table is
+# defined with %full_runs but then has 'exclude_test_table' in
+# its 'unlike' list, excluding that test.
 #
 # There can then be a 'create_sql' and 'create_order' for a
 # given test.  The 'create_sql' commands are collected up in
@@ -300,9 +299,34 @@ my %pgdump_runs = (
 # included in it are compiled.  This greatly improves performance
 # as the regexps are used for each run the test applies to.
 
+# Tests which target the 'dump_test' schema, specifically.
+my %dump_test_schema_runs = (
+       only_dump_test_schema => 1,
+       test_schema_plus_blobs => 1,
+);
+
+# Tests which are considered 'full' dumps by pg_dump, but there
+# are flags used to exclude specific items (ACLs, blobs, etc).
+my %full_runs = (
+       binary_upgrade => 1,
+       clean => 1,
+       clean_if_exists => 1,
+       createdb => 1,
+       defaults => 1,
+       exclude_dump_test_schema => 1,
+       exclude_test_table => 1,
+       exclude_test_table_data => 1,
+       no_blobs => 1,
+       no_owner => 1,
+       no_privs => 1,
+       pg_dumpall_dbprivs => 1,
+       schema_only => 1,
+       with_oids => 1,
+);
+
+# This is where the actual tests are defined.
 my %tests = (
        'ALTER DEFAULT PRIVILEGES FOR ROLE regress_dump_test_role GRANT' => {
-               all_runs     => 1,
                create_order => 14,
                create_sql   => 'ALTER DEFAULT PRIVILEGES
                                           FOR ROLE regress_dump_test_role IN SCHEMA dump_test
@@ -313,35 +337,14 @@ my %tests = (
                        \QGRANT SELECT ON TABLES  TO regress_dump_test_role;\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_post_data       => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_post_data       => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       no_privs                 => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_pre_data         => 1,
-                       section_data             => 1, }, },
+                       no_privs => 1, }, },
 
        'ALTER DEFAULT PRIVILEGES FOR ROLE regress_dump_test_role REVOKE' => {
-               all_runs     => 1,
                create_order => 55,
                create_sql   => 'ALTER DEFAULT PRIVILEGES
                                           FOR ROLE regress_dump_test_role
@@ -352,36 +355,13 @@ my %tests = (
                        \QREVOKE ALL ON FUNCTIONS  FROM PUBLIC;\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_post_data        => 1,
-                       with_oids                => 1, },
+                       %full_runs,
+                       section_post_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       no_privs                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_pre_data         => 1,
-                       section_data             => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       no_privs => 1, }, },
 
        'ALTER DEFAULT PRIVILEGES FOR ROLE regress_dump_test_role REVOKE SELECT'
          => {
-               all_runs     => 1,
                create_order => 56,
                create_sql   => 'ALTER DEFAULT PRIVILEGES
                                           FOR ROLE regress_dump_test_role
@@ -395,35 +375,12 @@ my %tests = (
                        \QGRANT INSERT,REFERENCES,DELETE,TRIGGER,TRUNCATE,UPDATE ON TABLES  TO regress_dump_test_role;\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_post_data        => 1,
-                       with_oids                => 1, },
+                       %full_runs,
+                       section_post_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       no_privs                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_pre_data         => 1,
-                       section_data             => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       no_privs => 1, }, },
 
        'ALTER ROLE regress_dump_test_role' => {
-               all_runs => 1,
                regexp   => qr/^
                        \QALTER ROLE regress_dump_test_role WITH \E
                        \QNOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN \E
@@ -432,167 +389,61 @@ my %tests = (
                like => {
                        pg_dumpall_dbprivs       => 1,
                        pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1, },
-               unlike => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       column_inserts           => 1,
-                       createdb                 => 1,
-                       data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, }, },
+                       pg_dumpall_globals_clean => 1, }, },
 
        'ALTER COLLATION test0 OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp    => qr/^ALTER COLLATION public.test0 OWNER TO .*;/m,
                collation => 1,
                like      => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       %full_runs,
+                       section_pre_data         => 1, },
                unlike => {
-                       only_dump_test_schema  => 1,
-                       only_dump_test_table   => 1,
-                       role                   => 1,
-                       test_schema_plus_blobs => 1, }, },
+                       %dump_test_schema_runs,
+                       no_owner => 1, }, },
 
        'ALTER FOREIGN DATA WRAPPER dummy OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp    => qr/^ALTER FOREIGN DATA WRAPPER dummy OWNER TO .*;/m,
                like      => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       %full_runs,
+                       section_pre_data         => 1, },
                unlike => {
-                       data_only              => 1,
-                       only_dump_test_schema  => 1,
-                       only_dump_test_table   => 1,
-                       role                   => 1,
-                       test_schema_plus_blobs => 1, }, },
+                       no_owner => 1, }, },
 
        'ALTER SERVER s1 OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp    => qr/^ALTER SERVER s1 OWNER TO .*;/m,
                like      => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       %full_runs,
+                       section_pre_data         => 1, },
                unlike => {
-                       data_only              => 1,
-                       only_dump_test_schema  => 1,
-                       only_dump_test_table   => 1,
-                       role                   => 1,
-                       test_schema_plus_blobs => 1, }, },
+                       no_owner => 1, }, },
 
        'ALTER FUNCTION dump_test.pltestlang_call_handler() OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp    => qr/^
                        \QALTER FUNCTION dump_test.pltestlang_call_handler() \E
                        \QOWNER TO \E
                        .*;/xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
                        exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1, }, },
+                       no_owner => 1, }, },
 
        'ALTER OPERATOR FAMILY dump_test.op_family OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp    => qr/^
                        \QALTER OPERATOR FAMILY dump_test.op_family USING btree \E
                        \QOWNER TO \E
                        .*;/xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
                        exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1, }, },
+                       no_owner => 1, }, },
 
        'ALTER OPERATOR FAMILY dump_test.op_family USING btree' => {
-               all_runs     => 1,
                create_order => 75,
                create_sql =>
                  'ALTER OPERATOR FAMILY dump_test.op_family USING btree ADD
@@ -614,299 +465,110 @@ my %tests = (
                        \QFUNCTION 2 (integer, integer) btint4sortsupport(internal);\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_owner                => 1,
-                       no_privs                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'ALTER OPERATOR CLASS dump_test.op_class OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp    => qr/^
                        \QALTER OPERATOR CLASS dump_test.op_class USING btree \E
                        \QOWNER TO \E
                        .*;/xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
                        exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1, }, },
+                       no_owner => 1, }, },
 
        'ALTER PUBLICATION pub1 OWNER TO' => {
-               all_runs => 1,
                regexp   => qr/^ALTER PUBLICATION pub1 OWNER TO .*;/m,
                like     => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_privs                 => 1,
-                       no_blobs                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_post_data        => 1,
-                       with_oids                => 1, },
+                       %full_runs,
+                       section_post_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       no_owner                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_pre_data         => 1,
-                       section_data             => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       no_owner => 1, }, },
 
        'ALTER LARGE OBJECT ... OWNER TO' => {
-               all_runs => 1,
                regexp   => qr/^ALTER LARGE OBJECT \d+ OWNER TO .*;/m,
                like     => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
+                       %full_runs,
                        column_inserts           => 1,
-                       createdb                 => 1,
                        data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_privs                 => 1,
-                       pg_dumpall_dbprivs       => 1,
                        section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, },
+                       test_schema_plus_blobs   => 1, },
                unlike => {
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       no_blobs => 1,
+                       no_owner => 1,
+                       schema_only => 1, }, },
 
        'ALTER PROCEDURAL LANGUAGE pltestlang OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp    => qr/^ALTER PROCEDURAL LANGUAGE pltestlang OWNER TO .*;/m,
                like      => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       %full_runs,
+                       section_pre_data         => 1, },
                unlike => {
-                       only_dump_test_schema  => 1,
-                       only_dump_test_table   => 1,
-                       role                   => 1,
-                       test_schema_plus_blobs => 1, }, },
+                       no_owner => 1, }, },
 
        'ALTER SCHEMA dump_test OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp    => qr/^ALTER SCHEMA dump_test OWNER TO .*;/m,
                like      => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
                        exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1, }, },
+                       no_owner => 1, }, },
 
        'ALTER SCHEMA dump_test_second_schema OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp    => qr/^ALTER SCHEMA dump_test_second_schema OWNER TO .*;/m,
                like      => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       %full_runs,
+                       role => 1,
+                       section_pre_data         => 1, },
                unlike => {
-                       only_dump_test_schema  => 1,
-                       only_dump_test_table   => 1,
-                       test_schema_plus_blobs => 1, }, },
+                       no_owner => 1, }, },
 
        'ALTER SEQUENCE test_table_col1_seq' => {
-               all_runs => 1,
                regexp   => qr/^
                        \QALTER SEQUENCE dump_test.test_table_col1_seq OWNED BY dump_test.test_table.col1;\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_test_table       => 1,
                        exclude_dump_test_schema => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_test_table => 1, }, },
 
        'ALTER SEQUENCE test_third_table_col1_seq' => {
-               all_runs => 1,
                regexp   => qr/^
                        \QALTER SEQUENCE dump_test_second_schema.test_third_table_col1_seq OWNED BY dump_test_second_schema.test_third_table.col1;\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
+                       %full_runs,
                        role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       section_pre_data         => 1, }, },
 
        'ALTER TABLE ONLY test_table ADD CONSTRAINT ... PRIMARY KEY' => {
-               all_runs  => 1,
-               catch_all => 'ALTER TABLE ... commands',
                regexp    => qr/^
                        \QALTER TABLE ONLY dump_test.test_table\E \n^\s+
                        \QADD CONSTRAINT test_table_pkey PRIMARY KEY (col1);\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_post_data       => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_post_data       => 1, },
                unlike => {
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       role                     => 1,
-                       section_pre_data         => 1,
-                       section_data             => 1, }, },
+                       exclude_test_table => 1, }, },
 
        'ALTER TABLE ONLY test_table ALTER COLUMN col1 SET STATISTICS 90' => {
-               all_runs     => 1,
-               catch_all    => 'ALTER TABLE ... commands',
                create_order => 93,
                create_sql =>
 'ALTER TABLE dump_test.test_table ALTER COLUMN col1 SET STATISTICS 90;',
@@ -914,33 +576,15 @@ my %tests = (
                        \QALTER TABLE ONLY dump_test.test_table ALTER COLUMN col1 SET STATISTICS 90;\E\n
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_pre_data        => 1, },
                unlike => {
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       role                     => 1,
-                       section_post_data        => 1,
-                       section_data             => 1, }, },
+                       exclude_test_table => 1, }, },
 
        'ALTER TABLE ONLY test_table ALTER COLUMN col2 SET STORAGE' => {
-               all_runs     => 1,
-               catch_all    => 'ALTER TABLE ... commands',
                create_order => 94,
                create_sql =>
 'ALTER TABLE dump_test.test_table ALTER COLUMN col2 SET STORAGE EXTERNAL;',
@@ -948,33 +592,15 @@ my %tests = (
                        \QALTER TABLE ONLY dump_test.test_table ALTER COLUMN col2 SET STORAGE EXTERNAL;\E\n
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_pre_data        => 1, },
                unlike => {
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       role                     => 1,
-                       section_post_data        => 1,
-                       section_data             => 1, }, },
+                       exclude_test_table => 1, }, },
 
        'ALTER TABLE ONLY test_table ALTER COLUMN col3 SET STORAGE' => {
-               all_runs     => 1,
-               catch_all    => 'ALTER TABLE ... commands',
                create_order => 95,
                create_sql =>
 'ALTER TABLE dump_test.test_table ALTER COLUMN col3 SET STORAGE MAIN;',
@@ -982,33 +608,15 @@ my %tests = (
                        \QALTER TABLE ONLY dump_test.test_table ALTER COLUMN col3 SET STORAGE MAIN;\E\n
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_pre_data        => 1, },
                unlike => {
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       role                     => 1,
-                       section_post_data        => 1,
-                       section_data             => 1, }, },
+                       exclude_test_table => 1, }, },
 
        'ALTER TABLE ONLY test_table ALTER COLUMN col4 SET n_distinct' => {
-               all_runs     => 1,
-               catch_all    => 'ALTER TABLE ... commands',
                create_order => 95,
                create_sql =>
 'ALTER TABLE dump_test.test_table ALTER COLUMN col4 SET (n_distinct = 10);',
@@ -1016,67 +624,23 @@ my %tests = (
                        \QALTER TABLE ONLY dump_test.test_table ALTER COLUMN col4 SET (n_distinct=10);\E\n
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_pre_data        => 1, },
                unlike => {
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       role                     => 1,
-                       section_post_data        => 1,
-                       section_data             => 1, }, },
+                       exclude_test_table => 1, }, },
 
 'ALTER TABLE ONLY dump_test.measurement ATTACH PARTITION measurement_y2006m2'
          => {
-               all_runs => 1,
                regexp   => qr/^
                        \QALTER TABLE ONLY dump_test.measurement ATTACH PARTITION dump_test_second_schema.measurement_y2006m2 \E
                        \QFOR VALUES FROM ('2006-02-01') TO ('2006-03-01');\E\n
                        /xm,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1,
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       section_data             => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'ALTER TABLE test_table CLUSTER ON test_table_pkey' => {
-               all_runs     => 1,
-               catch_all    => 'ALTER TABLE ... commands',
                create_order => 96,
                create_sql =>
                  'ALTER TABLE dump_test.test_table CLUSTER ON test_table_pkey',
@@ -1084,400 +648,150 @@ my %tests = (
                        \QALTER TABLE dump_test.test_table CLUSTER ON test_table_pkey;\E\n
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_post_data       => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_post_data       => 1, },
                unlike => {
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       role                     => 1,
-                       section_pre_data         => 1,
-                       section_data             => 1, }, },
+                       exclude_test_table => 1, }, },
 
        'ALTER TABLE test_table DISABLE TRIGGER ALL' => {
-               all_runs => 1,
                regexp   => qr/^
                        \QSET SESSION AUTHORIZATION 'test_superuser';\E\n\n
                        \QALTER TABLE dump_test.test_table DISABLE TRIGGER ALL;\E\n\n
                        \QCOPY dump_test.test_table (col1, col2, col3, col4) FROM stdin;\E
                        \n(?:\d\t\\N\t\\N\t\\N\n){9}\\\.\n\n\n
                        \QALTER TABLE dump_test.test_table ENABLE TRIGGER ALL;\E/xm,
-               like   => { data_only => 1, },
-               unlike => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       role                     => 1,
-                       column_inserts           => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       with_oids                => 1, }, },
+               like   => { data_only => 1, }, },
 
        'ALTER FOREIGN TABLE foreign_table ALTER COLUMN c1 OPTIONS' => {
-               all_runs  => 1,
-               catch_all => 'ALTER TABLE ... commands',
                regexp    => qr/^
                        \QALTER FOREIGN TABLE dump_test.foreign_table ALTER COLUMN c1 OPTIONS (\E\n
                        \s+\Qcolumn_name 'col1'\E\n
                        \Q);\E\n
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       data_only                => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'ALTER TABLE test_table OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp    => qr/^ALTER TABLE dump_test.test_table OWNER TO .*;/m,
                like      => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_pre_data        => 1, },
                unlike => {
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       role                     => 1, }, },
+                       exclude_test_table => 1,
+                       no_owner => 1, }, },
 
        'ALTER TABLE test_table ENABLE ROW LEVEL SECURITY' => {
-               all_runs     => 1,
-               catch_all    => 'ALTER TABLE ... commands',
                create_order => 23,
                create_sql   => 'ALTER TABLE dump_test.test_table
                                           ENABLE ROW LEVEL SECURITY;',
                regexp => qr/^ALTER TABLE dump_test.test_table ENABLE ROW LEVEL SECURITY;/m,
                like   => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_post_data       => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       only_dump_test_table => 1,
+                       section_post_data       => 1, },
                unlike => {
-                       data_only                => 1,
-                       section_pre_data         => 1,
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       role                     => 1, }, },
+                       exclude_test_table => 1, }, },
 
        'ALTER TABLE test_second_table OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp    => qr/^ALTER TABLE dump_test.test_second_table OWNER TO .*;/m,
                like      => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1, }, },
+                       no_owner => 1, }, },
 
        'ALTER TABLE test_third_table OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp    => qr/^ALTER TABLE dump_test_second_schema.test_third_table OWNER TO .*;/m,
                like      => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       pg_dumpall_dbprivs       => 1,
+                       %full_runs,
                        role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       section_pre_data         => 1, },
                unlike => {
-                       data_only              => 1,
-                       only_dump_test_schema  => 1,
-                       only_dump_test_table   => 1,
-                       test_schema_plus_blobs => 1, }, },
+                       no_owner => 1, }, },
 
        'ALTER TABLE measurement OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp    => qr/^ALTER TABLE dump_test.measurement OWNER TO .*;/m,
                like      => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1, }, },
+                       no_owner => 1, }, },
 
        'ALTER TABLE measurement_y2006m2 OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp    => qr/^ALTER TABLE dump_test_second_schema.measurement_y2006m2 OWNER TO .*;/m,
                like      => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       pg_dumpall_dbprivs       => 1,
+                       %full_runs,
                        role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       section_pre_data         => 1, },
                unlike => {
-                       data_only              => 1,
-                       only_dump_test_schema  => 1,
-                       only_dump_test_table   => 1,
-                       test_schema_plus_blobs => 1, }, },
+                       no_owner => 1, }, },
 
        'ALTER FOREIGN TABLE foreign_table OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp    => qr/^ALTER FOREIGN TABLE dump_test.foreign_table OWNER TO .*;/m,
                like      => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
                        exclude_dump_test_schema => 1,
-                       data_only                => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1, }, },
+                       no_owner => 1, }, },
 
        'ALTER TEXT SEARCH CONFIGURATION alt_ts_conf1 OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp =>
                  qr/^ALTER TEXT SEARCH CONFIGURATION dump_test.alt_ts_conf1 OWNER TO .*;/m,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1, }, },
+                       no_owner => 1, }, },
 
        'ALTER TEXT SEARCH DICTIONARY alt_ts_dict1 OWNER TO' => {
-               all_runs  => 1,
-               catch_all => 'ALTER ... OWNER commands (except post-data objects)',
                regexp =>
                  qr/^ALTER TEXT SEARCH DICTIONARY dump_test.alt_ts_dict1 OWNER TO .*;/m,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
                        only_dump_test_table     => 1,
-                       role                     => 1, }, },
-
-       # catch-all for ALTER ... OWNER (except post-data objects)
-       'ALTER ... OWNER commands (except post-data objects)' => {
-               all_runs => 0,    # catch-all
-               regexp =>
-qr/^ALTER (?!EVENT TRIGGER|LARGE OBJECT|STATISTICS|PUBLICATION|SUBSCRIPTION)(.*) OWNER TO .*;/m,
-               like   => {},     # use more-specific options above
-               unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
                        no_owner                 => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
-
-       # catch-all for ALTER TABLE ... (except OWNER TO)
-       'ALTER TABLE ... commands' => {
-               all_runs => 0,                                        # catch-all
-               regexp   => qr/^ALTER TABLE .* (?!OWNER TO)(.*);/m,
-               like   => {},    # use more-specific options above
-               unlike => {
-                       column_inserts           => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       section_data             => 1, }, },
+                       role                     => 1, }, },
 
        'BLOB create (using lo_from_bytea)' => {
-               all_runs     => 1,
                create_order => 50,
                create_sql =>
 'SELECT pg_catalog.lo_from_bytea(0, \'\\x310a320a330a340a350a360a370a380a390a\');',
                regexp => qr/^SELECT pg_catalog\.lo_create\('\d+'\);/m,
                like   => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
+                       %full_runs,
                        column_inserts           => 1,
-                       createdb                 => 1,
                        data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
                        section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, },
+                       test_schema_plus_blobs   => 1, },
                unlike => {
-                       no_blobs                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       schema_only => 1,
+                       no_blobs => 1, }, },
 
        'BLOB load (using lo_from_bytea)' => {
-               all_runs => 1,
                regexp   => qr/^
                        \QSELECT pg_catalog.lo_open\E \('\d+',\ \d+\);\n
                        \QSELECT pg_catalog.lowrite(0, \E
@@ -1485,130 +799,41 @@ qr/^ALTER (?!EVENT TRIGGER|LARGE OBJECT|STATISTICS|PUBLICATION|SUBSCRIPTION)(.*)
                        \QSELECT pg_catalog.lo_close(0);\E
                        /xm,
                like => {
-                       clean                    => 1,
-                       clean_if_exists          => 1,
+                       %full_runs,
                        column_inserts           => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
                        data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_owner                 => 1,
-                       no_privs                 => 1,
-                       pg_dumpall_dbprivs       => 1,
                        section_data             => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, },
+                       test_schema_plus_blobs   => 1, },
                unlike => {
-                       binary_upgrade           => 1,
-                       no_blobs                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       section_post_data        => 1, }, },
+                       binary_upgrade => 1,
+                       no_blobs => 1,
+                       schema_only => 1, }, },
 
        'COMMENT ON DATABASE postgres' => {
-               all_runs  => 1,
-               catch_all => 'COMMENT commands',
                regexp    => qr/^COMMENT ON DATABASE postgres IS .*;/m,
                # Should appear in the same tests as "CREATE DATABASE postgres"
-               like   => { createdb => 1, },
-               unlike => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, }, },
+               like   => { createdb => 1, }, },
 
        'COMMENT ON EXTENSION plpgsql' => {
-               all_runs  => 1,
-               catch_all => 'COMMENT commands',
                regexp    => qr/^COMMENT ON EXTENSION plpgsql IS .*;/m,
                # this shouldn't ever get emitted anymore
-               like      => {},
-               unlike => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       column_inserts           => 1,
-                       createdb                 => 1,
-                       data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       no_privs                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_post_data        => 1,
-                       section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, }, },
+               like      => {}, },
 
        'COMMENT ON TABLE dump_test.test_table' => {
-               all_runs     => 1,
-               catch_all    => 'COMMENT commands',
                create_order => 36,
                create_sql   => 'COMMENT ON TABLE dump_test.test_table
                                           IS \'comment on table\';',
                regexp => qr/^COMMENT ON TABLE dump_test.test_table IS 'comment on table';/m,
                like   => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_test_table => 1, }, },
 
        'COMMENT ON COLUMN dump_test.test_table.col1' => {
-               all_runs     => 1,
-               catch_all    => 'COMMENT commands',
                create_order => 36,
                create_sql   => 'COMMENT ON COLUMN dump_test.test_table.col1
                                           IS \'comment on column\';',
@@ -1616,33 +841,15 @@ qr/^ALTER (?!EVENT TRIGGER|LARGE OBJECT|STATISTICS|PUBLICATION|SUBSCRIPTION)(.*)
                        \QCOMMENT ON COLUMN dump_test.test_table.col1 IS 'comment on column';\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_test_table => 1, }, },
 
        'COMMENT ON COLUMN dump_test.composite.f1' => {
-               all_runs     => 1,
-               catch_all    => 'COMMENT commands',
                create_order => 44,
                create_sql   => 'COMMENT ON COLUMN dump_test.composite.f1
                                           IS \'comment on column of type\';',
@@ -1650,33 +857,13 @@ qr/^ALTER (?!EVENT TRIGGER|LARGE OBJECT|STATISTICS|PUBLICATION|SUBSCRIPTION)(.*)
                        \QCOMMENT ON COLUMN dump_test.composite.f1 IS 'comment on column of type';\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'COMMENT ON COLUMN dump_test.test_second_table.col1' => {
-               all_runs     => 1,
-               catch_all    => 'COMMENT commands',
                create_order => 63,
                create_sql   => 'COMMENT ON COLUMN dump_test.test_second_table.col1
                                           IS \'comment on column col1\';',
@@ -1684,33 +871,13 @@ qr/^ALTER (?!EVENT TRIGGER|LARGE OBJECT|STATISTICS|PUBLICATION|SUBSCRIPTION)(.*)
                        \QCOMMENT ON COLUMN dump_test.test_second_table.col1 IS 'comment on column col1';\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'COMMENT ON COLUMN dump_test.test_second_table.col2' => {
-               all_runs     => 1,
-               catch_all    => 'COMMENT commands',
                create_order => 64,
                create_sql   => 'COMMENT ON COLUMN dump_test.test_second_table.col2
                                           IS \'comment on column col2\';',
@@ -1718,66 +885,26 @@ qr/^ALTER (?!EVENT TRIGGER|LARGE OBJECT|STATISTICS|PUBLICATION|SUBSCRIPTION)(.*)
                        \QCOMMENT ON COLUMN dump_test.test_second_table.col2 IS 'comment on column col2';\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'COMMENT ON CONVERSION dump_test.test_conversion' => {
-               all_runs     => 1,
-               catch_all    => 'COMMENT commands',
                create_order => 79,
                create_sql   => 'COMMENT ON CONVERSION dump_test.test_conversion
                                           IS \'comment on test conversion\';',
                regexp =>
 qr/^COMMENT ON CONVERSION dump_test.test_conversion IS 'comment on test conversion';/m,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'COMMENT ON COLLATION test0' => {
-               all_runs     => 1,
-               catch_all    => 'COMMENT commands',
                create_order => 77,
                create_sql   => 'COMMENT ON COLLATION test0
                                           IS \'comment on test0 collation\';',
@@ -1785,32 +912,10 @@ qr/^COMMENT ON CONVERSION dump_test.test_conversion IS 'comment on test conversi
                  qr/^COMMENT ON COLLATION public.test0 IS 'comment on test0 collation';/m,
                collation => 1,
                like      => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       column_inserts         => 1,
-                       data_only              => 1,
-                       only_dump_test_schema  => 1,
-                       only_dump_test_table   => 1,
-                       role                   => 1,
-                       section_post_data      => 1,
-                       test_schema_plus_blobs => 1, }, },
+                       %full_runs,
+                       section_pre_data         => 1, }, },
 
        'COMMENT ON LARGE OBJECT ...' => {
-               all_runs     => 1,
                create_order => 65,
                create_sql   => 'DO $$
                                                 DECLARE myoid oid;
@@ -1823,106 +928,36 @@ qr/^COMMENT ON CONVERSION dump_test.test_conversion IS 'comment on test conversi
                        \QCOMMENT ON LARGE OBJECT \E[0-9]+\Q IS 'comment on large object';\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
+                       %full_runs,
                        column_inserts           => 1,
-                       createdb                 => 1,
                        data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
                        section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, },
+                       test_schema_plus_blobs   => 1, },
                unlike => {
-                       no_blobs                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       no_blobs => 1,
+                       schema_only => 1, }, },
 
        'COMMENT ON PUBLICATION pub1' => {
-               all_runs     => 1,
                create_order => 55,
                create_sql   => 'COMMENT ON PUBLICATION pub1
                                           IS \'comment on publication\';',
                regexp =>
                  qr/^COMMENT ON PUBLICATION pub1 IS 'comment on publication';/m,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_post_data        => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       only_dump_test_table     => 1,
-                       only_dump_test_schema    => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       %full_runs,
+                       section_post_data        => 1, }, },
 
        'COMMENT ON SUBSCRIPTION sub1' => {
-               all_runs     => 1,
                create_order => 55,
                create_sql   => 'COMMENT ON SUBSCRIPTION sub1
                                           IS \'comment on subscription\';',
                regexp =>
                  qr/^COMMENT ON SUBSCRIPTION sub1 IS 'comment on subscription';/m,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_post_data        => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       only_dump_test_table     => 1,
-                       only_dump_test_schema    => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       %full_runs,
+                       section_post_data        => 1, }, },
 
        'COMMENT ON TEXT SEARCH CONFIGURATION dump_test.alt_ts_conf1' => {
-               all_runs     => 1,
-               catch_all    => 'COMMENT commands',
                create_order => 84,
                create_sql =>
                  'COMMENT ON TEXT SEARCH CONFIGURATION dump_test.alt_ts_conf1
@@ -1930,33 +965,13 @@ qr/^COMMENT ON CONVERSION dump_test.test_conversion IS 'comment on test conversi
                regexp =>
 qr/^COMMENT ON TEXT SEARCH CONFIGURATION dump_test.alt_ts_conf1 IS 'comment on text search configuration';/m,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'COMMENT ON TEXT SEARCH DICTIONARY dump_test.alt_ts_dict1' => {
-               all_runs     => 1,
-               catch_all    => 'COMMENT commands',
                create_order => 84,
                create_sql =>
                  'COMMENT ON TEXT SEARCH DICTIONARY dump_test.alt_ts_dict1
@@ -1964,238 +979,88 @@ qr/^COMMENT ON TEXT SEARCH CONFIGURATION dump_test.alt_ts_conf1 IS 'comment on t
                regexp =>
 qr/^COMMENT ON TEXT SEARCH DICTIONARY dump_test.alt_ts_dict1 IS 'comment on text search dictionary';/m,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'COMMENT ON TEXT SEARCH PARSER dump_test.alt_ts_prs1' => {
-               all_runs     => 1,
-               catch_all    => 'COMMENT commands',
                create_order => 84,
                create_sql   => 'COMMENT ON TEXT SEARCH PARSER dump_test.alt_ts_prs1
                                           IS \'comment on text search parser\';',
                regexp =>
 qr/^COMMENT ON TEXT SEARCH PARSER dump_test.alt_ts_prs1 IS 'comment on text search parser';/m,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'COMMENT ON TEXT SEARCH TEMPLATE dump_test.alt_ts_temp1' => {
-               all_runs     => 1,
-               catch_all    => 'COMMENT commands',
                create_order => 84,
                create_sql => 'COMMENT ON TEXT SEARCH TEMPLATE dump_test.alt_ts_temp1
                                           IS \'comment on text search template\';',
                regexp =>
 qr/^COMMENT ON TEXT SEARCH TEMPLATE dump_test.alt_ts_temp1 IS 'comment on text search template';/m,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'COMMENT ON TYPE dump_test.planets - ENUM' => {
-               all_runs     => 1,
-               catch_all    => 'COMMENT commands',
                create_order => 68,
                create_sql   => 'COMMENT ON TYPE dump_test.planets
                                           IS \'comment on enum type\';',
                regexp => qr/^COMMENT ON TYPE dump_test.planets IS 'comment on enum type';/m,
                like   => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'COMMENT ON TYPE dump_test.textrange - RANGE' => {
-               all_runs     => 1,
-               catch_all    => 'COMMENT commands',
                create_order => 69,
                create_sql   => 'COMMENT ON TYPE dump_test.textrange
                                           IS \'comment on range type\';',
                regexp => qr/^COMMENT ON TYPE dump_test.textrange IS 'comment on range type';/m,
                like   => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'COMMENT ON TYPE dump_test.int42 - Regular' => {
-               all_runs     => 1,
-               catch_all    => 'COMMENT commands',
                create_order => 70,
                create_sql   => 'COMMENT ON TYPE dump_test.int42
                                           IS \'comment on regular type\';',
                regexp => qr/^COMMENT ON TYPE dump_test.int42 IS 'comment on regular type';/m,
                like   => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'COMMENT ON TYPE dump_test.undefined - Undefined' => {
-               all_runs     => 1,
-               catch_all    => 'COMMENT commands',
                create_order => 71,
                create_sql   => 'COMMENT ON TYPE dump_test.undefined
                                           IS \'comment on undefined type\';',
                regexp =>
                  qr/^COMMENT ON TYPE dump_test.undefined IS 'comment on undefined type';/m,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
-
-       # catch-all for COMMENTs
-       'COMMENT commands' => {
-               all_runs => 0,                   # catch-all
-               regexp   => qr/^COMMENT ON /m,
-               like     => {},                  # use more-specific options above
-               unlike   => {
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       section_data             => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'COPY test_table' => {
-               all_runs     => 1,
-               catch_all    => 'COPY ... commands',
                create_order => 4,
                create_sql   => 'INSERT INTO dump_test.test_table (col1) '
                  . 'SELECT generate_series FROM generate_series(1,9);',
@@ -2204,29 +1069,19 @@ qr/^COMMENT ON TEXT SEARCH TEMPLATE dump_test.alt_ts_temp1 IS 'comment on text s
                        \n(?:\d\t\\N\t\\N\t\\N\n){9}\\\.\n
                        /xm,
                like => {
-                       clean                  => 1,
-                       clean_if_exists        => 1,
-                       createdb               => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        data_only              => 1,
-                       defaults               => 1,
-                       no_blobs               => 1,
-                       no_privs               => 1,
-                       no_owner               => 1,
-                       only_dump_test_schema  => 1,
                        only_dump_test_table   => 1,
-                       pg_dumpall_dbprivs     => 1,
-                       section_data           => 1,
-                       test_schema_plus_blobs => 1,
-                       with_oids              => 1, },
+                       section_data           => 1, },
                unlike => {
+                       binary_upgrade => 1,
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       role                     => 1, }, },
+                       exclude_test_table => 1,
+                       exclude_test_table_data => 1,
+                       schema_only => 1, }, },
 
        'COPY fk_reference_test_table' => {
-               all_runs     => 1,
-               catch_all    => 'COPY ... commands',
                create_order => 22,
                create_sql => 'INSERT INTO dump_test.fk_reference_test_table (col1) '
                  . 'SELECT generate_series FROM generate_series(1,5);',
@@ -2235,44 +1090,30 @@ qr/^COMMENT ON TEXT SEARCH TEMPLATE dump_test.alt_ts_temp1 IS 'comment on text s
                        \n(?:\d\n){5}\\\.\n
                        /xm,
                like => {
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        data_only               => 1,
-                       defaults                => 1,
                        exclude_test_table      => 1,
                        exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       section_data            => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_data            => 1, },
                unlike => {
+                       binary_upgrade => 1,
                        exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1, }, },
+                       schema_only => 1, }, },
 
-       # In a data-only dump, we do try to actually order according to FKs,
+       # In a data-only dump, we try to actually order according to FKs,
        # so this check is just making sure that the referring table comes after
        # the referred-to table.
        'COPY fk_reference_test_table second' => {
-               all_runs  => 0,                     # really only for data-only
-               catch_all => 'COPY ... commands',
                regexp    => qr/^
                        \QCOPY dump_test.test_table (col1, col2, col3, col4) FROM stdin;\E
                        \n(?:\d\t\\N\t\\N\t\\N\n){9}\\\.\n.*
                        \QCOPY dump_test.fk_reference_test_table (col1) FROM stdin;\E
                        \n(?:\d\n){5}\\\.\n
                        /xms,
-               like   => { data_only => 1, },
-               unlike => {}, },
+               like   => { data_only => 1, }, },
 
        'COPY test_second_table' => {
-               all_runs     => 1,
-               catch_all    => 'COPY ... commands',
                create_order => 7,
                create_sql => 'INSERT INTO dump_test.test_second_table (col1, col2) '
                  . 'SELECT generate_series, generate_series::text '
@@ -2282,29 +1123,16 @@ qr/^COMMENT ON TEXT SEARCH TEMPLATE dump_test.alt_ts_temp1 IS 'comment on text s
                        \n(?:\d\t\d\n){9}\\\.\n
                        /xm,
                like => {
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        data_only               => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       section_data            => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_data            => 1, },
                unlike => {
+                       binary_upgrade => 1,
                        exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1, }, },
+                       schema_only => 1, }, },
 
        'COPY test_third_table' => {
-               all_runs     => 1,
-               catch_all    => 'COPY ... commands',
                create_order => 12,
                create_sql =>
                  'INSERT INTO dump_test_second_schema.test_third_table (col1) '
@@ -2314,56 +1142,24 @@ qr/^COMMENT ON TEXT SEARCH TEMPLATE dump_test.alt_ts_temp1 IS 'comment on text s
                        \n(?:\d\n){9}\\\.\n
                        /xm,
                like => {
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
+                       %full_runs,
                        data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
                        role                     => 1,
                        section_data             => 1, },
                unlike => {
+                       binary_upgrade => 1,
                        exclude_test_table_data => 1,
-                       only_dump_test_schema   => 1,
-                       only_dump_test_table    => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, }, },
+                       schema_only => 1,
+                       with_oids => 1, }, },
 
        'COPY test_third_table WITH OIDS' => {
-               all_runs  => 1,
-               catch_all => 'COPY ... commands',
                regexp    => qr/^
                        \QCOPY dump_test_second_schema.test_third_table (col1) WITH OIDS FROM stdin;\E
                        \n(?:\d+\t\d\n){9}\\\.\n
                        /xm,
-               like   => { with_oids => 1, },
-               unlike => {
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       test_schema_plus_blobs   => 1, }, },
+               like   => { with_oids => 1, }, },
 
        'COPY test_fourth_table' => {
-               all_runs     => 1,
-               catch_all    => 'COPY ... commands',
                create_order => 7,
                create_sql =>
                  'INSERT INTO dump_test.test_fourth_table DEFAULT VALUES;',
@@ -2372,29 +1168,16 @@ qr/^COMMENT ON TEXT SEARCH TEMPLATE dump_test.alt_ts_temp1 IS 'comment on text s
                        \n\n\\\.\n
                        /xm,
                like => {
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        data_only               => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       section_data            => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_data            => 1, },
                unlike => {
+                       binary_upgrade => 1,
                        exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1, }, },
+                       schema_only => 1, }, },
 
        'COPY test_fifth_table' => {
-               all_runs     => 1,
-               catch_all    => 'COPY ... commands',
                create_order => 54,
                create_sql =>
 'INSERT INTO dump_test.test_fifth_table VALUES (NULL, true, false, \'11001\'::bit(5), \'NaN\');',
@@ -2403,29 +1186,16 @@ qr/^COMMENT ON TEXT SEARCH TEMPLATE dump_test.alt_ts_temp1 IS 'comment on text s
                        \n\\N\tt\tf\t11001\tNaN\n\\\.\n
                        /xm,
                like => {
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        data_only               => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       section_data            => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_data            => 1, },
                unlike => {
+                       binary_upgrade => 1,
                        exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1, }, },
+                       schema_only => 1, }, },
 
        'COPY test_table_identity' => {
-               all_runs     => 1,
-               catch_all    => 'COPY ... commands',
                create_order => 54,
                create_sql =>
 'INSERT INTO dump_test.test_table_identity (col2) VALUES (\'test\');',
@@ -2434,355 +1204,108 @@ qr/^COMMENT ON TEXT SEARCH TEMPLATE dump_test.alt_ts_temp1 IS 'comment on text s
                        \n1\ttest\n\\\.\n
                        /xm,
                like => {
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        data_only               => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       section_data            => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_data            => 1, },
                unlike => {
+                       binary_upgrade => 1,
                        exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1, }, },
-
-       'COPY ... commands' => {    # catch-all for COPY
-               all_runs => 0,             # catch-all
-               regexp   => qr/^COPY /m,
-               like     => {},            # use more-specific options above
-               unlike   => {
-                       binary_upgrade           => 1,
-                       column_inserts           => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       section_post_data        => 1, }, },
+                       schema_only => 1, }, },
 
        'INSERT INTO test_table' => {
-               all_runs  => 1,
-               catch_all => 'INSERT INTO ...',
                regexp    => qr/^
                        (?:INSERT\ INTO\ dump_test.test_table\ \(col1,\ col2,\ col3,\ col4\)\ VALUES\ \(\d,\ NULL,\ NULL,\ NULL\);\n){9}
                        /xm,
-               like   => { column_inserts => 1, },
-               unlike => {}, },
+               like   => { column_inserts => 1, }, },
 
        'INSERT INTO test_second_table' => {
-               all_runs  => 1,
-               catch_all => 'INSERT INTO ...',
                regexp    => qr/^
                        (?:INSERT\ INTO\ dump_test.test_second_table\ \(col1,\ col2\)
                           \ VALUES\ \(\d,\ '\d'\);\n){9}/xm,
-               like   => { column_inserts => 1, },
-               unlike => {}, },
+               like   => { column_inserts => 1, }, },
 
        'INSERT INTO test_third_table' => {
-               all_runs  => 1,
-               catch_all => 'INSERT INTO ...',
                regexp    => qr/^
                        (?:INSERT\ INTO\ dump_test_second_schema.test_third_table\ \(col1\)
                           \ VALUES\ \(\d\);\n){9}/xm,
-               like   => { column_inserts => 1, },
-               unlike => {}, },
+               like   => { column_inserts => 1, }, },
 
        'INSERT INTO test_fourth_table' => {
-               all_runs  => 1,
-               catch_all => 'INSERT INTO ...',
                regexp    => qr/^\QINSERT INTO dump_test.test_fourth_table DEFAULT VALUES;\E/m,
-               like      => { column_inserts => 1, },
-               unlike    => {}, },
+               like      => { column_inserts => 1, }, },
 
        'INSERT INTO test_fifth_table' => {
-               all_runs  => 1,
-               catch_all => 'INSERT INTO ...',
                regexp =>
 qr/^\QINSERT INTO dump_test.test_fifth_table (col1, col2, col3, col4, col5) VALUES (NULL, true, false, B'11001', 'NaN');\E/m,
-               like   => { column_inserts => 1, },
-               unlike => {}, },
+               like   => { column_inserts => 1, }, },
 
        'INSERT INTO test_table_identity' => {
-               all_runs  => 1,
-               catch_all => 'INSERT INTO ...',
                regexp =>
 qr/^\QINSERT INTO dump_test.test_table_identity (col1, col2) OVERRIDING SYSTEM VALUE VALUES (1, 'test');\E/m,
-               like   => { column_inserts => 1, },
-               unlike => {}, },
-
-       # INSERT INTO catch-all
-       'INSERT INTO ...' => {
-               all_runs => 0,                                  # catch-all
-               regexp   => qr/^INSERT INTO .* VALUES .*;/xm,
-               like   => {},    # use more-specific options above
-               unlike => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       section_data             => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, }, },
+               like   => { column_inserts => 1, }, },
 
        'CREATE ROLE regress_dump_test_role' => {
-               all_runs     => 1,
                create_order => 1,
                create_sql   => 'CREATE ROLE regress_dump_test_role;',
                regexp       => qr/^CREATE ROLE regress_dump_test_role;/m,
                like         => {
                        pg_dumpall_dbprivs       => 1,
                        pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1, },
-               unlike => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       column_inserts           => 1,
-                       createdb                 => 1,
-                       data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, }, },
+                       pg_dumpall_globals_clean => 1, }, },
 
        'CREATE ACCESS METHOD gist2' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 52,
                create_sql =>
                  'CREATE ACCESS METHOD gist2 TYPE INDEX HANDLER gisthandler;',
                regexp =>
                  qr/CREATE ACCESS METHOD gist2 TYPE INDEX HANDLER gisthandler;/m,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       %full_runs,
+                       section_pre_data         => 1, }, },
 
        'CREATE COLLATION test0 FROM "C"' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 76,
                create_sql   => 'CREATE COLLATION test0 FROM "C";',
                regexp       => qr/^
                  \QCREATE COLLATION public.test0 (provider = libc, locale = 'C');\E/xm,
                collation => 1,
                like      => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       %full_runs,
+                       section_pre_data         => 1, }, },
 
        'CREATE CAST FOR timestamptz' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 51,
                create_sql =>
 'CREATE CAST (timestamptz AS interval) WITH FUNCTION age(timestamptz) AS ASSIGNMENT;',
                regexp =>
 qr/CREATE CAST \(timestamp with time zone AS interval\) WITH FUNCTION pg_catalog\.age\(timestamp with time zone\) AS ASSIGNMENT;/m,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       %full_runs,
+                       section_pre_data         => 1, }, },
 
        'CREATE DATABASE postgres' => {
-               all_runs => 1,
                regexp   => qr/^
                        \QCREATE DATABASE postgres WITH TEMPLATE = template0 \E
                        .*;/xm,
-               like   => { createdb => 1, },
-               unlike => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, }, },
+               like   => { createdb => 1, }, },
 
        'CREATE DATABASE dump_test' => {
-               all_runs     => 1,
                create_order => 47,
                create_sql   => 'CREATE DATABASE dump_test;',
                regexp       => qr/^
                        \QCREATE DATABASE dump_test WITH TEMPLATE = template0 \E
                        .*;/xm,
-               like   => { pg_dumpall_dbprivs => 1, },
-               unlike => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       column_inserts           => 1,
-                       createdb                 => 1,
-                       data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, }, },
+               like   => { pg_dumpall_dbprivs => 1, }, },
 
        'CREATE EXTENSION ... plpgsql' => {
-               all_runs => 1,
                regexp   => qr/^
                        \QCREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;\E
                        /xm,
                # this shouldn't ever get emitted anymore
-               like => {},
-               unlike => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       column_inserts           => 1,
-                       createdb                 => 1,
-                       data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       no_privs                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, }, },
+               like => {}, },
 
        'CREATE AGGREGATE dump_test.newavg' => {
-               all_runs     => 1,
                create_order => 25,
                create_sql   => 'CREATE AGGREGATE dump_test.newavg (
                                                  sfunc = int4_avg_accum,
@@ -2801,70 +1324,27 @@ qr/CREATE CAST \(timestamp with time zone AS interval\) WITH FUNCTION pg_catalog
                        \n\s+\QFINALFUNC_MODIFY = SHARABLE\E
                        \n\);/xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE CONVERSION dump_test.test_conversion' => {
-               all_runs     => 1,
                create_order => 78,
                create_sql =>
 'CREATE DEFAULT CONVERSION dump_test.test_conversion FOR \'LATIN1\' TO \'UTF8\' FROM iso8859_1_to_utf8;',
                regexp =>
 qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8' FROM iso8859_1_to_utf8;\E/xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE DOMAIN dump_test.us_postal_code' => {
-               all_runs     => 1,
                create_order => 29,
                create_sql   => 'CREATE DOMAIN dump_test.us_postal_code AS TEXT
                               COLLATE "C"
@@ -2879,35 +1359,13 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \Q'::text)));\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE FUNCTION dump_test.pltestlang_call_handler' => {
-               all_runs     => 1,
                create_order => 17,
                create_sql   => 'CREATE FUNCTION dump_test.pltestlang_call_handler()
                                           RETURNS LANGUAGE_HANDLER AS \'$libdir/plpgsql\',
@@ -2918,37 +1376,15 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \n\s+\QLANGUAGE c\E
                        \n\s+AS\ \'\$
                        \Qlibdir\/plpgsql', 'plpgsql_call_handler';\E
-                       /xm,
-               like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
-               unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       /xm,
+               like => {
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
+               unlike => {
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE FUNCTION dump_test.trigger_func' => {
-               all_runs     => 1,
                create_order => 30,
                create_sql   => 'CREATE FUNCTION dump_test.trigger_func()
                                           RETURNS trigger LANGUAGE plpgsql
@@ -2960,35 +1396,13 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \Q BEGIN RETURN NULL; END;\E
                        \$\$;/xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE FUNCTION dump_test.event_trigger_func' => {
-               all_runs     => 1,
                create_order => 32,
                create_sql   => 'CREATE FUNCTION dump_test.event_trigger_func()
                                           RETURNS event_trigger LANGUAGE plpgsql
@@ -3000,35 +1414,13 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \Q BEGIN RETURN; END;\E
                        \$\$;/xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE OPERATOR FAMILY dump_test.op_family' => {
-               all_runs     => 1,
                create_order => 73,
                create_sql =>
                  'CREATE OPERATOR FAMILY dump_test.op_family USING btree;',
@@ -3036,35 +1428,13 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \QCREATE OPERATOR FAMILY dump_test.op_family USING btree;\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE OPERATOR CLASS dump_test.op_class' => {
-               all_runs     => 1,
                create_order => 74,
                create_sql   => 'CREATE OPERATOR CLASS dump_test.op_class
                                 FOR TYPE bigint USING btree FAMILY dump_test.op_family
@@ -3088,35 +1458,13 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \QFUNCTION 2 (bigint, bigint) btint8sortsupport(internal);\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE EVENT TRIGGER test_event_trigger' => {
-               all_runs     => 1,
                create_order => 33,
                create_sql   => 'CREATE EVENT TRIGGER test_event_trigger
                                           ON ddl_command_start
@@ -3127,35 +1475,10 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \n\s+\QEXECUTE PROCEDURE dump_test.event_trigger_func();\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_post_data        => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       %full_runs,
+                       section_post_data        => 1, }, },
 
        'CREATE TRIGGER test_trigger' => {
-               all_runs     => 1,
                create_order => 31,
                create_sql   => 'CREATE TRIGGER test_trigger
                                           BEFORE INSERT ON dump_test.test_table
@@ -3167,35 +1490,15 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \QEXECUTE PROCEDURE dump_test.trigger_func();\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_post_data       => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_post_data       => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_pre_data         => 1, }, },
+                       exclude_test_table => 1,
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE TYPE dump_test.planets AS ENUM' => {
-               all_runs     => 1,
                create_order => 37,
                create_sql   => 'CREATE TYPE dump_test.planets
                                           AS ENUM ( \'venus\', \'earth\', \'mars\' );',
@@ -3206,35 +1509,14 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \n\s+'mars'
                        \n\);/xm,
                like => {
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       binary_upgrade           => 1,
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       binary_upgrade => 1,
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE TYPE dump_test.planets AS ENUM pg_upgrade' => {
-               all_runs => 1,
                regexp   => qr/^
                        \QCREATE TYPE dump_test.planets AS ENUM (\E
                        \n\);.*^
@@ -3244,36 +1526,9 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \n.*^
                        \QALTER TYPE dump_test.planets ADD VALUE 'mars';\E
                        \n/xms,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       column_inserts           => 1,
-                       createdb                 => 1,
-                       data_only                => 1,
-                       defaults                 => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       only_dump_test_schema    => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_pre_data         => 1,
-                       section_post_data        => 1,
-                       with_oids                => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'CREATE TYPE dump_test.textrange AS RANGE' => {
-               all_runs     => 1,
                create_order => 38,
                create_sql   => 'CREATE TYPE dump_test.textrange
                                           AS RANGE (subtype=text, collation="C");',
@@ -3283,68 +1538,24 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \n\s+\Qcollation = pg_catalog."C"\E
                        \n\);/xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE TYPE dump_test.int42' => {
-               all_runs     => 1,
                create_order => 39,
                create_sql   => 'CREATE TYPE dump_test.int42;',
                regexp       => qr/^CREATE TYPE dump_test.int42;/m,
                like         => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE TEXT SEARCH CONFIGURATION dump_test.alt_ts_conf1' => {
-               all_runs     => 1,
                create_order => 80,
                create_sql =>
 'CREATE TEXT SEARCH CONFIGURATION dump_test.alt_ts_conf1 (copy=english);',
@@ -3352,35 +1563,13 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \QCREATE TEXT SEARCH CONFIGURATION dump_test.alt_ts_conf1 (\E\n
                        \s+\QPARSER = pg_catalog."default" );\E/xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'ALTER TEXT SEARCH CONFIGURATION dump_test.alt_ts_conf1 ...' => {
-               all_runs => 1,
                regexp   => qr/^
                        \QALTER TEXT SEARCH CONFIGURATION dump_test.alt_ts_conf1\E\n
                        \s+\QADD MAPPING FOR asciiword WITH english_stem;\E\n
@@ -3441,35 +1630,13 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \n
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE TEXT SEARCH TEMPLATE dump_test.alt_ts_temp1' => {
-               all_runs     => 1,
                create_order => 81,
                create_sql =>
 'CREATE TEXT SEARCH TEMPLATE dump_test.alt_ts_temp1 (lexize=dsimple_lexize);',
@@ -3477,35 +1644,13 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \QCREATE TEXT SEARCH TEMPLATE dump_test.alt_ts_temp1 (\E\n
                        \s+\QLEXIZE = dsimple_lexize );\E/xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE TEXT SEARCH PARSER dump_test.alt_ts_prs1' => {
-               all_runs     => 1,
                create_order => 82,
                create_sql   => 'CREATE TEXT SEARCH PARSER dump_test.alt_ts_prs1
                (start = prsd_start, gettoken = prsd_nexttoken, end = prsd_end, lextypes = prsd_lextype);',
@@ -3517,35 +1662,13 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \s+\QLEXTYPES = prsd_lextype );\E\n
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE TEXT SEARCH DICTIONARY dump_test.alt_ts_dict1' => {
-               all_runs     => 1,
                create_order => 83,
                create_sql =>
 'CREATE TEXT SEARCH DICTIONARY dump_test.alt_ts_dict1 (template=simple);',
@@ -3554,35 +1677,13 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \s+\QTEMPLATE = pg_catalog.simple );\E\n
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE FUNCTION dump_test.int42_in' => {
-               all_runs     => 1,
                create_order => 40,
                create_sql   => 'CREATE FUNCTION dump_test.int42_in(cstring)
                                           RETURNS dump_test.int42 AS \'int4in\'
@@ -3593,35 +1694,13 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \n\s+AS\ \$\$int4in\$\$;
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE FUNCTION dump_test.int42_out' => {
-               all_runs     => 1,
                create_order => 41,
                create_sql   => 'CREATE FUNCTION dump_test.int42_out(dump_test.int42)
                                           RETURNS cstring AS \'int4out\'
@@ -3632,73 +1711,29 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \n\s+AS\ \$\$int4out\$\$;
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE PROCEDURE dump_test.ptest1' => {
-               all_runs     => 1,
                create_order => 41,
                create_sql   => 'CREATE PROCEDURE dump_test.ptest1(a int)
-                                          LANGUAGE SQL AS $$ INSERT INTO dump_test.test_table (col1) VALUES (a) $$;',
-               regexp => qr/^
-                       \QCREATE PROCEDURE dump_test.ptest1(a integer)\E
-                       \n\s+\QLANGUAGE sql\E
-                       \n\s+AS\ \$\$\Q INSERT INTO dump_test.test_table (col1) VALUES (a) \E\$\$;
-                       /xm,
-               like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
-               unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                                          LANGUAGE SQL AS $$ INSERT INTO dump_test.test_table (col1) VALUES (a) $$;',
+               regexp => qr/^
+                       \QCREATE PROCEDURE dump_test.ptest1(a integer)\E
+                       \n\s+\QLANGUAGE sql\E
+                       \n\s+AS\ \$\$\Q INSERT INTO dump_test.test_table (col1) VALUES (a) \E\$\$;
+                       /xm,
+               like => {
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
+               unlike => {
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE TYPE dump_test.int42 populated' => {
-               all_runs     => 1,
                create_order => 42,
                create_sql   => 'CREATE TYPE dump_test.int42 (
                                                   internallength = 4,
@@ -3718,35 +1753,13 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \n\s+PASSEDBYVALUE\n\);
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE TYPE dump_test.composite' => {
-               all_runs     => 1,
                create_order => 43,
                create_sql   => 'CREATE TYPE dump_test.composite AS (
                                                   f1 int,
@@ -3759,134 +1772,40 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \n\);
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE TYPE dump_test.undefined' => {
-               all_runs     => 1,
                create_order => 39,
                create_sql   => 'CREATE TYPE dump_test.undefined;',
                regexp       => qr/^CREATE TYPE dump_test.undefined;/m,
                like         => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE FOREIGN DATA WRAPPER dummy' => {
-               all_runs     => 1,
                create_order => 35,
                create_sql   => 'CREATE FOREIGN DATA WRAPPER dummy;',
                regexp       => qr/CREATE FOREIGN DATA WRAPPER dummy;/m,
                like         => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       %full_runs,
+                       section_pre_data         => 1, }, },
 
        'CREATE SERVER s1 FOREIGN DATA WRAPPER dummy' => {
-               all_runs     => 1,
                create_order => 36,
                create_sql   => 'CREATE SERVER s1 FOREIGN DATA WRAPPER dummy;',
                regexp       => qr/CREATE SERVER s1 FOREIGN DATA WRAPPER dummy;/m,
                like         => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       %full_runs,
+                       section_pre_data         => 1, }, },
 
        'CREATE FOREIGN TABLE dump_test.foreign_table SERVER s1' => {
-               all_runs     => 1,
                create_order => 88,
                create_sql =>
 'CREATE FOREIGN TABLE dump_test.foreign_table (c1 int options (column_name \'col1\'))
@@ -3901,106 +1820,33 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8'
                        \Q);\E\n
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE USER MAPPING FOR regress_dump_test_role SERVER s1' => {
-               all_runs     => 1,
                create_order => 86,
                create_sql =>
                  'CREATE USER MAPPING FOR regress_dump_test_role SERVER s1;',
                regexp =>
                  qr/CREATE USER MAPPING FOR regress_dump_test_role SERVER s1;/m,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       %full_runs,
+                       section_pre_data         => 1, }, },
 
        'CREATE TRANSFORM FOR int' => {
-               all_runs     => 1,
                create_order => 34,
                create_sql =>
 'CREATE TRANSFORM FOR int LANGUAGE SQL (FROM SQL WITH FUNCTION varchar_transform(internal), TO SQL WITH FUNCTION int4recv(internal));',
                regexp =>
 qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog\.varchar_transform\(internal\), TO SQL WITH FUNCTION pg_catalog\.int4recv\(internal\)\);/m,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       %full_runs,
+                       section_pre_data         => 1, }, },
 
        'CREATE LANGUAGE pltestlang' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 18,
                create_sql   => 'CREATE LANGUAGE pltestlang
                                           HANDLER dump_test.pltestlang_call_handler;',
@@ -4009,33 +1855,12 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QHANDLER dump_test.pltestlang_call_handler;\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1,
-                       only_dump_test_schema    => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE MATERIALIZED VIEW matview' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 20,
                create_sql   => 'CREATE MATERIALIZED VIEW dump_test.matview (col1) AS
                                           SELECT col1 FROM dump_test.test_table;',
@@ -4046,33 +1871,13 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \n\s+\QWITH NO DATA;\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE MATERIALIZED VIEW matview_second' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 21,
                create_sql   => 'CREATE MATERIALIZED VIEW
                                                   dump_test.matview_second (col1) AS
@@ -4084,33 +1889,13 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \n\s+\QWITH NO DATA;\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE MATERIALIZED VIEW matview_third' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 58,
                create_sql   => 'CREATE MATERIALIZED VIEW
                                                   dump_test.matview_third (col1) AS
@@ -4122,33 +1907,13 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \n\s+\QWITH NO DATA;\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE MATERIALIZED VIEW matview_fourth' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 59,
                create_sql   => 'CREATE MATERIALIZED VIEW
                                                   dump_test.matview_fourth (col1) AS
@@ -4160,33 +1925,13 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \n\s+\QWITH NO DATA;\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE POLICY p1 ON test_table' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 22,
                create_sql   => 'CREATE POLICY p1 ON dump_test.test_table
                                                   USING (true)
@@ -4196,33 +1941,15 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QUSING (true) WITH CHECK (true);\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_post_data       => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_post_data       => 1, },
                unlike => {
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_pre_data         => 1, }, },
+                       exclude_test_table => 1, }, },
 
        'CREATE POLICY p2 ON test_table FOR SELECT' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 24,
                create_sql   => 'CREATE POLICY p2 ON dump_test.test_table
                                                   FOR SELECT TO regress_dump_test_role USING (true);',
@@ -4231,33 +1958,15 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QUSING (true);\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_post_data       => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_post_data       => 1, },
                unlike => {
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_pre_data         => 1, }, },
+                       exclude_test_table => 1, }, },
 
        'CREATE POLICY p3 ON test_table FOR INSERT' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 25,
                create_sql   => 'CREATE POLICY p3 ON dump_test.test_table
                                                   FOR INSERT TO regress_dump_test_role WITH CHECK (true);',
@@ -4266,33 +1975,15 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QTO regress_dump_test_role WITH CHECK (true);\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_post_data       => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_post_data       => 1, },
                unlike => {
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_pre_data         => 1, }, },
+                       exclude_test_table => 1, }, },
 
        'CREATE POLICY p4 ON test_table FOR UPDATE' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 26,
                create_sql   => 'CREATE POLICY p4 ON dump_test.test_table FOR UPDATE
                                                   TO regress_dump_test_role USING (true) WITH CHECK (true);',
@@ -4301,33 +1992,15 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QUSING (true) WITH CHECK (true);\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_post_data       => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_post_data       => 1, },
                unlike => {
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_pre_data         => 1, }, },
+                       exclude_test_table => 1, }, },
 
        'CREATE POLICY p5 ON test_table FOR DELETE' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 27,
                create_sql   => 'CREATE POLICY p5 ON dump_test.test_table
                                                   FOR DELETE TO regress_dump_test_role USING (true);',
@@ -4336,33 +2009,15 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QTO regress_dump_test_role USING (true);\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_post_data       => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_post_data       => 1, },
                unlike => {
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_pre_data         => 1, }, },
+                       exclude_test_table => 1, }, },
 
        'CREATE POLICY p6 ON test_table AS RESTRICTIVE' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 27,
                create_sql => 'CREATE POLICY p6 ON dump_test.test_table AS RESTRICTIVE
                                                   USING (false);',
@@ -4371,66 +2026,25 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QUSING (false);\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_post_data       => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_post_data       => 1, },
                unlike => {
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_pre_data         => 1, }, },
+                       exclude_test_table => 1, }, },
 
        'CREATE PUBLICATION pub1' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 50,
                create_sql   => 'CREATE PUBLICATION pub1;',
                regexp       => qr/^
                        \QCREATE PUBLICATION pub1 WITH (publish = 'insert, update, delete');\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_test_table_data  => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_post_data        => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       %full_runs,
+                       section_post_data        => 1, }, },
 
        'CREATE PUBLICATION pub2' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 50,
                create_sql   => 'CREATE PUBLICATION pub2
                                                 FOR ALL TABLES
@@ -4439,33 +2053,10 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QCREATE PUBLICATION pub2 FOR ALL TABLES WITH (publish = '');\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_test_table_data  => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_post_data        => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       %full_runs,
+                       section_post_data        => 1, }, },
 
        'CREATE SUBSCRIPTION sub1' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 50,
                create_sql   => 'CREATE SUBSCRIPTION sub1
                                                 CONNECTION \'dbname=doesnotexist\' PUBLICATION pub1
@@ -4474,33 +2065,10 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QCREATE SUBSCRIPTION sub1 CONNECTION 'dbname=doesnotexist' PUBLICATION pub1 WITH (connect = false, slot_name = 'sub1');\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_test_table_data  => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_post_data        => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       section_pre_data         => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       %full_runs,
+                       section_post_data        => 1, }, },
 
        'ALTER PUBLICATION pub1 ADD TABLE test_table' => {
-               all_runs     => 1,
                create_order => 51,
                create_sql =>
                  'ALTER PUBLICATION pub1 ADD TABLE dump_test.test_table;',
@@ -4508,32 +2076,12 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QALTER PUBLICATION pub1 ADD TABLE ONLY dump_test.test_table;\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_post_data       => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       section_post_data       => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_pre_data         => 1,
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       exclude_test_table => 1, }, },
+
        'ALTER PUBLICATION pub1 ADD TABLE test_second_table' => {
                create_order => 52,
                create_sql =>
@@ -4542,122 +2090,37 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QALTER PUBLICATION pub1 ADD TABLE ONLY dump_test.test_second_table;\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
+                       %full_runs,
                        section_post_data       => 1, },
                unlike => {
-                       section_pre_data         => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE SCHEMA public' => {
-               all_runs  => 1,
-               catch_all => 'CREATE ... commands',
                regexp    => qr/^CREATE SCHEMA public;/m,
                # this shouldn't ever get emitted anymore
-               like      => {},
-               unlike => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       only_dump_test_schema    => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+               like      => {}, },
 
        'CREATE SCHEMA dump_test' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 2,
                create_sql   => 'CREATE SCHEMA dump_test;',
                regexp       => qr/^CREATE SCHEMA dump_test;/m,
                like         => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE SCHEMA dump_test_second_schema' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 9,
                create_sql   => 'CREATE SCHEMA dump_test_second_schema;',
                regexp       => qr/^CREATE SCHEMA dump_test_second_schema;/m,
                like         => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
+                       %full_runs,
                        role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       section_pre_data         => 1, }, },
 
        'CREATE TABLE test_table' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 3,
                create_sql   => 'CREATE TABLE dump_test.test_table (
                                                   col1 serial primary key,
@@ -4676,33 +2139,15 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \Q)\E\n
                        \QWITH (autovacuum_enabled='false', fillfactor='80');\E\n/xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_pre_data        => 1, },
                unlike => {
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_test_table => 1, }, },
 
        'CREATE TABLE fk_reference_test_table' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 21,
                create_sql   => 'CREATE TABLE dump_test.fk_reference_test_table (
                                                   col1 int primary key references dump_test.test_table
@@ -4713,33 +2158,13 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \n\);
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE TABLE test_second_table' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 6,
                create_sql   => 'CREATE TABLE dump_test.test_second_table (
                                                   col1 int,
@@ -4752,33 +2177,13 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \n\);
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
-       'CREATE UNLOGGED TABLE test_third_table' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
+       'CREATE UNLOGGED TABLE test_third_table WITH OIDS' => {
                create_order => 11,
                create_sql =>
                  'CREATE UNLOGGED TABLE dump_test_second_schema.test_third_table (
@@ -4795,33 +2200,14 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \n\);\n
                        /xm,
                like => {
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
+                       %full_runs,
                        role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       section_pre_data         => 1, },
                unlike => {
-                       binary_upgrade           => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       # FIXME figure out why/how binary upgrade drops OIDs.
+                       binary_upgrade => 1, }, },
 
        'CREATE TABLE measurement PARTITIONED BY' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 90,
                create_sql   => 'CREATE TABLE dump_test.measurement (
                                                city_id int not null,
@@ -4841,33 +2227,14 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QPARTITION BY RANGE (logdate);\E\n
                        /xm,
                like => {
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       binary_upgrade           => 1,
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       binary_upgrade => 1,
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE TABLE measurement_y2006m2 PARTITION OF' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 91,
                create_sql =>
                  'CREATE TABLE dump_test_second_schema.measurement_y2006m2
@@ -4877,36 +2244,16 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \Q-- Name: measurement_y2006m2;\E.*\n
                        \Q--\E\n\n
                        \QCREATE TABLE dump_test_second_schema.measurement_y2006m2 PARTITION OF dump_test.measurement\E\n
-                       \QFOR VALUES FROM ('2006-02-01') TO ('2006-03-01');\E\n
-                       /xm,
-               like => {
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
+                       \QFOR VALUES FROM ('2006-02-01') TO ('2006-03-01');\E\n
+                       /xm,
+               like => {
+                       %full_runs,
                        role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       section_pre_data         => 1, },
                unlike => {
-                       binary_upgrade           => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       binary_upgrade => 1, }, },
 
        'CREATE TABLE test_fourth_table_zero_col' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 6,
                create_sql   => 'CREATE TABLE dump_test.test_fourth_table (
                                           );',
@@ -4915,33 +2262,13 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \n\);
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE TABLE test_fifth_table' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 53,
                create_sql   => 'CREATE TABLE dump_test.test_fifth_table (
                                                        col1 integer,
@@ -4960,33 +2287,13 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \n\);
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE TABLE test_table_identity' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 3,
                create_sql   => 'CREATE TABLE dump_test.test_table_identity (
                                                   col1 int generated always as identity primary key,
@@ -5008,33 +2315,13 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \);
                        /xms,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE STATISTICS extended_stats_no_options' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 97,
                create_sql   => 'CREATE STATISTICS dump_test.test_ext_stats_no_options
                                                        ON col1, col2 FROM dump_test.test_fifth_table',
@@ -5042,33 +2329,13 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QCREATE STATISTICS dump_test.test_ext_stats_no_options ON col1, col2 FROM dump_test.test_fifth_table;\E
                    /xms,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_post_data       => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_post_data       => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_pre_data         => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE STATISTICS extended_stats_options' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 97,
                create_sql   => 'CREATE STATISTICS dump_test.test_ext_stats_opts
                                                        (ndistinct) ON col1, col2 FROM dump_test.test_fifth_table',
@@ -5076,33 +2343,13 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QCREATE STATISTICS dump_test.test_ext_stats_opts (ndistinct) ON col1, col2 FROM dump_test.test_fifth_table;\E
                    /xms,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_post_data       => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_post_data       => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_pre_data         => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE SEQUENCE test_table_col1_seq' => {
-               all_runs  => 1,
-               catch_all => 'CREATE ... commands',
                regexp    => qr/^
                        \QCREATE SEQUENCE dump_test.test_table_col1_seq\E
                        \n\s+\QAS integer\E
@@ -5113,33 +2360,14 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \n\s+\QCACHE 1;\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_pre_data        => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE SEQUENCE test_third_table_col1_seq' => {
-               all_runs  => 1,
-               catch_all => 'CREATE ... commands',
                regexp    => qr/^
                        \QCREATE SEQUENCE dump_test_second_schema.test_third_table_col1_seq\E
                        \n\s+\QAS integer\E
@@ -5150,33 +2378,11 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \n\s+\QCACHE 1;\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
+                       %full_runs,
                        role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       section_pre_data         => 1, }, },
 
        'CREATE UNIQUE INDEX test_third_table_idx ON test_third_table' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 13,
                create_sql   => 'CREATE UNIQUE INDEX test_third_table_idx
                                           ON dump_test_second_schema.test_third_table (col1);',
@@ -5185,33 +2391,11 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QON dump_test_second_schema.test_third_table USING btree (col1);\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
+                       %full_runs,
                        role                     => 1,
-                       schema_only              => 1,
-                       section_post_data        => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       section_post_data        => 1, }, },
 
        'CREATE INDEX ON ONLY measurement' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 92,
                create_sql   => 'CREATE INDEX ON dump_test.measurement (city_id, logdate);',
                regexp => qr/^
@@ -5252,91 +2436,29 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QADD CONSTRAINT measurement_pkey PRIMARY KEY (city_id, logdate);\E
                /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       only_dump_test_schema    => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_post_data        => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_pre_data         => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'CREATE INDEX ... ON measurement_y2006_m2' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                regexp       => qr/^
                \QCREATE INDEX measurement_y2006m2_city_id_logdate_idx ON dump_test_second_schema.measurement_y2006m2 \E
                /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
+                       %full_runs,
                        role                     => 1,
-                       schema_only              => 1,
-                       section_post_data        => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       section_post_data        => 1, }, },
 
        'ALTER INDEX ... ATTACH PARTITION' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                regexp       => qr/^
                \QALTER INDEX dump_test.measurement_city_id_logdate_idx ATTACH PARTITION dump_test_second_schema.measurement_y2006m2_city_id_logdate_idx\E
                /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
+                       %full_runs,
                        role                     => 1,
-                       schema_only              => 1,
-                       section_post_data        => 1,
-                       with_oids                => 1, },
-               unlike => {
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       section_post_data        => 1, }, },
 
        'ALTER INDEX ... ATTACH PARTITION (primary key)' => {
                all_runs     => 1,
@@ -5370,8 +2492,6 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        test_schema_plus_blobs   => 1, }, },
 
        'CREATE VIEW test_view' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 61,
                create_sql   => 'CREATE VIEW dump_test.test_view
                                   WITH (check_option = \'local\', security_barrier = true) AS
@@ -5382,320 +2502,131 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \n\s+\QFROM dump_test.test_table\E
                        \n\s+\QWITH LOCAL CHECK OPTION;\E/xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
        'ALTER VIEW test_view SET DEFAULT' => {
-               all_runs     => 1,
-               catch_all    => 'CREATE ... commands',
                create_order => 62,
                create_sql =>
                  'ALTER VIEW dump_test.test_view ALTER COLUMN col1 SET DEFAULT 1;',
                regexp => qr/^
                        \QALTER TABLE ONLY dump_test.test_view ALTER COLUMN col1 SET DEFAULT 1;\E/xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_post_data        => 1, }, },
-
-       'CREATE ... commands' => {    # catch-all for CREATE
-               all_runs => 0,               # catch-all
-               regexp   => qr/^CREATE /m,
-               like     => {},              # use more-specific options above
-               unlike   => {
-                       column_inserts => 1,
-                       data_only      => 1,
-                       section_data   => 1, }, },
+                       exclude_dump_test_schema => 1, }, },
 
+       # FIXME
        'DROP SCHEMA public (for testing without public schema)' => {
-               all_runs     => 1,
                database     => 'regress_pg_dump_test',
                create_order => 100,
                create_sql   => 'DROP SCHEMA public;',
                regexp       => qr/^DROP SCHEMA public;/m,
-               like         => {},
-               unlike       => {
-                       defaults_no_public       => 1,
-                       defaults_no_public_clean => 1, } },
+               like         => {}, },
 
        'DROP SCHEMA public' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^DROP SCHEMA public;/m,
                # this shouldn't ever get emitted anymore
-               like      => {},
-               unlike    => {
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like      => {}, },
 
        'DROP SCHEMA IF EXISTS public' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^DROP SCHEMA IF EXISTS public;/m,
                # this shouldn't ever get emitted anymore
-               like      => {},
-               unlike    => {
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like      => {}, },
 
        'DROP EXTENSION plpgsql' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^DROP EXTENSION plpgsql;/m,
                # this shouldn't ever get emitted anymore
-               like      => {},
-               unlike    => {
-                       clean => 1,
-                       clean_if_exists          => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like      => {}, },
 
        'DROP FUNCTION dump_test.pltestlang_call_handler()' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp => qr/^DROP FUNCTION dump_test\.pltestlang_call_handler\(\);/m,
-               like   => { clean => 1, },
-               unlike => {
-                       clean_if_exists          => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like   => { clean => 1, }, },
 
        'DROP LANGUAGE pltestlang' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^DROP PROCEDURAL LANGUAGE pltestlang;/m,
-               like      => { clean => 1, },
-               unlike    => {
-                       clean_if_exists          => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like      => { clean => 1, }, },
 
        'DROP SCHEMA dump_test' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^DROP SCHEMA dump_test;/m,
-               like      => { clean => 1, },
-               unlike    => {
-                       clean_if_exists          => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like      => { clean => 1, }, },
 
        'DROP SCHEMA dump_test_second_schema' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^DROP SCHEMA dump_test_second_schema;/m,
-               like      => { clean => 1, },
-               unlike    => {
-                       clean_if_exists          => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like      => { clean => 1, }, },
 
        'DROP TABLE test_table' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^DROP TABLE dump_test\.test_table;/m,
-               like      => { clean => 1, },
-               unlike    => {
-                       clean_if_exists          => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like      => { clean => 1, }, },
 
        'DROP TABLE fk_reference_test_table' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^DROP TABLE dump_test\.fk_reference_test_table;/m,
-               like      => { clean => 1, },
-               unlike    => {
-                       clean_if_exists          => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like      => { clean => 1, }, },
 
        'DROP TABLE test_second_table' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^DROP TABLE dump_test\.test_second_table;/m,
-               like      => { clean => 1, },
-               unlike    => {
-                       clean_if_exists          => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like      => { clean => 1, }, },
 
        'DROP TABLE test_third_table' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp => qr/^DROP TABLE dump_test_second_schema\.test_third_table;/m,
-               like   => { clean => 1, },
-               unlike => {
-                       clean_if_exists          => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like   => { clean => 1, }, },
 
        'DROP EXTENSION IF EXISTS plpgsql' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^DROP EXTENSION IF EXISTS plpgsql;/m,
                # this shouldn't ever get emitted anymore
-               like      => {},
-               unlike    => {
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like      => {}, },
 
        'DROP FUNCTION IF EXISTS dump_test.pltestlang_call_handler()' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^
                        \QDROP FUNCTION IF EXISTS dump_test.pltestlang_call_handler();\E
                        /xm,
-               like   => { clean_if_exists => 1, },
-               unlike => {
-                       clean                    => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like   => { clean_if_exists => 1, }, },
 
        'DROP LANGUAGE IF EXISTS pltestlang' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^DROP PROCEDURAL LANGUAGE IF EXISTS pltestlang;/m,
-               like      => { clean_if_exists => 1, },
-               unlike    => {
-                       clean                    => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like      => { clean_if_exists => 1, }, },
 
        'DROP SCHEMA IF EXISTS dump_test' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^DROP SCHEMA IF EXISTS dump_test;/m,
-               like      => { clean_if_exists => 1, },
-               unlike    => {
-                       clean                    => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like      => { clean_if_exists => 1, }, },
 
        'DROP SCHEMA IF EXISTS dump_test_second_schema' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^DROP SCHEMA IF EXISTS dump_test_second_schema;/m,
-               like      => { clean_if_exists => 1, },
-               unlike    => {
-                       clean                    => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like      => { clean_if_exists => 1, }, },
 
        'DROP TABLE IF EXISTS test_table' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^DROP TABLE IF EXISTS dump_test\.test_table;/m,
-               like      => { clean_if_exists => 1, },
-               unlike    => {
-                       clean                    => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like      => { clean_if_exists => 1, }, },
 
        'DROP TABLE IF EXISTS test_second_table' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^DROP TABLE IF EXISTS dump_test\.test_second_table;/m,
-               like      => { clean_if_exists => 1, },
-               unlike    => {
-                       clean                    => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like      => { clean_if_exists => 1, }, },
 
        'DROP TABLE IF EXISTS test_third_table' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^
                        \QDROP TABLE IF EXISTS dump_test_second_schema.test_third_table;\E
                        /xm,
-               like   => { clean_if_exists => 1, },
-               unlike => {
-                       clean                    => 1,
-                       pg_dumpall_globals_clean => 1, }, },
+               like   => { clean_if_exists => 1, }, },
 
        'DROP ROLE regress_dump_test_role' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^
                        \QDROP ROLE regress_dump_test_role;\E
                        /xm,
-               like   => { pg_dumpall_globals_clean => 1, },
-               unlike => {
-                       clean           => 1,
-                       clean_if_exists => 1, }, },
+               like   => { pg_dumpall_globals_clean => 1, }, },
 
        'DROP ROLE pg_' => {
-               all_runs  => 1,
-               catch_all => 'DROP ... commands',
                regexp    => qr/^
                        \QDROP ROLE pg_\E.*;
                        /xm,
-               like   => {},
-               unlike => {
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       pg_dumpall_globals_clean => 1, }, },
-
-       'DROP ... commands' => {    # catch-all for DROP
-               all_runs => 0,             # catch-all
-               regexp   => qr/^DROP /m,
-               like     => {},            # use more-specific options above
-               unlike   => {
-                       binary_upgrade           => 1,
-                       column_inserts           => 1,
-                       createdb                 => 1,
-                       data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       pg_dumpall_globals       => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_data             => 1,
-                       section_pre_data         => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, }, },
+               # this shouldn't ever get emitted anywhere
+               like   => {}, },
 
        'GRANT USAGE ON SCHEMA dump_test_second_schema' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 10,
                create_sql   => 'GRANT USAGE ON SCHEMA dump_test_second_schema
                                                   TO regress_dump_test_role;',
@@ -5703,32 +2634,13 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QGRANT USAGE ON SCHEMA dump_test_second_schema TO regress_dump_test_role;\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
+                       %full_runs,
                        role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       section_pre_data         => 1, },
                unlike => {
-                       column_inserts         => 1,
-                       data_only              => 1,
-                       only_dump_test_schema  => 1,
-                       only_dump_test_table   => 1,
-                       pg_dumpall_globals     => 1,
-                       test_schema_plus_blobs => 1, }, },
+                       no_privs => 1, }, },
 
        'GRANT USAGE ON FOREIGN DATA WRAPPER dummy' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 85,
                create_sql   => 'GRANT USAGE ON FOREIGN DATA WRAPPER dummy
                                                   TO regress_dump_test_role;',
@@ -5736,32 +2648,12 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QGRANT ALL ON FOREIGN DATA WRAPPER dummy TO regress_dump_test_role;\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       %full_runs,
+                       section_pre_data         => 1, },
                unlike => {
-                       column_inserts         => 1,
-                       data_only              => 1,
-                       only_dump_test_schema  => 1,
-                       only_dump_test_table   => 1,
-                       pg_dumpall_globals     => 1,
-                       role                   => 1,
-                       test_schema_plus_blobs => 1, }, },
+                       no_privs => 1, }, },
 
        'GRANT USAGE ON FOREIGN SERVER s1' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 85,
                create_sql   => 'GRANT USAGE ON FOREIGN SERVER s1
                                                   TO regress_dump_test_role;',
@@ -5769,32 +2661,12 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QGRANT ALL ON FOREIGN SERVER s1 TO regress_dump_test_role;\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       %full_runs,
+                       section_pre_data         => 1, },
                unlike => {
-                       column_inserts         => 1,
-                       data_only              => 1,
-                       only_dump_test_schema  => 1,
-                       only_dump_test_table   => 1,
-                       pg_dumpall_globals     => 1,
-                       role                   => 1,
-                       test_schema_plus_blobs => 1, }, },
+                       no_privs => 1, }, },
 
        'GRANT USAGE ON DOMAIN dump_test.us_postal_code' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 72,
                create_sql =>
 'GRANT USAGE ON DOMAIN dump_test.us_postal_code TO regress_dump_test_role;',
@@ -5802,36 +2674,14 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QGRANT ALL ON TYPE dump_test.us_postal_code TO regress_dump_test_role;\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       no_privs                 => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       no_privs => 1, }, },
 
        'GRANT USAGE ON TYPE dump_test.int42' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 87,
                create_sql =>
                  'GRANT USAGE ON TYPE dump_test.int42 TO regress_dump_test_role;',
@@ -5839,36 +2689,14 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QGRANT ALL ON TYPE dump_test.int42 TO regress_dump_test_role;\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       no_privs                 => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       no_privs => 1, }, },
 
        'GRANT USAGE ON TYPE dump_test.planets - ENUM' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 66,
                create_sql =>
                  'GRANT USAGE ON TYPE dump_test.planets TO regress_dump_test_role;',
@@ -5876,137 +2704,53 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                        \QGRANT ALL ON TYPE dump_test.planets TO regress_dump_test_role;\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       no_privs                 => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       no_privs => 1, }, },
 
        'GRANT USAGE ON TYPE dump_test.textrange - RANGE' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 67,
-               create_sql =>
-'GRANT USAGE ON TYPE dump_test.textrange TO regress_dump_test_role;',
+               create_sql => 'GRANT USAGE ON TYPE dump_test.textrange TO regress_dump_test_role;',
                regexp => qr/^
                        \QGRANT ALL ON TYPE dump_test.textrange TO regress_dump_test_role;\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       no_privs                 => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       no_privs => 1, }, },
 
        'GRANT CREATE ON DATABASE dump_test' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 48,
                create_sql =>
                  'GRANT CREATE ON DATABASE dump_test TO regress_dump_test_role;',
                regexp => qr/^
                        \QGRANT CREATE ON DATABASE dump_test TO regress_dump_test_role;\E
                        /xm,
-               like   => { pg_dumpall_dbprivs => 1, },
-               unlike => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       column_inserts           => 1,
-                       createdb                 => 1,
-                       data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, }, },
+               like   => { pg_dumpall_dbprivs => 1, }, },
 
        'GRANT SELECT ON TABLE test_table' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 5,
                create_sql   => 'GRANT SELECT ON TABLE dump_test.test_table
                                                   TO regress_dump_test_role;',
                regexp =>
                  qr/^GRANT SELECT ON TABLE dump_test.test_table TO regress_dump_test_role;/m,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table    => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       pg_dumpall_globals       => 1,
-                       role                     => 1, }, },
+                       exclude_test_table => 1,
+                       no_privs => 1, }, },
 
        'GRANT SELECT ON TABLE test_third_table' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 19,
                create_sql   => 'GRANT SELECT ON
                                                   TABLE dump_test_second_schema.test_third_table
@@ -6014,32 +2758,13 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog
                regexp =>
 qr/^GRANT SELECT ON TABLE dump_test_second_schema.test_third_table TO regress_dump_test_role;/m,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
+                       %full_runs,
                        role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       section_pre_data         => 1, },
                unlike => {
-                       column_inserts         => 1,
-                       data_only              => 1,
-                       only_dump_test_schema  => 1,
-                       only_dump_test_table   => 1,
-                       pg_dumpall_globals     => 1,
-                       test_schema_plus_blobs => 1, }, },
+                       no_privs => 1, }, },
 
        'GRANT ALL ON SEQUENCE test_third_table_col1_seq' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 28,
                create_sql   => 'GRANT ALL ON SEQUENCE
                                                   dump_test_second_schema.test_third_table_col1_seq
@@ -6048,32 +2773,13 @@ qr/^GRANT SELECT ON TABLE dump_test_second_schema.test_third_table TO regress_du
                        \QGRANT ALL ON SEQUENCE dump_test_second_schema.test_third_table_col1_seq TO regress_dump_test_role;\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
+                       %full_runs,
                        role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       section_pre_data         => 1, },
                unlike => {
-                       column_inserts         => 1,
-                       data_only              => 1,
-                       only_dump_test_schema  => 1,
-                       only_dump_test_table   => 1,
-                       pg_dumpall_globals     => 1,
-                       test_schema_plus_blobs => 1, }, },
+                       no_privs => 1, }, },
 
        'GRANT SELECT ON TABLE measurement' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 91,
                create_sql   => 'GRANT SELECT ON
                                                   TABLE dump_test.measurement
@@ -6081,65 +2787,27 @@ qr/^GRANT SELECT ON TABLE dump_test_second_schema.test_third_table TO regress_du
                regexp =>
                  qr/^GRANT SELECT ON TABLE dump_test.measurement TO regress_dump_test_role;/m,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       role                     => 1, }, },
+                       no_privs => 1, }, },
 
        'GRANT SELECT ON TABLE measurement_y2006m2' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 92,
                create_sql   => 'GRANT SELECT ON
                                                   TABLE dump_test_second_schema.measurement_y2006m2
                                                   TO regress_dump_test_role;',
-               regexp =>
-qr/^GRANT SELECT ON TABLE dump_test_second_schema.measurement_y2006m2 TO regress_dump_test_role;/m,
+               regexp => qr/^GRANT SELECT ON TABLE dump_test_second_schema.measurement_y2006m2 TO regress_dump_test_role;/m,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
+                       %full_runs,
                        role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       section_pre_data         => 1, },
                unlike => {
-                       column_inserts         => 1,
-                       data_only              => 1,
-                       only_dump_test_schema  => 1,
-                       only_dump_test_table   => 1,
-                       pg_dumpall_globals     => 1,
-                       test_schema_plus_blobs => 1, }, },
+                       no_privs => 1, }, },
 
        'GRANT ALL ON LARGE OBJECT ...' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 60,
                create_sql   => 'DO $$
                                                 DECLARE myoid oid;
@@ -6152,32 +2820,18 @@ qr/^GRANT SELECT ON TABLE dump_test_second_schema.measurement_y2006m2 TO regress
                        \QGRANT ALL ON LARGE OBJECT \E[0-9]+\Q TO regress_dump_test_role;\E
                        /xm,
                like => {
-                       clean                    => 1,
-                       clean_if_exists          => 1,
+                       %full_runs,
                        column_inserts           => 1,
-                       createdb                 => 1,
                        data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
                        section_pre_data         => 1,
-                       with_oids                => 1,
                        test_schema_plus_blobs   => 1, },
                unlike => {
-                       binary_upgrade        => 1,
-                       no_blobs              => 1,
-                       only_dump_test_schema => 1,
-                       only_dump_test_table  => 1,
-                       pg_dumpall_globals    => 1,
-                       role                  => 1,
-                       schema_only           => 1, }, },
+                       binary_upgrade => 1,
+                       no_blobs => 1,
+                       no_privs => 1,
+                       schema_only => 1, }, },
 
        'GRANT INSERT(col1) ON TABLE test_second_table' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 8,
                create_sql =>
                  'GRANT INSERT (col1) ON TABLE dump_test.test_second_table
@@ -6186,32 +2840,14 @@ qr/^GRANT SELECT ON TABLE dump_test_second_schema.measurement_y2006m2 TO regress
                        \QGRANT INSERT(col1) ON TABLE dump_test.test_second_table TO regress_dump_test_role;\E
                        /xm,
                like => {
-                       binary_upgrade          => 1,
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       schema_only             => 1,
-                       section_pre_data        => 1,
-                       test_schema_plus_blobs  => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_pre_data        => 1, },
                unlike => {
-                       column_inserts           => 1,
-                       data_only                => 1,
                        exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       role                     => 1, }, },
+                       no_privs => 1, }, },
 
        'GRANT EXECUTE ON FUNCTION pg_sleep() TO regress_dump_test_role' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 16,
                create_sql   => 'GRANT EXECUTE ON FUNCTION pg_sleep(float8)
                                                   TO regress_dump_test_role;',
@@ -6219,32 +2855,12 @@ qr/^GRANT SELECT ON TABLE dump_test_second_schema.measurement_y2006m2 TO regress
                        \QGRANT ALL ON FUNCTION pg_catalog.pg_sleep(double precision) TO regress_dump_test_role;\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       %full_runs,
+                       section_pre_data         => 1, },
                unlike => {
-                       column_inserts         => 1,
-                       data_only              => 1,
-                       only_dump_test_schema  => 1,
-                       only_dump_test_table   => 1,
-                       pg_dumpall_globals     => 1,
-                       role                   => 1,
-                       test_schema_plus_blobs => 1, }, },
+                       no_privs => 1, }, },
 
        'GRANT SELECT (proname ...) ON TABLE pg_proc TO public' => {
-               all_runs     => 1,
-               catch_all    => 'GRANT commands',
                create_order => 46,
                create_sql   => 'GRANT SELECT (
                                                   tableoid,
@@ -6310,28 +2926,10 @@ qr/^GRANT SELECT ON TABLE dump_test_second_schema.measurement_y2006m2 TO regress
                \QGRANT SELECT(proconfig) ON TABLE pg_catalog.pg_proc TO PUBLIC;\E\n.*
                \QGRANT SELECT(proacl) ON TABLE pg_catalog.pg_proc TO PUBLIC;\E/xms,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       %full_runs,
+                       section_pre_data         => 1, },
                unlike => {
-                       column_inserts         => 1,
-                       data_only              => 1,
-                       only_dump_test_schema  => 1,
-                       only_dump_test_table   => 1,
-                       pg_dumpall_globals     => 1,
-                       role                   => 1,
-                       test_schema_plus_blobs => 1, }, },
+                       no_privs => 1, }, },
 
        'GRANT USAGE ON SCHEMA public TO public' => {
                regexp => qr/^
@@ -6339,174 +2937,49 @@ qr/^GRANT SELECT ON TABLE dump_test_second_schema.measurement_y2006m2 TO regress
                        \QGRANT USAGE ON SCHEMA public TO PUBLIC;\E
                        /xm,
                # this shouldn't ever get emitted anymore
-               like => {},
-               unlike => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1, }, },
-
-       'GRANT commands' => {    # catch-all for GRANT commands
-               all_runs => 0,              # catch-all
-               regexp   => qr/^GRANT /m,
-               like     => {},             # use more-specific options above
-               unlike   => {
-                       no_privs                 => 1,
-                       pg_dumpall_globals_clean => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+               like => {}, },
 
        'REFRESH MATERIALIZED VIEW matview' => {
-               all_runs => 1,
                regexp   => qr/^REFRESH MATERIALIZED VIEW dump_test.matview;/m,
                like     => {
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       test_schema_plus_blobs  => 1,
-                       section_post_data       => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_post_data       => 1, },
                unlike => {
-                       binary_upgrade           => 1,
-                       column_inserts           => 1,
-                       data_only                => 1,
+                       binary_upgrade => 1,
                        exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_data             => 1,
-                       section_pre_data         => 1, }, },
+                       schema_only => 1, }, },
 
        'REFRESH MATERIALIZED VIEW matview_second' => {
-               all_runs => 1,
                regexp   => qr/^
                        \QREFRESH MATERIALIZED VIEW dump_test.matview;\E
                        \n.*
                        \QREFRESH MATERIALIZED VIEW dump_test.matview_second;\E
                        /xms,
                like => {
-                       clean                   => 1,
-                       clean_if_exists         => 1,
-                       createdb                => 1,
-                       defaults                => 1,
-                       exclude_test_table      => 1,
-                       exclude_test_table_data => 1,
-                       no_blobs                => 1,
-                       no_privs                => 1,
-                       no_owner                => 1,
-                       only_dump_test_schema   => 1,
-                       pg_dumpall_dbprivs      => 1,
-                       test_schema_plus_blobs  => 1,
-                       section_post_data       => 1,
-                       with_oids               => 1, },
+                       %full_runs,
+                       %dump_test_schema_runs,
+                       section_post_data       => 1, },
                unlike => {
-                       binary_upgrade           => 1,
-                       column_inserts           => 1,
-                       data_only                => 1,
+                       binary_upgrade => 1,
                        exclude_dump_test_schema => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_data             => 1,
-                       section_pre_data         => 1, }, },
+                       schema_only => 1, }, },
 
+       # FIXME
        'REFRESH MATERIALIZED VIEW matview_third' => {
-               all_runs => 1,
                regexp   => qr/^
                        \QREFRESH MATERIALIZED VIEW dump_test.matview_third;\E
                        /xms,
-               like   => {},
-               unlike => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       column_inserts           => 1,
-                       createdb                 => 1,
-                       data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_data             => 1,
-                       section_pre_data         => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, }, },
+               like   => {}, },
 
+       # FIXME
        'REFRESH MATERIALIZED VIEW matview_fourth' => {
-               all_runs => 1,
                regexp   => qr/^
                        \QREFRESH MATERIALIZED VIEW dump_test.matview_fourth;\E
                        /xms,
-               like   => {},
-               unlike => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       column_inserts           => 1,
-                       createdb                 => 1,
-                       data_only                => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_privs                 => 1,
-                       no_owner                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_data             => 1,
-                       section_pre_data         => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, }, },
+               like   => {}, },
 
        'REVOKE CONNECT ON DATABASE dump_test FROM public' => {
-               all_runs     => 1,
-               catch_all    => 'REVOKE commands',
                create_order => 49,
                create_sql   => 'REVOKE CONNECT ON DATABASE dump_test FROM public;',
                regexp       => qr/^
@@ -6514,33 +2987,9 @@ qr/^GRANT SELECT ON TABLE dump_test_second_schema.measurement_y2006m2 TO regress
                        \QGRANT TEMPORARY ON DATABASE dump_test TO PUBLIC;\E\n
                        \QGRANT CREATE ON DATABASE dump_test TO regress_dump_test_role;\E
                        /xm,
-               like   => { pg_dumpall_dbprivs => 1, },
-               unlike => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals       => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       schema_only              => 1,
-                       section_data             => 1,
-                       section_pre_data         => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, }, },
+               like   => { pg_dumpall_dbprivs => 1, }, },
 
        'REVOKE EXECUTE ON FUNCTION pg_sleep() FROM public' => {
-               all_runs     => 1,
-               catch_all    => 'REVOKE commands',
                create_order => 15,
                create_sql   => 'REVOKE EXECUTE ON FUNCTION pg_sleep(float8)
                                                   FROM public;',
@@ -6548,62 +2997,22 @@ qr/^GRANT SELECT ON TABLE dump_test_second_schema.measurement_y2006m2 TO regress
                        \QREVOKE ALL ON FUNCTION pg_catalog.pg_sleep(double precision) FROM PUBLIC;\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       %full_runs,
+                       section_pre_data         => 1, },
                unlike => {
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       no_privs => 1, }, },
 
        'REVOKE SELECT ON TABLE pg_proc FROM public' => {
-               all_runs     => 1,
-               catch_all    => 'REVOKE commands',
                create_order => 45,
                create_sql   => 'REVOKE SELECT ON TABLE pg_proc FROM public;',
                regexp       => qr/^REVOKE SELECT ON TABLE pg_catalog.pg_proc FROM PUBLIC;/m,
                like         => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       %full_runs,
+                       section_pre_data         => 1, },
                unlike => {
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       no_privs => 1, }, },
 
        'REVOKE CREATE ON SCHEMA public FROM public' => {
-               all_runs     => 1,
-               catch_all    => 'REVOKE commands',
                create_order => 16,
                create_sql   => 'REVOKE CREATE ON SCHEMA public FROM public;',
                regexp       => qr/^
@@ -6611,68 +3020,25 @@ qr/^GRANT SELECT ON TABLE dump_test_second_schema.measurement_y2006m2 TO regress
                        \n\QGRANT USAGE ON SCHEMA public TO PUBLIC;\E
                        /xm,
                like => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       pg_dumpall_dbprivs       => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       with_oids                => 1, },
+                       %full_runs,
+                       section_pre_data         => 1, },
                unlike => {
-                       only_dump_test_schema    => 1,
-                       only_dump_test_table     => 1,
-                       pg_dumpall_globals_clean => 1,
-                       role                     => 1,
-                       section_data             => 1,
-                       section_post_data        => 1,
-                       test_schema_plus_blobs   => 1, }, },
+                       no_privs => 1, }, },
 
        'REVOKE USAGE ON LANGUAGE plpgsql FROM public' => {
-               all_runs     => 1,
-               catch_all    => 'REVOKE commands',
                create_order => 16,
                create_sql   => 'REVOKE USAGE ON LANGUAGE plpgsql FROM public;',
                regexp       => qr/^REVOKE ALL ON LANGUAGE plpgsql FROM PUBLIC;/m,
                like         => {
-                       binary_upgrade           => 1,
-                       clean                    => 1,
-                       clean_if_exists          => 1,
-                       createdb                 => 1,
-                       defaults                 => 1,
-                       exclude_dump_test_schema => 1,
-                       exclude_test_table       => 1,
-                       exclude_test_table_data  => 1,
-                       no_blobs                 => 1,
-                       no_owner                 => 1,
-                       only_dump_test_schema    => 1,
+                       %full_runs,
+                       %dump_test_schema_runs,
                        only_dump_test_table     => 1,
-                       pg_dumpall_dbprivs       => 1,
                        role                     => 1,
-                       schema_only              => 1,
-                       section_pre_data         => 1,
-                       test_schema_plus_blobs   => 1,
-                       with_oids                => 1, },
+                       section_pre_data         => 1, },
                unlike => {
-                       pg_dumpall_globals_clean => 1,
-                       section_data             => 1,
-                       section_post_data        => 1, }, },
+                       no_privs => 1, }, },
 
-       'REVOKE commands' => {    # catch-all for REVOKE commands
-               all_runs => 0,               # catch-all
-               regexp   => qr/^REVOKE /m,
-               like     => {},              # use more-specific options above
-               unlike   => {
-                       column_inserts     => 1,
-                       data_only          => 1,
-                       no_privs           => 1,
-                       pg_dumpall_globals => 1, }, },);
+);
 
 #########################################
 # Create a PG instance to test actually dumping from
@@ -6755,40 +3121,16 @@ foreach my $run (sort keys %pgdump_runs)
                        next;
                }
 
-               if ($tests{$test}->{like}->{$test_key})
+               # If there is a like entry, but no unlike entry, then we will test the like case
+               if ($tests{$test}->{like}->{$test_key} && !defined($tests{$test}->{unlike}->{$test_key}))
                {
                        $num_tests++;
                }
-
-               if ($tests{$test}->{unlike}->{$test_key})
+               else
                {
+                       # We will test everything that isn't a 'like'
                        $num_tests++;
                }
-
-               # Die if there isn't a like or unlike for this test, unless that is ok
-               if ($tests{$test}->{all_runs})
-               {
-                       if (!defined($tests{$test}->{catch_all}))
-                       {
-                               if (   !defined($tests{$test}->{like}->{$test_key})
-                                       && !defined($tests{$test}->{unlike}->{$test_key}))
-                               {
-                                       die "$run not defined for `$test'";
-                               }
-                       }
-                       else
-                       {
-                               my $catch_all = $tests{$test}->{catch_all};
-
-                               if (   !defined($tests{$test}->{like}->{$test_key})
-                                       && !defined($tests{$catch_all}->{like}->{$test_key})
-                                       && !defined($tests{$test}->{unlike}->{$test_key})
-                                       && !defined($tests{$catch_all}->{unlike}->{$test_key}))
-                               {
-                                       die "$run not defined for `$test' or `$catch_all'";
-                               }
-                       }
-               }
        }
 }
 plan tests => $num_tests;
@@ -6891,8 +3233,8 @@ command_fails_like(
 
 foreach my $run (sort keys %pgdump_runs)
 {
-
        my $test_key = $run;
+       my $run_db   = 'postgres';
 
        $node->command_ok(\@{ $pgdump_runs{$run}->{dump_cmd} },
                "$run: pg_dump runs");
@@ -6916,6 +3258,17 @@ foreach my $run (sort keys %pgdump_runs)
 
        foreach my $test (sort keys %tests)
        {
+               my $test_db = 'postgres';
+
+               if (defined($pgdump_runs{$run}->{database}))
+               {
+                       $run_db = $pgdump_runs{$run}->{database};
+               }
+
+               if (defined($tests{$test}->{database}))
+               {
+                       $test_db = $tests{$test}->{database};
+               }
 
                # Skip any collation-related commands if there is no collation support
                if (!$collation_support && defined($tests{$test}->{collation}))
@@ -6923,17 +3276,29 @@ foreach my $run (sort keys %pgdump_runs)
                        next;
                }
 
-               if ($tests{$test}->{like}->{$test_key})
+               if ($run_db ne $test_db)
                {
-                       like($output_file, $tests{$test}->{regexp}, "$run: dumps $test");
+                       next;
                }
 
-               if ($tests{$test}->{unlike}->{$test_key})
+               # Run the test listed as a like, unless it is specifically noted
+               # as an unlike (generally due to an explicit exclusion or similar).
+               if ($tests{$test}->{like}->{$test_key} && !defined($tests{$test}->{unlike}->{$test_key}))
+               {
+                       if (!ok($output_file =~ $tests{$test}->{regexp}, "$run: should dump $test"))
+                       {
+                               diag("Review $run results in $tempdir");
+                       }
+               }
+               else
                {
-                       unlike(
-                               $output_file,
+                       if (!ok(
+                               $output_file !~
                                $tests{$test}->{regexp},
-                               "$run: does not dump $test");
+                               "$run: should not dump $test"))
+                       {
+                               diag("Review $run results in $tempdir");
+                       }
                }
        }
 }
index fca00c64787ab5b88b39aeaf6d5d019fbb821114..2bc4787871625b6b392b2350eea551bf063f3db7 100644 (file)
@@ -58,11 +58,6 @@ my %pgdump_runs = (
                        '--if-exists',
                        '--encoding=UTF8',    # no-op, just tests that option is accepted
                        'postgres', ], },
-       column_inserts => {
-               dump_cmd => [
-                       'pg_dump',                            '--no-sync',
-                       "--file=$tempdir/column_inserts.sql", '-a',
-                       '--column-inserts',                   'postgres', ], },
        createdb => {
                dump_cmd => [
                        'pg_dump',
@@ -161,22 +156,14 @@ my %pgdump_runs = (
 # file of each of the runs which the test is to be run against
 # and the success of the result will depend on if the regexp
 # result matches the expected 'like' or 'unlike' case.
+# The runs listed as 'like' will be checked if they match the
+# regexp and, if so, the test passes.  All runs which are not
+# listed as 'like' will be checked to ensure they don't match
+# the regexp; if they do, the test will fail.
 #
-# For each test, there are two sets of runs defined, one for
-# the 'like' tests and one for the 'unlike' tests.  'like'
-# essentially means "the regexp for this test must match the
-# output file".  'unlike' is the opposite.
-#
-# There are a few 'catch-all' tests which can be used to have
-# a single, simple, test to over a range of other tests.  For
-# example, there is a '^CREATE ' test, which is used for the
-# 'data-only' test as there should never be any kind of CREATE
-# statement in a 'data-only' run.  Without the catch-all, we
-# would have to list the 'data-only' run in each and every
-# 'CREATE xxxx' test, which would be a lot of additional tests.
-#
-# Note that it makes no sense for the same run to ever be listed
-# in both 'like' and 'unlike' categories.
+# The below hashes provide convenience sets of runs.  Individual
+# runs can be excluded from a general hash by placing that run
+# into the 'unlike' section.
 #
 # There can then be a 'create_sql' and 'create_order' for a
 # given test.  The 'create_sql' commands are collected up in
@@ -188,6 +175,18 @@ my %pgdump_runs = (
 # included in it are compiled.  This greatly improves performance
 # as the regexps are used for each run the test applies to.
 
+# Tests which are considered 'full' dumps by pg_dump, but there
+# are flags used to exclude specific items (ACLs, blobs, etc).
+my %full_runs = (
+   binary_upgrade => 1,
+   clean => 1,
+   clean_if_exists => 1,
+   createdb => 1,
+   defaults => 1,
+   no_privs => 1,
+   no_owner => 1,
+);
+
 my %tests = (
        'ALTER EXTENSION test_pg_dump' => {
                create_order => 9,
@@ -198,18 +197,7 @@ my %tests = (
                        \n\s+\Qcol1 integer NOT NULL,\E
                        \n\s+\Qcol2 integer\E
                        \n\);\n/xm,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_privs           => 1,
-                       no_owner           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'CREATE EXTENSION test_pg_dump' => {
                create_order => 2,
@@ -218,35 +206,17 @@ my %tests = (
                        \QCREATE EXTENSION IF NOT EXISTS test_pg_dump WITH SCHEMA public;\E
                        \n/xm,
                like => {
-                       clean            => 1,
-                       clean_if_exists  => 1,
-                       createdb         => 1,
-                       defaults         => 1,
-                       no_privs         => 1,
-                       no_owner         => 1,
-                       schema_only      => 1,
+                       %full_runs,
+                       schema_only => 1,
                        section_pre_data => 1, },
                unlike => {
-                       binary_upgrade     => 1,
-                       pg_dumpall_globals => 1,
-                       section_post_data  => 1, }, },
+                       binary_upgrade     => 1, }, },
 
        'CREATE ROLE regress_dump_test_role' => {
                create_order => 1,
                create_sql   => 'CREATE ROLE regress_dump_test_role;',
                regexp       => qr/^CREATE ROLE regress_dump_test_role;\n/m,
-               like         => { pg_dumpall_globals => 1, },
-               unlike       => {
-                       binary_upgrade    => 1,
-                       clean             => 1,
-                       clean_if_exists   => 1,
-                       createdb          => 1,
-                       defaults          => 1,
-                       no_privs          => 1,
-                       no_owner          => 1,
-                       schema_only       => 1,
-                       section_pre_data  => 1,
-                       section_post_data => 1, }, },
+               like         => { pg_dumpall_globals => 1, }, },
 
        'CREATE SEQUENCE regress_pg_dump_table_col1_seq' => {
                regexp => qr/^
@@ -258,18 +228,7 @@ my %tests = (
                     \n\s+\QNO MAXVALUE\E
                     \n\s+\QCACHE 1;\E
                     \n/xm,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_privs           => 1,
-                       no_owner           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'CREATE TABLE regress_pg_dump_table_added' => {
                create_order => 7,
@@ -280,18 +239,7 @@ my %tests = (
                        \n\s+\Qcol1 integer NOT NULL,\E
                        \n\s+\Qcol2 integer\E
                        \n\);\n/xm,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_privs           => 1,
-                       no_owner           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'CREATE SEQUENCE regress_pg_dump_seq' => {
                regexp => qr/^
@@ -302,18 +250,7 @@ my %tests = (
                     \n\s+\QNO MAXVALUE\E
                     \n\s+\QCACHE 1;\E
                     \n/xm,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_privs           => 1,
-                       no_owner           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'SETVAL SEQUENCE regress_seq_dumpable' => {
                create_order => 6,
@@ -322,18 +259,9 @@ my %tests = (
                        \QSELECT pg_catalog.setval('public.regress_seq_dumpable', 1, true);\E
                        \n/xm,
                like => {
-                       clean           => 1,
-                       clean_if_exists => 1,
-                       createdb        => 1,
-                       data_only       => 1,
-                       defaults        => 1,
-                       no_owner        => 1,
-                       no_privs        => 1, },
-               unlike => {
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+                       %full_runs,
+                       data_only => 1,
+                       section_data => 1, }, },
 
        'CREATE TABLE regress_pg_dump_table' => {
                regexp => qr/^
@@ -341,35 +269,13 @@ my %tests = (
                        \n\s+\Qcol1 integer NOT NULL,\E
                        \n\s+\Qcol2 integer\E
                        \n\);\n/xm,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_privs           => 1,
-                       no_owner           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'CREATE ACCESS METHOD regress_test_am' => {
                regexp => qr/^
                        \QCREATE ACCESS METHOD regress_test_am TYPE INDEX HANDLER bthandler;\E
                        \n/xm,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_privs           => 1,
-                       no_owner           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'COMMENT ON EXTENSION test_pg_dump' => {
                regexp => qr/^
@@ -377,18 +283,9 @@ my %tests = (
                        \QIS 'Test pg_dump with an extension';\E
                        \n/xm,
                like => {
-                       binary_upgrade   => 1,
-                       clean            => 1,
-                       clean_if_exists  => 1,
-                       createdb         => 1,
-                       defaults         => 1,
-                       no_privs         => 1,
-                       no_owner         => 1,
+                       %full_runs,
                        schema_only      => 1,
-                       section_pre_data => 1, },
-               unlike => {
-                       pg_dumpall_globals => 1,
-                       section_post_data  => 1, }, },
+                       section_pre_data => 1, }, },
 
        'GRANT SELECT regress_pg_dump_table_added pre-ALTER EXTENSION' => {
                create_order => 8,
@@ -397,18 +294,7 @@ my %tests = (
                regexp => qr/^
                        \QGRANT SELECT ON TABLE public.regress_pg_dump_table_added TO regress_dump_test_role;\E
                        \n/xm,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_privs           => 1,
-                       no_owner           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'REVOKE SELECT regress_pg_dump_table_added post-ALTER EXTENSION' => {
                create_order => 10,
@@ -418,18 +304,11 @@ my %tests = (
                        \QREVOKE SELECT ON TABLE public.regress_pg_dump_table_added FROM regress_dump_test_role;\E
                        \n/xm,
                like => {
-                       binary_upgrade   => 1,
-                       clean            => 1,
-                       clean_if_exists  => 1,
-                       createdb         => 1,
-                       defaults         => 1,
-                       no_owner         => 1,
+                       %full_runs,
                        schema_only      => 1,
                        section_pre_data => 1, },
                unlike => {
-                       no_privs           => 1,
-                       pg_dumpall_globals => 1,
-                       section_post_data  => 1, }, },
+                       no_privs           => 1, }, },
 
        'GRANT SELECT ON TABLE regress_pg_dump_table' => {
                regexp => qr/^
@@ -437,18 +316,7 @@ my %tests = (
                        \QGRANT SELECT ON TABLE public.regress_pg_dump_table TO regress_dump_test_role;\E\n
                        \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\E
                        \n/xms,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_owner           => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       no_privs           => 1,
-                       pg_dumpall_globals => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'GRANT SELECT(col1) ON regress_pg_dump_table' => {
                regexp => qr/^
@@ -456,18 +324,7 @@ my %tests = (
                        \QGRANT SELECT(col1) ON TABLE public.regress_pg_dump_table TO PUBLIC;\E\n
                        \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\E
                        \n/xms,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_owner           => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       no_privs           => 1,
-                       pg_dumpall_globals => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'GRANT SELECT(col2) ON regress_pg_dump_table TO regress_dump_test_role' =>
          { create_order => 4,
@@ -477,18 +334,11 @@ my %tests = (
                        \QGRANT SELECT(col2) ON TABLE public.regress_pg_dump_table TO regress_dump_test_role;\E
                        \n/xm,
                like => {
-                       binary_upgrade   => 1,
-                       clean            => 1,
-                       clean_if_exists  => 1,
-                       createdb         => 1,
-                       defaults         => 1,
-                       no_owner         => 1,
+                       %full_runs,
                        schema_only      => 1,
                        section_pre_data => 1, },
                unlike => {
-                       no_privs           => 1,
-                       pg_dumpall_globals => 1,
-                       section_post_data  => 1, }, },
+                       no_privs           => 1, }, },
 
        'GRANT USAGE ON regress_pg_dump_table_col1_seq TO regress_dump_test_role'
          => {
@@ -499,35 +349,17 @@ my %tests = (
                        \QGRANT USAGE ON SEQUENCE public.regress_pg_dump_table_col1_seq TO regress_dump_test_role;\E
                        \n/xm,
                like => {
-                       binary_upgrade   => 1,
-                       clean            => 1,
-                       clean_if_exists  => 1,
-                       createdb         => 1,
-                       defaults         => 1,
-                       no_owner         => 1,
+                       %full_runs,
                        schema_only      => 1,
                        section_pre_data => 1, },
                unlike => {
-                       no_privs           => 1,
-                       pg_dumpall_globals => 1,
-                       section_post_data  => 1, }, },
+                       no_privs           => 1, }, },
 
        'GRANT USAGE ON regress_pg_dump_seq TO regress_dump_test_role' => {
                regexp => qr/^
                        \QGRANT USAGE ON SEQUENCE public.regress_pg_dump_seq TO regress_dump_test_role;\E
                        \n/xm,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_owner           => 1,
-                       no_privs           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'REVOKE SELECT(col1) ON regress_pg_dump_table' => {
                create_order => 3,
@@ -537,18 +369,11 @@ my %tests = (
                        \QREVOKE SELECT(col1) ON TABLE public.regress_pg_dump_table FROM PUBLIC;\E
                        \n/xm,
                like => {
-                       binary_upgrade   => 1,
-                       clean            => 1,
-                       clean_if_exists  => 1,
-                       createdb         => 1,
-                       defaults         => 1,
-                       no_owner         => 1,
+                       %full_runs,
                        schema_only      => 1,
                        section_pre_data => 1, },
                unlike => {
-                       no_privs           => 1,
-                       pg_dumpall_globals => 1,
-                       section_post_data  => 1, }, },
+                       no_privs           => 1, }, },
 
  # Objects included in extension part of a schema created by this extension */
        'CREATE TABLE regress_pg_dump_schema.test_table' => {
@@ -557,18 +382,7 @@ my %tests = (
                        \n\s+\Qcol1 integer,\E
                        \n\s+\Qcol2 integer\E
                        \n\);\n/xm,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_privs           => 1,
-                       no_owner           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'GRANT SELECT ON regress_pg_dump_schema.test_table' => {
                regexp => qr/^
@@ -576,18 +390,7 @@ my %tests = (
                        \QGRANT SELECT ON TABLE regress_pg_dump_schema.test_table TO regress_dump_test_role;\E\n
                        \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\E
                        \n/xms,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_owner           => 1,
-                       no_privs           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'CREATE SEQUENCE regress_pg_dump_schema.test_seq' => {
                regexp => qr/^
@@ -598,18 +401,7 @@ my %tests = (
                     \n\s+\QNO MAXVALUE\E
                     \n\s+\QCACHE 1;\E
                     \n/xm,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_privs           => 1,
-                       no_owner           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'GRANT USAGE ON regress_pg_dump_schema.test_seq' => {
                regexp => qr/^
@@ -617,36 +409,14 @@ my %tests = (
                        \QGRANT USAGE ON SEQUENCE regress_pg_dump_schema.test_seq TO regress_dump_test_role;\E\n
                        \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\E
                        \n/xms,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_owner           => 1,
-                       no_privs           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'CREATE TYPE regress_pg_dump_schema.test_type' => {
                regexp => qr/^
                     \QCREATE TYPE regress_pg_dump_schema.test_type AS (\E
                     \n\s+\Qcol1 integer\E
                     \n\);\n/xm,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_privs           => 1,
-                       no_owner           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'GRANT USAGE ON regress_pg_dump_schema.test_type' => {
                regexp => qr/^
@@ -654,36 +424,14 @@ my %tests = (
                        \QGRANT ALL ON TYPE regress_pg_dump_schema.test_type TO regress_dump_test_role;\E\n
                        \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\E
                        \n/xms,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_owner           => 1,
-                       no_privs           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'CREATE FUNCTION regress_pg_dump_schema.test_func' => {
                regexp => qr/^
             \QCREATE FUNCTION regress_pg_dump_schema.test_func() RETURNS integer\E
             \n\s+\QLANGUAGE sql\E
             \n/xm,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_privs           => 1,
-                       no_owner           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'GRANT ALL ON regress_pg_dump_schema.test_func' => {
                regexp => qr/^
@@ -691,18 +439,7 @@ my %tests = (
                        \QGRANT ALL ON FUNCTION regress_pg_dump_schema.test_func() TO regress_dump_test_role;\E\n
                        \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\E
                        \n/xms,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_owner           => 1,
-                       no_privs           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'CREATE AGGREGATE regress_pg_dump_schema.test_agg' => {
                regexp => qr/^
@@ -710,18 +447,7 @@ my %tests = (
             \n\s+\QSFUNC = int2_sum,\E
             \n\s+\QSTYPE = bigint\E
             \n\);\n/xm,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_privs           => 1,
-                       no_owner           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        'GRANT ALL ON regress_pg_dump_schema.test_agg' => {
                regexp => qr/^
@@ -729,18 +455,7 @@ my %tests = (
                        \QGRANT ALL ON FUNCTION regress_pg_dump_schema.test_agg(smallint) TO regress_dump_test_role;\E\n
                        \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\E
                        \n/xms,
-               like   => { binary_upgrade => 1, },
-               unlike => {
-                       clean              => 1,
-                       clean_if_exists    => 1,
-                       createdb           => 1,
-                       defaults           => 1,
-                       no_owner           => 1,
-                       no_privs           => 1,
-                       pg_dumpall_globals => 1,
-                       schema_only        => 1,
-                       section_pre_data   => 1,
-                       section_post_data  => 1, }, },
+               like   => { binary_upgrade => 1, }, },
 
        # Objects not included in extension, part of schema created by extension
        'CREATE TABLE regress_pg_dump_schema.external_tab' => {
@@ -752,18 +467,10 @@ my %tests = (
                        \n\s+\Qcol1 integer\E
                        \n\);\n/xm,
                like => {
-                       binary_upgrade   => 1,
-                       clean            => 1,
-                       clean_if_exists  => 1,
-                       createdb         => 1,
-                       defaults         => 1,
-                       no_owner         => 1,
-                       no_privs         => 1,
-                       schema_only      => 1,
-                       section_pre_data => 1, },
-               unlike => {
-                       pg_dumpall_globals => 1,
-                       section_post_data  => 1, }, },);
+                       %full_runs,
+                       schema_only => 1,
+                       section_pre_data => 1, }, },
+);
 
 #########################################
 # Create a PG instance to test actually dumping from
@@ -797,13 +504,14 @@ foreach my $run (sort keys %pgdump_runs)
        # Then count all the tests run against each run
        foreach my $test (sort keys %tests)
        {
-               if ($tests{$test}->{like}->{$test_key})
+               # If there is a like entry, but no unlike entry, then we will test the like case
+               if ($tests{$test}->{like}->{$test_key} && !defined($tests{$test}->{unlike}->{$test_key}))
                {
                        $num_tests++;
                }
-
-               if ($tests{$test}->{unlike}->{$test_key})
+               else
                {
+                       # We will test everything that isn't a 'like'
                        $num_tests++;
                }
        }
@@ -875,17 +583,24 @@ foreach my $run (sort keys %pgdump_runs)
 
        foreach my $test (sort keys %tests)
        {
-               if ($tests{$test}->{like}->{$test_key})
+               # Run the test listed as a like, unless it is specifically noted
+               # as an unlike (generally due to an explicit exclusion or similar).
+               if ($tests{$test}->{like}->{$test_key} && !defined($tests{$test}->{unlike}->{$test_key}))
                {
-                       like($output_file, $tests{$test}->{regexp}, "$run: dumps $test");
+                       if (!ok($output_file =~ $tests{$test}->{regexp}, "$run: should dump $test"))
+                       {
+                               diag("Review $run results in $tempdir");
+                       }
                }
-
-               if ($tests{$test}->{unlike}->{$test_key})
+               else
                {
-                       unlike(
-                               $output_file,
-                               $tests{$test}->{regexp},
-                               "$run: does not dump $test");
+                       if (!ok(
+                                       $output_file !~
+                                       $tests{$test}->{regexp},
+                                       "$run: should not dump $test"))
+                       {
+                               diag("Review $run results in $tempdir");
+                       }
                }
        }
 }