Rewrite of pg_dump TAP tests

Started by Stephen Frostalmost 8 years ago9 messages
#1Stephen Frost
sfrost@snowman.net
1 attachment(s)

Greetings,

Attached is a patch (which applies cleaning against a2a2205, but not so
much anymore, obviously, but I will fix after the releases) which
greatly improves the big pg_dump TAP tests. There's probably more which
can be done, but I expect people will be much happier with this. The
cliff-notes are:

Reworked how the tests are defined to instead of a set of 'full runs'
and then a way to exclude certain runs from certain tests (using the
same 'unlike' mechanism, but now it works to remove 'like' entries which
are pulled into the 'like' part by a broad hash). This ends up removing
some 4k+ lines (more than half the file) but, more importantly, makes
the way the runs-to-be-tested are defined make more sense.

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, I've changed 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. The
only concern I have with this is if it'll make analysis of buildfarm
failures difficult, but, thankfully, I've not seen too many cases of
pg_dump behavior differently in the buildfarm so perhaps this trade-off
for making it easier for hackers to work with will be worth the
reduction in clarity from the buildfarm in this specific case.

Comments and suggestions welcome, of course. As mentioned, this applies
as of around a2a2205, but I will fix it either this weekend or early
next week to account for the recent changes.

Thanks!

Stephen

Attachments:

pg_dump_test_rewrite.patchtext/x-diff; charset=us-asciiDownload
diff --git a/src/bin/pg_dump/t/002_pg_dump.pl b/src/bin/pg_dump/t/002_pg_dump.pl
new file mode 100644
index 3e9b4d9..5a293b6
*** a/src/bin/pg_dump/t/002_pg_dump.pl
--- b/src/bin/pg_dump/t/002_pg_dump.pl
*************** my %pgdump_runs = (
*** 274,294 ****
  # 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.
  #
! # 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.
  #
  # There can then be a 'create_sql' and 'create_order' for a
  # given test.  The 'create_sql' commands are collected up in
--- 274,293 ----
  # 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.
  #
! # 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.
  #
! # 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
*************** my %pgdump_runs = (
*** 300,308 ****
  # included in it are compiled.  This greatly improves performance
  # as the regexps are used for each run the test applies to.
  
  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
--- 299,332 ----
  # 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' => {
  		create_order => 14,
  		create_sql   => 'ALTER DEFAULT PRIVILEGES
  					   FOR ROLE regress_dump_test_role IN SCHEMA dump_test
*************** my %tests = (
*** 313,347 ****
  			\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, },
  		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, }, },
  
  	'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
--- 337,350 ----
  			\QGRANT SELECT ON TABLES  TO regress_dump_test_role;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_post_data       => 1, }, 
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			no_privs => 1, }, },
  
  	'ALTER DEFAULT PRIVILEGES FOR ROLE regress_dump_test_role REVOKE' => {
  		create_order => 55,
  		create_sql   => 'ALTER DEFAULT PRIVILEGES
  					   FOR ROLE regress_dump_test_role
*************** my %tests = (
*** 352,387 ****
  			\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, },
  		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, }, },
  
  	'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
--- 355,367 ----
  			\QREVOKE ALL ON FUNCTIONS  FROM PUBLIC;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			section_post_data        => 1, }, 
  		unlike => {
! 			no_privs => 1, }, },
  
  	'ALTER DEFAULT PRIVILEGES FOR ROLE regress_dump_test_role REVOKE SELECT'
  	  => {
  		create_order => 56,
  		create_sql   => 'ALTER DEFAULT PRIVILEGES
  					   FOR ROLE regress_dump_test_role
*************** my %tests = (
*** 395,429 ****
  			\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, },
  		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, }, },
  
  	'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
--- 375,386 ----
  			\QGRANT INSERT,REFERENCES,DELETE,TRIGGER,TRUNCATE,UPDATE ON TABLES  TO regress_dump_test_role;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			section_post_data        => 1, },
  		unlike => {
! 			no_privs => 1, }, },
  
  	'ALTER ROLE regress_dump_test_role' => {
  		regexp   => qr/^
  			\QALTER ROLE regress_dump_test_role WITH \E
  			\QNOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN \E
*************** my %tests = (
*** 432,598 ****
  		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, }, },
  
  	'ALTER COLLATION test0 OWNER TO' => {
- 		all_runs  => 1,
- 		catch_all => 'ALTER ... OWNER commands (except post-data objects)',
  		regexp    => qr/^ALTER COLLATION 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, },
  		unlike => {
! 			only_dump_test_schema  => 1,
! 			only_dump_test_table   => 1,
! 			role                   => 1,
! 			test_schema_plus_blobs => 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, },
  		unlike => {
! 			data_only              => 1,
! 			only_dump_test_schema  => 1,
! 			only_dump_test_table   => 1,
! 			role                   => 1,
! 			test_schema_plus_blobs => 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, },
  		unlike => {
! 			data_only              => 1,
! 			only_dump_test_schema  => 1,
! 			only_dump_test_table   => 1,
! 			role                   => 1,
! 			test_schema_plus_blobs => 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, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 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, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 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
--- 389,449 ----
  		like => {
  			pg_dumpall_dbprivs       => 1,
  			pg_dumpall_globals       => 1,
! 			pg_dumpall_globals_clean => 1, }, },
  
  	'ALTER COLLATION test0 OWNER TO' => {
  		regexp    => qr/^ALTER COLLATION test0 OWNER TO .*;/m,
  		collation => 1,
  		like      => {
! 			%full_runs,
! 			section_pre_data         => 1, }, 
  		unlike => {
! 			%dump_test_schema_runs,
! 			no_owner => 1, }, },
  
  	'ALTER FOREIGN DATA WRAPPER dummy OWNER TO' => {
  		regexp    => qr/^ALTER FOREIGN DATA WRAPPER dummy OWNER TO .*;/m,
  		like      => {
! 			%full_runs,
! 			section_pre_data         => 1, }, 
  		unlike => {
! 			no_owner => 1, }, },
  
  	'ALTER SERVER s1 OWNER TO' => {
  		regexp    => qr/^ALTER SERVER s1 OWNER TO .*;/m,
  		like      => {
! 			%full_runs,
! 			section_pre_data         => 1, }, 
  		unlike => {
! 			no_owner => 1, }, },
  
  	'ALTER FUNCTION dump_test.pltestlang_call_handler() OWNER TO' => {
  		regexp    => qr/^
  			\QALTER FUNCTION dump_test.pltestlang_call_handler() \E
  			\QOWNER TO \E
  			.*;/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, }, 
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			no_owner => 1, }, },
  
  	'ALTER OPERATOR FAMILY dump_test.op_family OWNER TO' => {
  		regexp    => qr/^
  			\QALTER OPERATOR FAMILY dump_test.op_family USING btree \E
  			\QOWNER TO \E
  			.*;/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, }, 
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			no_owner => 1, }, },
  
  	'ALTER OPERATOR FAMILY dump_test.op_family USING btree' => {
  		create_order => 75,
  		create_sql =>
  		  'ALTER OPERATOR FAMILY dump_test.op_family USING btree ADD
*************** my %tests = (
*** 614,912 ****
  			\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, },
  		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, }, },
  
  	'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, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 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, },
  		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, }, },
  
  	'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,
  			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, },
  		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, }, },
  
  	'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, },
  		unlike => {
! 			only_dump_test_schema  => 1,
! 			only_dump_test_table   => 1,
! 			role                   => 1,
! 			test_schema_plus_blobs => 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, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 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, },
  		unlike => {
! 			only_dump_test_schema  => 1,
! 			only_dump_test_table   => 1,
! 			test_schema_plus_blobs => 1, }, },
  
  	'ALTER SEQUENCE test_table_col1_seq' => {
- 		all_runs => 1,
  		regexp   => qr/^
  			\QALTER SEQUENCE test_table_col1_seq OWNED BY 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,
  			only_dump_test_table    => 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_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, }, },
  
  	'ALTER SEQUENCE test_third_table_col1_seq' => {
- 		all_runs => 1,
  		regexp   => qr/^
  			\QALTER SEQUENCE test_third_table_col1_seq OWNED BY 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,
  			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, }, },
  
  	'ALTER TABLE ONLY test_table ADD CONSTRAINT ... PRIMARY KEY' => {
- 		all_runs  => 1,
- 		catch_all => 'ALTER TABLE ... commands',
  		regexp    => qr/^
  			\QALTER TABLE ONLY 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,
  			only_dump_test_table    => 1,
! 			pg_dumpall_dbprivs      => 1,
! 			schema_only             => 1,
! 			section_post_data       => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 1, },
  		unlike => {
- 			data_only                => 1,
  			exclude_dump_test_schema => 1,
! 			exclude_test_table       => 1,
! 			role                     => 1,
! 			section_pre_data         => 1,
! 			section_data             => 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;',
--- 465,574 ----
  			\QFUNCTION 2 (integer, integer) btint4sortsupport(internal);\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, }, 
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'ALTER OPERATOR CLASS dump_test.op_class OWNER TO' => {
  		regexp    => qr/^
  			\QALTER OPERATOR CLASS dump_test.op_class USING btree \E
  			\QOWNER TO \E
  			.*;/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, }, 
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			no_owner => 1, }, },
  
  	'ALTER PUBLICATION pub1 OWNER TO' => {
  		regexp   => qr/^ALTER PUBLICATION pub1 OWNER TO .*;/m,
  		like     => {
! 			%full_runs,
! 			section_post_data        => 1, }, 
  		unlike => {
! 			no_owner => 1, }, },
  
  	'ALTER LARGE OBJECT ... OWNER TO' => {
  		regexp   => qr/^ALTER LARGE OBJECT \d+ OWNER TO .*;/m,
  		like     => {
! 			%full_runs,
  			column_inserts           => 1,
  			data_only                => 1,
  			section_pre_data         => 1,
! 			test_schema_plus_blobs   => 1, }, 
  		unlike => {
! 			no_blobs => 1,
! 			no_owner => 1,
! 			schema_only => 1, }, },
  
  	'ALTER PROCEDURAL LANGUAGE pltestlang OWNER TO' => {
  		regexp    => qr/^ALTER PROCEDURAL LANGUAGE pltestlang OWNER TO .*;/m,
  		like      => {
! 			%full_runs,
! 			section_pre_data         => 1, }, 
  		unlike => {
! 			no_owner => 1, }, },
  
  	'ALTER SCHEMA dump_test OWNER TO' => {
  		regexp    => qr/^ALTER SCHEMA dump_test OWNER TO .*;/m,
  		like      => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, }, 
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			no_owner => 1, }, },
  
  	'ALTER SCHEMA dump_test_second_schema OWNER TO' => {
  		regexp    => qr/^ALTER SCHEMA dump_test_second_schema OWNER TO .*;/m,
  		like      => {
! 			%full_runs,
! 			role => 1,
! 			section_pre_data         => 1, }, 
  		unlike => {
! 			no_owner => 1, }, },
  
  	'ALTER SEQUENCE test_table_col1_seq' => {
  		regexp   => qr/^
  			\QALTER SEQUENCE test_table_col1_seq OWNED BY test_table.col1;\E
  			/xm,
  		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, }, },
  
  	'ALTER SEQUENCE test_third_table_col1_seq' => {
  		regexp   => qr/^
  			\QALTER SEQUENCE test_third_table_col1_seq OWNED BY test_third_table.col1;\E
  			/xm,
  		like => {
! 			%full_runs,
  			role                     => 1,
! 			section_pre_data         => 1, }, },
  
  	'ALTER TABLE ONLY test_table ADD CONSTRAINT ... PRIMARY KEY' => {
  		regexp    => qr/^
  			\QALTER TABLE ONLY test_table\E \n^\s+
  			\QADD CONSTRAINT test_table_pkey PRIMARY KEY (col1);\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			only_dump_test_table    => 1,
! 			section_post_data       => 1, }, 
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			exclude_test_table => 1, }, },
  
  	'ALTER TABLE ONLY test_table ALTER COLUMN col1 SET STATISTICS 90' => {
  		create_order => 93,
  		create_sql =>
  'ALTER TABLE dump_test.test_table ALTER COLUMN col1 SET STATISTICS 90;',
*************** my %tests = (
*** 914,946 ****
  			\QALTER TABLE ONLY 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,
  			only_dump_test_table    => 1,
! 			pg_dumpall_dbprivs      => 1,
! 			schema_only             => 1,
! 			section_pre_data        => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 1, },
  		unlike => {
- 			data_only                => 1,
  			exclude_dump_test_schema => 1,
! 			exclude_test_table       => 1,
! 			role                     => 1,
! 			section_post_data        => 1,
! 			section_data             => 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;',
--- 576,590 ----
  			\QALTER TABLE ONLY test_table ALTER COLUMN col1 SET STATISTICS 90;\E\n
  			/xm,
  		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, }, },
  
  	'ALTER TABLE ONLY test_table ALTER COLUMN col2 SET STORAGE' => {
  		create_order => 94,
  		create_sql =>
  'ALTER TABLE dump_test.test_table ALTER COLUMN col2 SET STORAGE EXTERNAL;',
*************** my %tests = (
*** 948,980 ****
  			\QALTER TABLE ONLY 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,
  			only_dump_test_table    => 1,
! 			pg_dumpall_dbprivs      => 1,
! 			schema_only             => 1,
! 			section_pre_data        => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 1, },
  		unlike => {
- 			data_only                => 1,
  			exclude_dump_test_schema => 1,
! 			exclude_test_table       => 1,
! 			role                     => 1,
! 			section_post_data        => 1,
! 			section_data             => 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;',
--- 592,606 ----
  			\QALTER TABLE ONLY test_table ALTER COLUMN col2 SET STORAGE EXTERNAL;\E\n
  			/xm,
  		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, }, },
  
  	'ALTER TABLE ONLY test_table ALTER COLUMN col3 SET STORAGE' => {
  		create_order => 95,
  		create_sql =>
  'ALTER TABLE dump_test.test_table ALTER COLUMN col3 SET STORAGE MAIN;',
*************** my %tests = (
*** 982,1014 ****
  			\QALTER TABLE ONLY 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,
  			only_dump_test_table    => 1,
! 			pg_dumpall_dbprivs      => 1,
! 			schema_only             => 1,
! 			section_pre_data        => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 1, },
  		unlike => {
- 			data_only                => 1,
  			exclude_dump_test_schema => 1,
! 			exclude_test_table       => 1,
! 			role                     => 1,
! 			section_post_data        => 1,
! 			section_data             => 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);',
--- 608,622 ----
  			\QALTER TABLE ONLY test_table ALTER COLUMN col3 SET STORAGE MAIN;\E\n
  			/xm,
  		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, }, },
  
  	'ALTER TABLE ONLY test_table ALTER COLUMN col4 SET n_distinct' => {
  		create_order => 95,
  		create_sql =>
  'ALTER TABLE dump_test.test_table ALTER COLUMN col4 SET (n_distinct = 10);',
*************** my %tests = (
*** 1016,1082 ****
  			\QALTER TABLE ONLY 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,
  			only_dump_test_table    => 1,
! 			pg_dumpall_dbprivs      => 1,
! 			schema_only             => 1,
! 			section_pre_data        => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 1, },
  		unlike => {
- 			data_only                => 1,
  			exclude_dump_test_schema => 1,
! 			exclude_test_table       => 1,
! 			role                     => 1,
! 			section_post_data        => 1,
! 			section_data             => 1, }, },
  
  'ALTER TABLE ONLY dump_test.measurement ATTACH PARTITION measurement_y2006m2'
  	  => {
- 		all_runs => 1,
  		regexp   => qr/^
  			\QALTER TABLE ONLY dump_test.measurement ATTACH PARTITION 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, }, },
  
  	'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',
--- 624,646 ----
  			\QALTER TABLE ONLY test_table ALTER COLUMN col4 SET (n_distinct=10);\E\n
  			/xm,
  		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, }, },
  
  'ALTER TABLE ONLY dump_test.measurement ATTACH PARTITION measurement_y2006m2'
  	  => {
  		regexp   => qr/^
  			\QALTER TABLE ONLY dump_test.measurement ATTACH PARTITION measurement_y2006m2 \E
  			\QFOR VALUES FROM ('2006-02-01') TO ('2006-03-01');\E\n
  			/xm,
! 		like   => { binary_upgrade => 1, }, },
  
  	'ALTER TABLE test_table CLUSTER ON test_table_pkey' => {
  		create_order => 96,
  		create_sql =>
  		  'ALTER TABLE dump_test.test_table CLUSTER ON test_table_pkey',
*************** my %tests = (
*** 1084,1483 ****
  			\QALTER TABLE 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,
  			only_dump_test_table    => 1,
! 			pg_dumpall_dbprivs      => 1,
! 			schema_only             => 1,
! 			section_post_data       => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 1, },
  		unlike => {
- 			data_only                => 1,
  			exclude_dump_test_schema => 1,
! 			exclude_test_table       => 1,
! 			role                     => 1,
! 			section_pre_data         => 1,
! 			section_data             => 1, }, },
  
  	'ALTER TABLE test_table DISABLE TRIGGER ALL' => {
- 		all_runs => 1,
  		regexp   => qr/^
  			\QSET SESSION AUTHORIZATION 'test_superuser';\E\n\n
  			\QALTER TABLE test_table DISABLE TRIGGER ALL;\E\n\n
  			\QCOPY test_table (col1, col2, col3, col4) FROM stdin;\E
  			\n(?:\d\t\\N\t\\N\t\\N\n){9}\\\.\n\n\n
  			\QALTER TABLE 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, }, },
  
  	'ALTER FOREIGN TABLE foreign_table ALTER COLUMN c1 OPTIONS' => {
- 		all_runs  => 1,
- 		catch_all => 'ALTER TABLE ... commands',
  		regexp    => qr/^
  			\QALTER FOREIGN TABLE 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, },
  		unlike => {
! 			exclude_dump_test_schema => 1,
! 			data_only                => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 1,
! 			section_post_data        => 1, }, },
  
  	'ALTER TABLE test_table OWNER TO' => {
- 		all_runs  => 1,
- 		catch_all => 'ALTER ... OWNER commands (except post-data objects)',
  		regexp    => qr/^ALTER TABLE 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,
  			only_dump_test_table    => 1,
! 			pg_dumpall_dbprivs      => 1,
! 			schema_only             => 1,
! 			section_pre_data        => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 1, },
  		unlike => {
- 			data_only                => 1,
  			exclude_dump_test_schema => 1,
! 			exclude_test_table       => 1,
! 			role                     => 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 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, },
  		unlike => {
- 			data_only                => 1,
- 			section_pre_data         => 1,
  			exclude_dump_test_schema => 1,
! 			exclude_test_table       => 1,
! 			role                     => 1, }, },
  
  	'ALTER TABLE test_second_table OWNER TO' => {
- 		all_runs  => 1,
- 		catch_all => 'ALTER ... OWNER commands (except post-data objects)',
  		regexp    => qr/^ALTER TABLE 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, },
  		unlike => {
- 			data_only                => 1,
  			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 1, }, },
  
  	'ALTER TABLE test_third_table OWNER TO' => {
- 		all_runs  => 1,
- 		catch_all => 'ALTER ... OWNER commands (except post-data objects)',
  		regexp    => qr/^ALTER TABLE 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,
  			role                     => 1,
! 			schema_only              => 1,
! 			section_pre_data         => 1,
! 			with_oids                => 1, },
  		unlike => {
! 			data_only              => 1,
! 			only_dump_test_schema  => 1,
! 			only_dump_test_table   => 1,
! 			test_schema_plus_blobs => 1, }, },
  
  	'ALTER TABLE measurement OWNER TO' => {
- 		all_runs  => 1,
- 		catch_all => 'ALTER ... OWNER commands (except post-data objects)',
  		regexp    => qr/^ALTER TABLE 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, },
  		unlike => {
- 			data_only                => 1,
  			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 1, }, },
  
  	'ALTER TABLE measurement_y2006m2 OWNER TO' => {
- 		all_runs  => 1,
- 		catch_all => 'ALTER ... OWNER commands (except post-data objects)',
  		regexp    => qr/^ALTER TABLE 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,
  			role                     => 1,
! 			schema_only              => 1,
! 			section_pre_data         => 1,
! 			with_oids                => 1, },
  		unlike => {
! 			data_only              => 1,
! 			only_dump_test_schema  => 1,
! 			only_dump_test_table   => 1,
! 			test_schema_plus_blobs => 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 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, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			data_only                => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 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 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, },
  		unlike => {
- 			data_only                => 1,
  			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 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 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, },
  		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|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, }, },
  
  	'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,
  			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, },
  		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, }, },
  
  	'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
--- 648,795 ----
  			\QALTER TABLE test_table CLUSTER ON test_table_pkey;\E\n
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			only_dump_test_table    => 1,
! 			section_post_data       => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			exclude_test_table => 1, }, },
  
  	'ALTER TABLE test_table DISABLE TRIGGER ALL' => {
  		regexp   => qr/^
  			\QSET SESSION AUTHORIZATION 'test_superuser';\E\n\n
  			\QALTER TABLE test_table DISABLE TRIGGER ALL;\E\n\n
  			\QCOPY test_table (col1, col2, col3, col4) FROM stdin;\E
  			\n(?:\d\t\\N\t\\N\t\\N\n){9}\\\.\n\n\n
  			\QALTER TABLE test_table ENABLE TRIGGER ALL;\E/xm,
! 		like   => { data_only => 1, }, },
  
  	'ALTER FOREIGN TABLE foreign_table ALTER COLUMN c1 OPTIONS' => {
  		regexp    => qr/^
  			\QALTER FOREIGN TABLE foreign_table ALTER COLUMN c1 OPTIONS (\E\n
  			\s+\Qcolumn_name 'col1'\E\n
  			\Q);\E\n
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, }, 
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'ALTER TABLE test_table OWNER TO' => {
  		regexp    => qr/^ALTER TABLE test_table OWNER TO .*;/m,
  		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,
! 			no_owner => 1, }, },
  
  	'ALTER TABLE test_table ENABLE ROW LEVEL SECURITY' => {
  		create_order => 23,
  		create_sql   => 'ALTER TABLE dump_test.test_table
  					   ENABLE ROW LEVEL SECURITY;',
  		regexp => qr/^ALTER TABLE test_table ENABLE ROW LEVEL SECURITY;/m,
  		like   => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			only_dump_test_table => 1,
! 			section_post_data       => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			exclude_test_table => 1, }, },
  
  	'ALTER TABLE test_second_table OWNER TO' => {
  		regexp    => qr/^ALTER TABLE test_second_table OWNER TO .*;/m,
  		like      => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			no_owner => 1, }, },
  
  	'ALTER TABLE test_third_table OWNER TO' => {
  		regexp    => qr/^ALTER TABLE test_third_table OWNER TO .*;/m,
  		like      => {
! 			%full_runs,
  			role                     => 1,
! 			section_pre_data         => 1, }, 
  		unlike => {
! 			no_owner => 1, }, },
  
  	'ALTER TABLE measurement OWNER TO' => {
  		regexp    => qr/^ALTER TABLE measurement OWNER TO .*;/m,
  		like      => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			no_owner => 1, }, },
  
  	'ALTER TABLE measurement_y2006m2 OWNER TO' => {
  		regexp    => qr/^ALTER TABLE measurement_y2006m2 OWNER TO .*;/m,
  		like      => {
! 			%full_runs,
  			role                     => 1,
! 			section_pre_data         => 1, },
  		unlike => {
! 			no_owner => 1, }, },
  
  	'ALTER FOREIGN TABLE foreign_table OWNER TO' => {
  		regexp    => qr/^ALTER FOREIGN TABLE foreign_table OWNER TO .*;/m,
  		like      => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			no_owner => 1, }, },
  
  	'ALTER TEXT SEARCH CONFIGURATION alt_ts_conf1 OWNER TO' => {
  		regexp =>
  		  qr/^ALTER TEXT SEARCH CONFIGURATION alt_ts_conf1 OWNER TO .*;/m,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			no_owner => 1, }, },
  
  	'ALTER TEXT SEARCH DICTIONARY alt_ts_dict1 OWNER TO' => {
  		regexp =>
  		  qr/^ALTER TEXT SEARCH DICTIONARY alt_ts_dict1 OWNER TO .*;/m,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			no_owner => 1, }, },
  
  	'BLOB create (using lo_from_bytea)' => {
  		create_order => 50,
  		create_sql =>
  'SELECT pg_catalog.lo_from_bytea(0, \'\\x310a320a330a340a350a360a370a380a390a\');',
  		regexp => qr/^SELECT pg_catalog\.lo_create\('\d+'\);/m,
  		like   => {
! 			%full_runs,
  			column_inserts           => 1,
  			data_only                => 1,
  			section_pre_data         => 1,
! 			test_schema_plus_blobs   => 1, }, 
  		unlike => {
! 			schema_only => 1,
! 			no_blobs => 1, }, },
  
  	'BLOB load (using lo_from_bytea)' => {
  		regexp   => qr/^
  			\QSELECT pg_catalog.lo_open\E \('\d+',\ \d+\);\n
  			\QSELECT pg_catalog.lowrite(0, \E
*************** qr/^ALTER (?!EVENT TRIGGER|LARGE OBJECT|
*** 1485,1614 ****
  			\QSELECT pg_catalog.lo_close(0);\E
  			/xm,
  		like => {
! 			clean                    => 1,
! 			clean_if_exists          => 1,
  			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, },
  		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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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 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,
  			only_dump_test_table    => 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,
! 			exclude_test_table       => 1,
! 			role                     => 1,
! 			section_post_data        => 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\';',
--- 797,837 ----
  			\QSELECT pg_catalog.lo_close(0);\E
  			/xm,
  		like => {
! 			%full_runs,
  			column_inserts           => 1,
  			data_only                => 1,
  			section_data             => 1,
! 			test_schema_plus_blobs   => 1, }, 
  		unlike => {
! 			binary_upgrade => 1,
! 			no_blobs => 1,
! 			schema_only => 1, }, },
  
  	'COMMENT ON DATABASE postgres' => {
  		regexp    => qr/^COMMENT ON DATABASE postgres IS .*;/m,
  		# Should appear in the same tests as "CREATE DATABASE postgres"
! 		like   => { createdb => 1, }, },
  
  	'COMMENT ON EXTENSION plpgsql' => {
  		regexp    => qr/^COMMENT ON EXTENSION plpgsql IS .*;/m,
  		# this shouldn't ever get emitted anymore
! 		like      => {}, },
  
  	'COMMENT ON TABLE dump_test.test_table' => {
  		create_order => 36,
  		create_sql   => 'COMMENT ON TABLE dump_test.test_table
  					   IS \'comment on table\';',
  		regexp => qr/^COMMENT ON TABLE test_table IS 'comment on table';/m,
  		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, }, },
  
  	'COMMENT ON COLUMN dump_test.test_table.col1' => {
  		create_order => 36,
  		create_sql   => 'COMMENT ON COLUMN dump_test.test_table.col1
  					   IS \'comment on column\';',
*************** qr/^ALTER (?!EVENT TRIGGER|LARGE OBJECT|
*** 1616,1648 ****
  			\QCOMMENT ON COLUMN 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,
  			only_dump_test_table    => 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,
! 			exclude_test_table       => 1,
! 			role                     => 1,
! 			section_post_data        => 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\';',
--- 839,853 ----
  			\QCOMMENT ON COLUMN test_table.col1 IS 'comment on column';\E
  			/xm,
  		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, }, },
  
  	'COMMENT ON COLUMN dump_test.composite.f1' => {
  		create_order => 44,
  		create_sql   => 'COMMENT ON COLUMN dump_test.composite.f1
  					   IS \'comment on column of type\';',
*************** qr/^ALTER (?!EVENT TRIGGER|LARGE OBJECT|
*** 1650,1682 ****
  			\QCOMMENT ON COLUMN 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, },
  		unlike => {
! 			column_inserts           => 1,
! 			data_only                => 1,
! 			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 1,
! 			section_post_data        => 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\';',
--- 855,867 ----
  			\QCOMMENT ON COLUMN composite.f1 IS 'comment on column of type';\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'COMMENT ON COLUMN dump_test.test_second_table.col1' => {
  		create_order => 63,
  		create_sql   => 'COMMENT ON COLUMN dump_test.test_second_table.col1
  					   IS \'comment on column col1\';',
*************** qr/^ALTER (?!EVENT TRIGGER|LARGE OBJECT|
*** 1684,1716 ****
  			\QCOMMENT ON COLUMN 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, },
  		unlike => {
! 			column_inserts           => 1,
! 			data_only                => 1,
! 			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 1,
! 			section_post_data        => 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\';',
--- 869,881 ----
  			\QCOMMENT ON COLUMN test_second_table.col1 IS 'comment on column col1';\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'COMMENT ON COLUMN dump_test.test_second_table.col2' => {
  		create_order => 64,
  		create_sql   => 'COMMENT ON COLUMN dump_test.test_second_table.col2
  					   IS \'comment on column col2\';',
*************** qr/^ALTER (?!EVENT TRIGGER|LARGE OBJECT|
*** 1718,1783 ****
  			\QCOMMENT ON COLUMN 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, },
  		unlike => {
! 			column_inserts           => 1,
! 			data_only                => 1,
! 			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 1,
! 			section_post_data        => 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 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, },
  		unlike => {
! 			column_inserts           => 1,
! 			data_only                => 1,
! 			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 1,
! 			section_post_data        => 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\';',
--- 883,908 ----
  			\QCOMMENT ON COLUMN test_second_table.col2 IS 'comment on column col2';\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'COMMENT ON CONVERSION dump_test.test_conversion' => {
  		create_order => 79,
  		create_sql   => 'COMMENT ON CONVERSION dump_test.test_conversion
  					   IS \'comment on test conversion\';',
  		regexp =>
  qr/^COMMENT ON CONVERSION test_conversion IS 'comment on test conversion';/m,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'COMMENT ON COLLATION test0' => {
  		create_order => 77,
  		create_sql   => 'COMMENT ON COLLATION test0
  					   IS \'comment on test0 collation\';',
*************** qr/^COMMENT ON CONVERSION test_conversio
*** 1785,1816 ****
  		  qr/^COMMENT ON COLLATION 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, }, },
  
  	'COMMENT ON LARGE OBJECT ...' => {
- 		all_runs     => 1,
  		create_order => 65,
  		create_sql   => 'DO $$
  						 DECLARE myoid oid;
--- 910,919 ----
  		  qr/^COMMENT ON COLLATION test0 IS 'comment on test0 collation';/m,
  		collation => 1,
  		like      => {
! 			%full_runs,
! 			section_pre_data         => 1, }, },
  
  	'COMMENT ON LARGE OBJECT ...' => {
  		create_order => 65,
  		create_sql   => 'DO $$
  						 DECLARE myoid oid;
*************** qr/^COMMENT ON CONVERSION test_conversio
*** 1823,1928 ****
  			\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,
  			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, },
  		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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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
--- 926,961 ----
  			\QCOMMENT ON LARGE OBJECT \E[0-9]+\Q IS 'comment on large object';\E
  			/xm,
  		like => {
! 			%full_runs,
  			column_inserts           => 1,
  			data_only                => 1,
  			section_pre_data         => 1,
! 			test_schema_plus_blobs   => 1, }, 
  		unlike => {
! 			no_blobs => 1, 
! 			schema_only => 1, }, },
  
  	'COMMENT ON PUBLICATION pub1' => {
  		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 => {
! 			%full_runs,
! 			section_post_data        => 1, }, },
  
  	'COMMENT ON SUBSCRIPTION sub1' => {
  		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 => {
! 			%full_runs,
! 			section_post_data        => 1, }, },
  
  	'COMMENT ON TEXT SEARCH CONFIGURATION dump_test.alt_ts_conf1' => {
  		create_order => 84,
  		create_sql =>
  		  'COMMENT ON TEXT SEARCH CONFIGURATION dump_test.alt_ts_conf1
*************** qr/^COMMENT ON CONVERSION test_conversio
*** 1930,1962 ****
  		regexp =>
  qr/^COMMENT ON TEXT SEARCH CONFIGURATION 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, },
  		unlike => {
! 			column_inserts           => 1,
! 			data_only                => 1,
! 			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 1,
! 			section_post_data        => 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
--- 963,975 ----
  		regexp =>
  qr/^COMMENT ON TEXT SEARCH CONFIGURATION alt_ts_conf1 IS 'comment on text search configuration';/m,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, }, 
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'COMMENT ON TEXT SEARCH DICTIONARY dump_test.alt_ts_dict1' => {
  		create_order => 84,
  		create_sql =>
  		  'COMMENT ON TEXT SEARCH DICTIONARY dump_test.alt_ts_dict1
*************** qr/^COMMENT ON TEXT SEARCH CONFIGURATION
*** 1964,2201 ****
  		regexp =>
  qr/^COMMENT ON TEXT SEARCH DICTIONARY 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, },
  		unlike => {
! 			column_inserts           => 1,
! 			data_only                => 1,
! 			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 1,
! 			section_post_data        => 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 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, },
  		unlike => {
! 			column_inserts           => 1,
! 			data_only                => 1,
! 			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 1,
! 			section_post_data        => 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 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, },
  		unlike => {
! 			column_inserts           => 1,
! 			data_only                => 1,
! 			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 1,
! 			section_post_data        => 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 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, },
  		unlike => {
! 			column_inserts           => 1,
! 			data_only                => 1,
! 			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 1,
! 			section_post_data        => 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 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, },
  		unlike => {
! 			column_inserts           => 1,
! 			data_only                => 1,
! 			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 1,
! 			section_post_data        => 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 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, },
  		unlike => {
! 			column_inserts           => 1,
! 			data_only                => 1,
! 			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 1,
! 			section_post_data        => 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 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, },
  		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, }, },
  
  	'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);',
--- 977,1064 ----
  		regexp =>
  qr/^COMMENT ON TEXT SEARCH DICTIONARY alt_ts_dict1 IS 'comment on text search dictionary';/m,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'COMMENT ON TEXT SEARCH PARSER dump_test.alt_ts_prs1' => {
  		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 alt_ts_prs1 IS 'comment on text search parser';/m,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'COMMENT ON TEXT SEARCH TEMPLATE dump_test.alt_ts_temp1' => {
  		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 alt_ts_temp1 IS 'comment on text search template';/m,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'COMMENT ON TYPE dump_test.planets - ENUM' => {
  		create_order => 68,
  		create_sql   => 'COMMENT ON TYPE dump_test.planets
  					   IS \'comment on enum type\';',
  		regexp => qr/^COMMENT ON TYPE planets IS 'comment on enum type';/m,
  		like   => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'COMMENT ON TYPE dump_test.textrange - RANGE' => {
  		create_order => 69,
  		create_sql   => 'COMMENT ON TYPE dump_test.textrange
  					   IS \'comment on range type\';',
  		regexp => qr/^COMMENT ON TYPE textrange IS 'comment on range type';/m,
  		like   => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'COMMENT ON TYPE dump_test.int42 - Regular' => {
  		create_order => 70,
  		create_sql   => 'COMMENT ON TYPE dump_test.int42
  					   IS \'comment on regular type\';',
  		regexp => qr/^COMMENT ON TYPE int42 IS 'comment on regular type';/m,
  		like   => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'COMMENT ON TYPE dump_test.undefined - Undefined' => {
  		create_order => 71,
  		create_sql   => 'COMMENT ON TYPE dump_test.undefined
  					   IS \'comment on undefined type\';',
  		regexp =>
  		  qr/^COMMENT ON TYPE undefined IS 'comment on undefined type';/m,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'COPY test_table' => {
  		create_order => 4,
  		create_sql   => 'INSERT INTO dump_test.test_table (col1) '
  		  . 'SELECT generate_series FROM generate_series(1,9);',
*************** qr/^COMMENT ON TEXT SEARCH TEMPLATE alt_
*** 2204,2232 ****
  			\n(?:\d\t\\N\t\\N\t\\N\n){9}\\\.\n
  			/xm,
  		like => {
! 			clean                  => 1,
! 			clean_if_exists        => 1,
! 			createdb               => 1,
  			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, },
  		unlike => {
! 			exclude_dump_test_schema => 1,
! 			exclude_test_table       => 1,
! 			exclude_test_table_data  => 1,
! 			role                     => 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);',
--- 1067,1085 ----
  			\n(?:\d\t\\N\t\\N\t\\N\n){9}\\\.\n
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			data_only              => 1,
  			only_dump_test_table   => 1,
! 			section_data           => 1, },
  		unlike => {
! 			binary_upgrade => 1,
! 			exclude_dump_test_schema => 1, 
! 			exclude_test_table => 1,
! 			exclude_test_table_data => 1, 
! 			schema_only => 1, }, },
  
  	'COPY fk_reference_test_table' => {
  		create_order => 22,
  		create_sql => 'INSERT INTO dump_test.fk_reference_test_table (col1) '
  		  . 'SELECT generate_series FROM generate_series(1,5);',
*************** qr/^COMMENT ON TEXT SEARCH TEMPLATE alt_
*** 2235,2278 ****
  			\n(?:\d\n){5}\\\.\n
  			/xm,
  		like => {
! 			clean                   => 1,
! 			clean_if_exists         => 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,
! 			section_data            => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 1, }, },
  
! 	# In a data-only dump, we do 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 test_table (col1, col2, col3, col4) FROM stdin;\E
  			\n(?:\d\t\\N\t\\N\t\\N\n){9}\\\.\n.*
  			\QCOPY fk_reference_test_table (col1) FROM stdin;\E
  			\n(?:\d\n){5}\\\.\n
  			/xms,
! 		like   => { data_only => 1, },
! 		unlike => {}, },
  
  	'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 '
--- 1088,1117 ----
  			\n(?:\d\n){5}\\\.\n
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			data_only               => 1,
  			exclude_test_table      => 1,
  			exclude_test_table_data => 1,
! 			section_data            => 1, },
  		unlike => {
! 			binary_upgrade => 1,
! 			exclude_dump_test_schema => 1, 
! 			schema_only => 1, }, },
  
! 	# 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' => {
  		regexp    => qr/^
  			\QCOPY test_table (col1, col2, col3, col4) FROM stdin;\E
  			\n(?:\d\t\\N\t\\N\t\\N\n){9}\\\.\n.*
  			\QCOPY fk_reference_test_table (col1) FROM stdin;\E
  			\n(?:\d\n){5}\\\.\n
  			/xms,
! 		like   => { data_only => 1, }, },
  
  	'COPY test_second_table' => {
  		create_order => 7,
  		create_sql => 'INSERT INTO dump_test.test_second_table (col1, col2) '
  		  . 'SELECT generate_series, generate_series::text '
*************** qr/^COMMENT ON TEXT SEARCH TEMPLATE alt_
*** 2282,2310 ****
  			\n(?:\d\t\d\n){9}\\\.\n
  			/xm,
  		like => {
! 			clean                   => 1,
! 			clean_if_exists         => 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,
! 			section_data            => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 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) '
--- 1121,1136 ----
  			\n(?:\d\t\d\n){9}\\\.\n
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			data_only               => 1,
! 			section_data            => 1, },
  		unlike => {
! 			binary_upgrade => 1,
! 			exclude_dump_test_schema => 1, 
! 			schema_only => 1, }, },
  
  	'COPY test_third_table' => {
  		create_order => 12,
  		create_sql =>
  		  'INSERT INTO dump_test_second_schema.test_third_table (col1) '
*************** qr/^COMMENT ON TEXT SEARCH TEMPLATE alt_
*** 2314,2369 ****
  			\n(?:\d\n){9}\\\.\n
  			/xm,
  		like => {
! 			clean                    => 1,
! 			clean_if_exists          => 1,
! 			createdb                 => 1,
  			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 => {
  			exclude_test_table_data => 1,
! 			only_dump_test_schema   => 1,
! 			only_dump_test_table    => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 1, }, },
  
  	'COPY test_third_table WITH OIDS' => {
- 		all_runs  => 1,
- 		catch_all => 'COPY ... commands',
  		regexp    => qr/^
  			\QCOPY 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, }, },
  
  	'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;',
--- 1140,1163 ----
  			\n(?:\d\n){9}\\\.\n
  			/xm,
  		like => {
! 			%full_runs,
  			data_only                => 1,
  			role                     => 1,
  			section_data             => 1, },
  		unlike => {
+ 			binary_upgrade => 1,
  			exclude_test_table_data => 1,
! 			schema_only => 1,
! 			with_oids => 1, }, },
  
  	'COPY test_third_table WITH OIDS' => {
  		regexp    => qr/^
  			\QCOPY test_third_table (col1) WITH OIDS FROM stdin;\E
  			\n(?:\d+\t\d\n){9}\\\.\n
  			/xm,
! 		like   => { with_oids => 1, }, },
  
  	'COPY test_fourth_table' => {
  		create_order => 7,
  		create_sql =>
  		  'INSERT INTO dump_test.test_fourth_table DEFAULT VALUES;',
*************** qr/^COMMENT ON TEXT SEARCH TEMPLATE alt_
*** 2372,2400 ****
  			\n\n\\\.\n
  			/xm,
  		like => {
! 			clean                   => 1,
! 			clean_if_exists         => 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,
! 			section_data            => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 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\');',
--- 1166,1181 ----
  			\n\n\\\.\n
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			data_only               => 1,
! 			section_data            => 1, },
  		unlike => {
+ 			binary_upgrade => 1,
  			exclude_dump_test_schema => 1,
! 			schema_only => 1, }, },
  
  	'COPY test_fifth_table' => {
  		create_order => 54,
  		create_sql =>
  'INSERT INTO dump_test.test_fifth_table VALUES (NULL, true, false, \'11001\'::bit(5), \'NaN\');',
*************** qr/^COMMENT ON TEXT SEARCH TEMPLATE alt_
*** 2403,2431 ****
  			\n\\N\tt\tf\t11001\tNaN\n\\\.\n
  			/xm,
  		like => {
! 			clean                   => 1,
! 			clean_if_exists         => 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,
! 			section_data            => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			role                     => 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\');',
--- 1184,1199 ----
  			\n\\N\tt\tf\t11001\tNaN\n\\\.\n
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			data_only               => 1,
! 			section_data            => 1, },
  		unlike => {
+ 			binary_upgrade => 1,
  			exclude_dump_test_schema => 1,
! 			schema_only => 1, }, },
  
  	'COPY test_table_identity' => {
  		create_order => 54,
  		create_sql =>
  'INSERT INTO dump_test.test_table_identity (col2) VALUES (\'test\');',
*************** qr/^COMMENT ON TEXT SEARCH TEMPLATE alt_
*** 2434,2788 ****
  			\n1\ttest\n\\\.\n
  			/xm,
  		like => {
! 			clean                   => 1,
! 			clean_if_exists         => 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,
! 			section_data            => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 1, },
  		unlike => {
  			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, }, },
  
  	'INSERT INTO test_table' => {
- 		all_runs  => 1,
- 		catch_all => 'INSERT INTO ...',
  		regexp    => qr/^
  			(?:INSERT\ INTO\ test_table\ \(col1,\ col2,\ col3,\ col4\)\ VALUES\ \(\d,\ NULL,\ NULL,\ NULL\);\n){9}
  			/xm,
! 		like   => { column_inserts => 1, },
! 		unlike => {}, },
  
  	'INSERT INTO test_second_table' => {
- 		all_runs  => 1,
- 		catch_all => 'INSERT INTO ...',
  		regexp    => qr/^
  			(?:INSERT\ INTO\ test_second_table\ \(col1,\ col2\)
  			   \ VALUES\ \(\d,\ '\d'\);\n){9}/xm,
! 		like   => { column_inserts => 1, },
! 		unlike => {}, },
  
  	'INSERT INTO test_third_table' => {
- 		all_runs  => 1,
- 		catch_all => 'INSERT INTO ...',
  		regexp    => qr/^
  			(?:INSERT\ INTO\ test_third_table\ \(col1\)
  			   \ VALUES\ \(\d\);\n){9}/xm,
! 		like   => { column_inserts => 1, },
! 		unlike => {}, },
  
  	'INSERT INTO test_fourth_table' => {
- 		all_runs  => 1,
- 		catch_all => 'INSERT INTO ...',
  		regexp    => qr/^\QINSERT INTO test_fourth_table DEFAULT VALUES;\E/m,
! 		like      => { column_inserts => 1, },
! 		unlike    => {}, },
  
  	'INSERT INTO test_fifth_table' => {
- 		all_runs  => 1,
- 		catch_all => 'INSERT INTO ...',
  		regexp =>
  qr/^\QINSERT INTO test_fifth_table (col1, col2, col3, col4, col5) VALUES (NULL, true, false, B'11001', 'NaN');\E/m,
! 		like   => { column_inserts => 1, },
! 		unlike => {}, },
  
  	'INSERT INTO test_table_identity' => {
- 		all_runs  => 1,
- 		catch_all => 'INSERT INTO ...',
  		regexp =>
  qr/^\QINSERT INTO 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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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 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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'CREATE AGGREGATE dump_test.newavg' => {
- 		all_runs     => 1,
  		create_order => 25,
  		create_sql   => 'CREATE AGGREGATE dump_test.newavg (
  						  sfunc = int4_avg_accum,
--- 1202,1309 ----
  			\n1\ttest\n\\\.\n
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			data_only               => 1,
! 			section_data            => 1, },
  		unlike => {
+ 			binary_upgrade => 1,
  			exclude_dump_test_schema => 1,
! 			schema_only => 1, }, },
  
  	'INSERT INTO test_table' => {
  		regexp    => qr/^
  			(?:INSERT\ INTO\ test_table\ \(col1,\ col2,\ col3,\ col4\)\ VALUES\ \(\d,\ NULL,\ NULL,\ NULL\);\n){9}
  			/xm,
! 		like   => { column_inserts => 1, }, },
  
  	'INSERT INTO test_second_table' => {
  		regexp    => qr/^
  			(?:INSERT\ INTO\ test_second_table\ \(col1,\ col2\)
  			   \ VALUES\ \(\d,\ '\d'\);\n){9}/xm,
! 		like   => { column_inserts => 1, }, },
  
  	'INSERT INTO test_third_table' => {
  		regexp    => qr/^
  			(?:INSERT\ INTO\ test_third_table\ \(col1\)
  			   \ VALUES\ \(\d\);\n){9}/xm,
! 		like   => { column_inserts => 1, }, },
  
  	'INSERT INTO test_fourth_table' => {
  		regexp    => qr/^\QINSERT INTO test_fourth_table DEFAULT VALUES;\E/m,
! 		like      => { column_inserts => 1, }, },
  
  	'INSERT INTO test_fifth_table' => {
  		regexp =>
  qr/^\QINSERT INTO test_fifth_table (col1, col2, col3, col4, col5) VALUES (NULL, true, false, B'11001', 'NaN');\E/m,
! 		like   => { column_inserts => 1, }, },
  
  	'INSERT INTO test_table_identity' => {
  		regexp =>
  qr/^\QINSERT INTO test_table_identity (col1, col2) OVERRIDING SYSTEM VALUE VALUES (1, 'test');\E/m,
! 		like   => { column_inserts => 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;/m,
  		like         => {
  			pg_dumpall_dbprivs       => 1,
  			pg_dumpall_globals       => 1,
! 			pg_dumpall_globals_clean => 1, }, },
  
  	'CREATE ACCESS METHOD gist2' => {
  		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 => {
! 			%full_runs,
! 			section_pre_data         => 1, }, },
  
  	'CREATE COLLATION test0 FROM "C"' => {
  		create_order => 76,
  		create_sql   => 'CREATE COLLATION test0 FROM "C";',
  		regexp       => qr/^
  		  \QCREATE COLLATION test0 (provider = libc, locale = 'C');\E/xm,
  		collation => 1,
  		like      => {
! 			%full_runs,
! 			section_pre_data         => 1, }, },
  
  	'CREATE CAST FOR timestamptz' => {
  		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 => {
! 			%full_runs,
! 			section_pre_data         => 1, }, },
  
  	'CREATE DATABASE postgres' => {
  		regexp   => qr/^
  			\QCREATE DATABASE postgres WITH TEMPLATE = template0 \E
  			.*;/xm,
! 		like   => { createdb => 1, }, },
  
  	'CREATE DATABASE dump_test' => {
  		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, }, },
  
  	'CREATE EXTENSION ... plpgsql' => {
  		regexp   => qr/^
  			\QCREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;\E
  			/xm,
  		# this shouldn't ever get emitted anymore
! 		like => {}, },
  
  	'CREATE AGGREGATE dump_test.newavg' => {
  		create_order => 25,
  		create_sql   => 'CREATE AGGREGATE dump_test.newavg (
  						  sfunc = int4_avg_accum,
*************** qr/CREATE CAST \(timestamp with time zon
*** 2801,2870 ****
  			\n\s+\QFINALFUNC_MODIFY = SHARABLE\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, },
  		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, }, },
  
  	'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 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, },
  		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, }, },
  
  	'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"
--- 1322,1348 ----
  			\n\s+\QFINALFUNC_MODIFY = SHARABLE\E
  			\n\);/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			exclude_test_table      => 1,
! 			section_pre_data        => 1, }, 
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE CONVERSION dump_test.test_conversion' => {
  		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 test_conversion FOR 'LATIN1' TO 'UTF8' FROM iso8859_1_to_utf8;\E/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE DOMAIN dump_test.us_postal_code' => {
  		create_order => 29,
  		create_sql   => 'CREATE DOMAIN dump_test.us_postal_code AS TEXT
  		               COLLATE "C"
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 2879,2913 ****
  			\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, },
  		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, }, },
  
  	'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\',
--- 1357,1369 ----
  			\Q'::text)));\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE FUNCTION dump_test.pltestlang_call_handler' => {
  		create_order => 17,
  		create_sql   => 'CREATE FUNCTION dump_test.pltestlang_call_handler()
  					   RETURNS LANGUAGE_HANDLER AS \'$libdir/plpgsql\',
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 2920,2954 ****
  			\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, }, },
  
  	'CREATE FUNCTION dump_test.trigger_func' => {
- 		all_runs     => 1,
  		create_order => 30,
  		create_sql   => 'CREATE FUNCTION dump_test.trigger_func()
  					   RETURNS trigger LANGUAGE plpgsql
--- 1376,1388 ----
  			\Qlibdir\/plpgsql', 'plpgsql_call_handler';\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE FUNCTION dump_test.trigger_func' => {
  		create_order => 30,
  		create_sql   => 'CREATE FUNCTION dump_test.trigger_func()
  					   RETURNS trigger LANGUAGE plpgsql
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 2960,2994 ****
  			\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, },
  		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, }, },
  
  	'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
--- 1394,1406 ----
  			\Q BEGIN RETURN NULL; END;\E
  			\$\$;/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE FUNCTION dump_test.event_trigger_func' => {
  		create_order => 32,
  		create_sql   => 'CREATE FUNCTION dump_test.event_trigger_func()
  					   RETURNS event_trigger LANGUAGE plpgsql
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3000,3034 ****
  			\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, },
  		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, }, },
  
  	'CREATE OPERATOR FAMILY dump_test.op_family' => {
- 		all_runs     => 1,
  		create_order => 73,
  		create_sql =>
  		  'CREATE OPERATOR FAMILY dump_test.op_family USING btree;',
--- 1412,1424 ----
  			\Q BEGIN RETURN; END;\E
  			\$\$;/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE OPERATOR FAMILY dump_test.op_family' => {
  		create_order => 73,
  		create_sql =>
  		  'CREATE OPERATOR FAMILY dump_test.op_family USING btree;',
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3036,3070 ****
  			\QCREATE OPERATOR FAMILY 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, },
  		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, }, },
  
  	'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
--- 1426,1438 ----
  			\QCREATE OPERATOR FAMILY op_family USING btree;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE OPERATOR CLASS dump_test.op_class' => {
  		create_order => 74,
  		create_sql   => 'CREATE OPERATOR CLASS dump_test.op_class
  		                 FOR TYPE bigint USING btree FAMILY dump_test.op_family
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3088,3122 ****
  			\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, },
  		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, }, },
  
  	'CREATE EVENT TRIGGER test_event_trigger' => {
- 		all_runs     => 1,
  		create_order => 33,
  		create_sql   => 'CREATE EVENT TRIGGER test_event_trigger
  					   ON ddl_command_start
--- 1456,1468 ----
  			\QFUNCTION 2 (bigint, bigint) btint8sortsupport(internal);\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE EVENT TRIGGER test_event_trigger' => {
  		create_order => 33,
  		create_sql   => 'CREATE EVENT TRIGGER test_event_trigger
  					   ON ddl_command_start
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3127,3161 ****
  			\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, }, },
  
  	'CREATE TRIGGER test_trigger' => {
- 		all_runs     => 1,
  		create_order => 31,
  		create_sql   => 'CREATE TRIGGER test_trigger
  					   BEFORE INSERT ON dump_test.test_table
--- 1473,1482 ----
  			\n\s+\QEXECUTE PROCEDURE dump_test.event_trigger_func();\E
  			/xm,
  		like => {
! 			%full_runs,
! 			section_post_data        => 1, }, },
  
  	'CREATE TRIGGER test_trigger' => {
  		create_order => 31,
  		create_sql   => 'CREATE TRIGGER test_trigger
  					   BEFORE INSERT ON dump_test.test_table
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3167,3201 ****
  			\QEXECUTE PROCEDURE 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,
  			only_dump_test_table    => 1,
! 			pg_dumpall_dbprivs      => 1,
! 			schema_only             => 1,
! 			section_post_data       => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 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, }, },
  
  	'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\' );',
--- 1488,1502 ----
  			\QEXECUTE PROCEDURE trigger_func();\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			only_dump_test_table    => 1,
! 			section_post_data       => 1, },
  		unlike => {
! 			exclude_test_table => 1,
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE TYPE dump_test.planets AS ENUM' => {
  		create_order => 37,
  		create_sql   => 'CREATE TYPE dump_test.planets
  					   AS ENUM ( \'venus\', \'earth\', \'mars\' );',
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3206,3240 ****
  			\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, },
  		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, }, },
  
  	'CREATE TYPE dump_test.planets AS ENUM pg_upgrade' => {
- 		all_runs => 1,
  		regexp   => qr/^
  			\QCREATE TYPE planets AS ENUM (\E
  			\n\);.*^
--- 1507,1520 ----
  			\n\s+'mars'
  			\n\);/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			binary_upgrade => 1,
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE TYPE dump_test.planets AS ENUM pg_upgrade' => {
  		regexp   => qr/^
  			\QCREATE TYPE planets AS ENUM (\E
  			\n\);.*^
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3244,3279 ****
  			\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, }, },
  
  	'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");',
--- 1524,1532 ----
  			\n.*^
  			\QALTER TYPE dump_test.planets ADD VALUE 'mars';\E
  			\n/xms,
! 		like   => { binary_upgrade => 1, }, },
  
  	'CREATE TYPE dump_test.textrange AS RANGE' => {
  		create_order => 38,
  		create_sql   => 'CREATE TYPE dump_test.textrange
  					   AS RANGE (subtype=text, collation="C");',
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3283,3350 ****
  			\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, },
  		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, }, },
  
  	'CREATE TYPE dump_test.int42' => {
- 		all_runs     => 1,
  		create_order => 39,
  		create_sql   => 'CREATE TYPE dump_test.int42;',
  		regexp       => qr/^CREATE TYPE 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, },
  		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, }, },
  
  	'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);',
--- 1536,1559 ----
  			\n\s+\Qcollation = pg_catalog."C"\E
  			\n\);/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE TYPE dump_test.int42' => {
  		create_order => 39,
  		create_sql   => 'CREATE TYPE dump_test.int42;',
  		regexp       => qr/^CREATE TYPE int42;/m,
  		like         => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE TEXT SEARCH CONFIGURATION dump_test.alt_ts_conf1' => {
  		create_order => 80,
  		create_sql =>
  'CREATE TEXT SEARCH CONFIGURATION dump_test.alt_ts_conf1 (copy=english);',
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3352,3386 ****
  			\QCREATE TEXT SEARCH CONFIGURATION 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, },
  		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, }, },
  
  	'ALTER TEXT SEARCH CONFIGURATION dump_test.alt_ts_conf1 ...' => {
- 		all_runs => 1,
  		regexp   => qr/^
  			\QALTER TEXT SEARCH CONFIGURATION alt_ts_conf1\E\n
  			\s+\QADD MAPPING FOR asciiword WITH english_stem;\E\n
--- 1561,1573 ----
  			\QCREATE TEXT SEARCH CONFIGURATION alt_ts_conf1 (\E\n
  			\s+\QPARSER = pg_catalog."default" );\E/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'ALTER TEXT SEARCH CONFIGURATION dump_test.alt_ts_conf1 ...' => {
  		regexp   => qr/^
  			\QALTER TEXT SEARCH CONFIGURATION alt_ts_conf1\E\n
  			\s+\QADD MAPPING FOR asciiword WITH english_stem;\E\n
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3441,3475 ****
  			\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, },
  		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, }, },
  
  	'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);',
--- 1628,1640 ----
  			\n
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE TEXT SEARCH TEMPLATE dump_test.alt_ts_temp1' => {
  		create_order => 81,
  		create_sql =>
  'CREATE TEXT SEARCH TEMPLATE dump_test.alt_ts_temp1 (lexize=dsimple_lexize);',
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3477,3511 ****
  			\QCREATE TEXT SEARCH TEMPLATE 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, },
  		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, }, },
  
  	'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);',
--- 1642,1654 ----
  			\QCREATE TEXT SEARCH TEMPLATE alt_ts_temp1 (\E\n
  			\s+\QLEXIZE = dsimple_lexize );\E/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE TEXT SEARCH PARSER dump_test.alt_ts_prs1' => {
  		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);',
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3517,3551 ****
  			\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, },
  		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, }, },
  
  	'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);',
--- 1660,1672 ----
  			\s+\QLEXTYPES = prsd_lextype );\E\n
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE TEXT SEARCH DICTIONARY dump_test.alt_ts_dict1' => {
  		create_order => 83,
  		create_sql =>
  'CREATE TEXT SEARCH DICTIONARY dump_test.alt_ts_dict1 (template=simple);',
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3554,3588 ****
  			\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, },
  		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, }, },
  
  	'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\'
--- 1675,1687 ----
  			\s+\QTEMPLATE = pg_catalog.simple );\E\n
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE FUNCTION dump_test.int42_in' => {
  		create_order => 40,
  		create_sql   => 'CREATE FUNCTION dump_test.int42_in(cstring)
  					   RETURNS dump_test.int42 AS \'int4in\'
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3593,3627 ****
  			\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, },
  		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, }, },
  
  	'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\'
--- 1692,1704 ----
  			\n\s+AS\ \$\$int4in\$\$;
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE FUNCTION dump_test.int42_out' => {
  		create_order => 41,
  		create_sql   => 'CREATE FUNCTION dump_test.int42_out(dump_test.int42)
  					   RETURNS cstring AS \'int4out\'
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3632,3666 ****
  			\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, },
  		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, }, },
  
  	'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) $$;',
--- 1709,1721 ----
  			\n\s+AS\ \$\$int4out\$\$;
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE PROCEDURE dump_test.ptest1' => {
  		create_order => 41,
  		create_sql   => 'CREATE PROCEDURE dump_test.ptest1(a int)
  					   LANGUAGE SQL AS $$ INSERT INTO dump_test.test_table (col1) VALUES (a) $$;',
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3670,3704 ****
  			\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, }, },
  
  	'CREATE TYPE dump_test.int42 populated' => {
- 		all_runs     => 1,
  		create_order => 42,
  		create_sql   => 'CREATE TYPE dump_test.int42 (
  						   internallength = 4,
--- 1725,1737 ----
  			\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' => {
  		create_order => 42,
  		create_sql   => 'CREATE TYPE dump_test.int42 (
  						   internallength = 4,
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3718,3752 ****
  			\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, },
  		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, }, },
  
  	'CREATE TYPE dump_test.composite' => {
- 		all_runs     => 1,
  		create_order => 43,
  		create_sql   => 'CREATE TYPE dump_test.composite AS (
  						   f1 int,
--- 1751,1763 ----
  			\n\s+PASSEDBYVALUE\n\);
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE TYPE dump_test.composite' => {
  		create_order => 43,
  		create_sql   => 'CREATE TYPE dump_test.composite AS (
  						   f1 int,
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3759,3892 ****
  			\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, },
  		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, }, },
  
  	'CREATE TYPE dump_test.undefined' => {
- 		all_runs     => 1,
  		create_order => 39,
  		create_sql   => 'CREATE TYPE dump_test.undefined;',
  		regexp       => qr/^CREATE TYPE 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, },
  		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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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\'))
--- 1770,1809 ----
  			\n\);
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE TYPE dump_test.undefined' => {
  		create_order => 39,
  		create_sql   => 'CREATE TYPE dump_test.undefined;',
  		regexp       => qr/^CREATE TYPE undefined;/m,
  		like         => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE FOREIGN DATA WRAPPER dummy' => {
  		create_order => 35,
  		create_sql   => 'CREATE FOREIGN DATA WRAPPER dummy;',
  		regexp       => qr/CREATE FOREIGN DATA WRAPPER dummy;/m,
  		like         => {
! 			%full_runs,
! 			section_pre_data         => 1, }, },
  
  	'CREATE SERVER s1 FOREIGN DATA WRAPPER dummy' => {
  		create_order => 36,
  		create_sql   => 'CREATE SERVER s1 FOREIGN DATA WRAPPER dummy;',
  		regexp       => qr/CREATE SERVER s1 FOREIGN DATA WRAPPER dummy;/m,
  		like         => {
! 			%full_runs,
! 			section_pre_data         => 1, }, },
  
  	'CREATE FOREIGN TABLE dump_test.foreign_table SERVER s1' => {
  		create_order => 88,
  		create_sql =>
  'CREATE FOREIGN TABLE dump_test.foreign_table (c1 int options (column_name \'col1\'))
*************** qr/^\QCREATE DEFAULT CONVERSION test_con
*** 3901,4006 ****
  			\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, },
  		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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'CREATE LANGUAGE pltestlang' => {
- 		all_runs     => 1,
- 		catch_all    => 'CREATE ... commands',
  		create_order => 18,
  		create_sql   => 'CREATE LANGUAGE pltestlang
  					   HANDLER dump_test.pltestlang_call_handler;',
--- 1818,1850 ----
  			\Q);\E\n
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE USER MAPPING FOR regress_dump_test_role SERVER s1' => {
  		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 => {
! 			%full_runs,
! 			section_pre_data         => 1, }, },
  
  	'CREATE TRANSFORM FOR int' => {
  		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 => {
! 			%full_runs,
! 			section_pre_data         => 1, }, },
  
  	'CREATE LANGUAGE pltestlang' => {
  		create_order => 18,
  		create_sql   => 'CREATE LANGUAGE pltestlang
  					   HANDLER dump_test.pltestlang_call_handler;',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4009,4041 ****
  			\QHANDLER 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, },
  		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, }, },
  
  	'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;',
--- 1853,1864 ----
  			\QHANDLER pltestlang_call_handler;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE MATERIALIZED VIEW matview' => {
  		create_order => 20,
  		create_sql   => 'CREATE MATERIALIZED VIEW dump_test.matview (col1) AS
  					   SELECT col1 FROM dump_test.test_table;',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4046,4078 ****
  			\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, },
  		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 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
--- 1869,1881 ----
  			\n\s+\QWITH NO DATA;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE MATERIALIZED VIEW matview_second' => {
  		create_order => 21,
  		create_sql   => 'CREATE MATERIALIZED VIEW
  						   dump_test.matview_second (col1) AS
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4084,4116 ****
  			\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, },
  		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 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
--- 1887,1899 ----
  			\n\s+\QWITH NO DATA;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE MATERIALIZED VIEW matview_third' => {
  		create_order => 58,
  		create_sql   => 'CREATE MATERIALIZED VIEW
  						   dump_test.matview_third (col1) AS
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4122,4154 ****
  			\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, },
  		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 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
--- 1905,1917 ----
  			\n\s+\QWITH NO DATA;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE MATERIALIZED VIEW matview_fourth' => {
  		create_order => 59,
  		create_sql   => 'CREATE MATERIALIZED VIEW
  						   dump_test.matview_fourth (col1) AS
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4160,4192 ****
  			\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, },
  		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 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)
--- 1923,1935 ----
  			\n\s+\QWITH NO DATA;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE POLICY p1 ON test_table' => {
  		create_order => 22,
  		create_sql   => 'CREATE POLICY p1 ON dump_test.test_table
  						   USING (true)
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4196,4228 ****
  			\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,
  			only_dump_test_table    => 1,
! 			pg_dumpall_dbprivs      => 1,
! 			schema_only             => 1,
! 			section_post_data       => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 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, }, },
  
  	'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);',
--- 1939,1953 ----
  			\QUSING (true) WITH CHECK (true);\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			only_dump_test_table    => 1,
! 			section_post_data       => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			exclude_test_table => 1, }, },
  
  	'CREATE POLICY p2 ON test_table FOR SELECT' => {
  		create_order => 24,
  		create_sql   => 'CREATE POLICY p2 ON dump_test.test_table
  						   FOR SELECT TO regress_dump_test_role USING (true);',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4231,4263 ****
  			\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,
  			only_dump_test_table    => 1,
! 			pg_dumpall_dbprivs      => 1,
! 			schema_only             => 1,
! 			section_post_data       => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 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, }, },
  
  	'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);',
--- 1956,1970 ----
  			\QUSING (true);\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			only_dump_test_table    => 1,
! 			section_post_data       => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			exclude_test_table => 1, }, },
  
  	'CREATE POLICY p3 ON test_table FOR INSERT' => {
  		create_order => 25,
  		create_sql   => 'CREATE POLICY p3 ON dump_test.test_table
  						   FOR INSERT TO regress_dump_test_role WITH CHECK (true);',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4266,4298 ****
  			\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,
  			only_dump_test_table    => 1,
! 			pg_dumpall_dbprivs      => 1,
! 			schema_only             => 1,
! 			section_post_data       => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 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, }, },
  
  	'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);',
--- 1973,1987 ----
  			\QTO regress_dump_test_role WITH CHECK (true);\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			only_dump_test_table    => 1,
! 			section_post_data       => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			exclude_test_table => 1, }, },
  
  	'CREATE POLICY p4 ON test_table FOR UPDATE' => {
  		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);',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4301,4333 ****
  			\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,
  			only_dump_test_table    => 1,
! 			pg_dumpall_dbprivs      => 1,
! 			schema_only             => 1,
! 			section_post_data       => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 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, }, },
  
  	'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);',
--- 1990,2004 ----
  			\QUSING (true) WITH CHECK (true);\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			only_dump_test_table    => 1,
! 			section_post_data       => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			exclude_test_table => 1, }, },
  
  	'CREATE POLICY p5 ON test_table FOR DELETE' => {
  		create_order => 27,
  		create_sql   => 'CREATE POLICY p5 ON dump_test.test_table
  						   FOR DELETE TO regress_dump_test_role USING (true);',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4336,4368 ****
  			\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,
  			only_dump_test_table    => 1,
! 			pg_dumpall_dbprivs      => 1,
! 			schema_only             => 1,
! 			section_post_data       => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 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, }, },
  
  	'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);',
--- 2007,2021 ----
  			\QTO regress_dump_test_role USING (true);\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			only_dump_test_table    => 1,
! 			section_post_data       => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			exclude_test_table => 1, }, },
  
  	'CREATE POLICY p6 ON test_table AS RESTRICTIVE' => {
  		create_order => 27,
  		create_sql => 'CREATE POLICY p6 ON dump_test.test_table AS RESTRICTIVE
  						   USING (false);',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4371,4436 ****
  			\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,
  			only_dump_test_table    => 1,
! 			pg_dumpall_dbprivs      => 1,
! 			schema_only             => 1,
! 			section_post_data       => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 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, }, },
  
  	'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, }, },
  
  	'CREATE PUBLICATION pub2' => {
- 		all_runs     => 1,
- 		catch_all    => 'CREATE ... commands',
  		create_order => 50,
  		create_sql   => 'CREATE PUBLICATION pub2
  						 FOR ALL TABLES
--- 2024,2048 ----
  			\QUSING (false);\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			only_dump_test_table    => 1,
! 			section_post_data       => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			exclude_test_table => 1, }, },
  
  	'CREATE PUBLICATION pub1' => {
  		create_order => 50,
  		create_sql   => 'CREATE PUBLICATION pub1;',
  		regexp       => qr/^
  			\QCREATE PUBLICATION pub1 WITH (publish = 'insert, update, delete');\E
  			/xm,
  		like => {
! 			%full_runs,
! 			section_post_data        => 1, }, },
  
  	'CREATE PUBLICATION pub2' => {
  		create_order => 50,
  		create_sql   => 'CREATE PUBLICATION pub2
  						 FOR ALL TABLES
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4439,4471 ****
  			\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, }, },
  
  	'CREATE SUBSCRIPTION sub1' => {
- 		all_runs     => 1,
- 		catch_all    => 'CREATE ... commands',
  		create_order => 50,
  		create_sql   => 'CREATE SUBSCRIPTION sub1
  						 CONNECTION \'dbname=doesnotexist\' PUBLICATION pub1
--- 2051,2060 ----
  			\QCREATE PUBLICATION pub2 FOR ALL TABLES WITH (publish = '');\E
  			/xm,
  		like => {
! 			%full_runs,
! 			section_post_data        => 1, }, },
  
  	'CREATE SUBSCRIPTION sub1' => {
  		create_order => 50,
  		create_sql   => 'CREATE SUBSCRIPTION sub1
  						 CONNECTION \'dbname=doesnotexist\' PUBLICATION pub1
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4474,4506 ****
  			\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, }, },
  
  	'ALTER PUBLICATION pub1 ADD TABLE test_table' => {
- 		all_runs     => 1,
  		create_order => 51,
  		create_sql =>
  		  'ALTER PUBLICATION pub1 ADD TABLE dump_test.test_table;',
--- 2063,2072 ----
  			\QCREATE SUBSCRIPTION sub1 CONNECTION 'dbname=doesnotexist' PUBLICATION pub1 WITH (connect = false, slot_name = 'sub1');\E
  			/xm,
  		like => {
! 			%full_runs,
! 			section_post_data        => 1, }, },
  
  	'ALTER PUBLICATION pub1 ADD TABLE test_table' => {
  		create_order => 51,
  		create_sql =>
  		  'ALTER PUBLICATION pub1 ADD TABLE dump_test.test_table;',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4508,4539 ****
  			\QALTER PUBLICATION pub1 ADD TABLE ONLY 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, },
  		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, }, },
  	'ALTER PUBLICATION pub1 ADD TABLE test_second_table' => {
  		create_order => 52,
  		create_sql =>
--- 2074,2085 ----
  			\QALTER PUBLICATION pub1 ADD TABLE ONLY test_table;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			section_post_data       => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			exclude_test_table => 1, }, },
! 
  	'ALTER PUBLICATION pub1 ADD TABLE test_second_table' => {
  		create_order => 52,
  		create_sql =>
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4542,4663 ****
  			\QALTER PUBLICATION pub1 ADD TABLE ONLY 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,
  			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, }, },
  
  	'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, }, },
  
  	'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, },
  		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 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,
  			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, }, },
  
  	'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,
--- 2088,2124 ----
  			\QALTER PUBLICATION pub1 ADD TABLE ONLY test_second_table;\E
  			/xm,
  		like => {
! 			%full_runs,
  			section_post_data       => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE SCHEMA public' => {
  		regexp    => qr/^CREATE SCHEMA public;/m,
  		# this shouldn't ever get emitted anymore
! 		like      => {}, },
  
  	'CREATE SCHEMA dump_test' => {
  		create_order => 2,
  		create_sql   => 'CREATE SCHEMA dump_test;',
  		regexp       => qr/^CREATE SCHEMA dump_test;/m,
  		like         => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE SCHEMA dump_test_second_schema' => {
  		create_order => 9,
  		create_sql   => 'CREATE SCHEMA dump_test_second_schema;',
  		regexp       => qr/^CREATE SCHEMA dump_test_second_schema;/m,
  		like         => {
! 			%full_runs,
  			role                     => 1,
! 			section_pre_data         => 1, }, },
  
  	'CREATE TABLE test_table' => {
  		create_order => 3,
  		create_sql   => 'CREATE TABLE dump_test.test_table (
  						   col1 serial primary key,
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4676,4708 ****
  			\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,
  			only_dump_test_table    => 1,
! 			pg_dumpall_dbprivs      => 1,
! 			schema_only             => 1,
! 			section_pre_data        => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 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, }, },
  
  	'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
--- 2137,2151 ----
  			\Q)\E\n
  			\QWITH (autovacuum_enabled='false', fillfactor='80');\E\n/xm,
  		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, }, },
  
  	'CREATE TABLE fk_reference_test_table' => {
  		create_order => 21,
  		create_sql   => 'CREATE TABLE dump_test.fk_reference_test_table (
  						   col1 int primary key references dump_test.test_table
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4713,4745 ****
  			\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, },
  		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 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,
--- 2156,2168 ----
  			\n\);
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE TABLE test_second_table' => {
  		create_order => 6,
  		create_sql   => 'CREATE TABLE dump_test.test_second_table (
  						   col1 int,
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4752,4784 ****
  			\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, },
  		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 UNLOGGED TABLE test_third_table' => {
! 		all_runs     => 1,
! 		catch_all    => 'CREATE ... commands',
  		create_order => 11,
  		create_sql =>
  		  'CREATE UNLOGGED TABLE dump_test_second_schema.test_third_table (
--- 2175,2187 ----
  			\n\);
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
! 	'CREATE UNLOGGED TABLE test_third_table WITH OIDS' => {
  		create_order => 11,
  		create_sql =>
  		  'CREATE UNLOGGED TABLE dump_test_second_schema.test_third_table (
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4795,4827 ****
  			\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,
  			role                     => 1,
! 			schema_only              => 1,
! 			section_pre_data         => 1,
! 			with_oids                => 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, }, },
  
  	'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,
--- 2198,2211 ----
  			\n\);\n
  			/xm,
  		like => {
! 			%full_runs,
  			role                     => 1,
! 			section_pre_data         => 1, },
  		unlike => {
! 			# FIXME figure out why/how binary upgrade drops OIDs.
! 			binary_upgrade => 1, }, },
  
  	'CREATE TABLE measurement PARTITIONED BY' => {
  		create_order => 90,
  		create_sql   => 'CREATE TABLE dump_test.measurement (
  						city_id int not null,
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4841,4873 ****
  			\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, },
  		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, }, },
  
  	'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
--- 2225,2238 ----
  			\QPARTITION BY RANGE (logdate);\E\n
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			binary_upgrade => 1,
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE TABLE measurement_y2006m2 PARTITION OF' => {
  		create_order => 91,
  		create_sql =>
  		  'CREATE TABLE dump_test_second_schema.measurement_y2006m2
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4880,4912 ****
  			\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,
  			role                     => 1,
! 			schema_only              => 1,
! 			section_pre_data         => 1,
! 			with_oids                => 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, }, },
  
  	'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 (
  					   );',
--- 2245,2257 ----
  			\QFOR VALUES FROM ('2006-02-01') TO ('2006-03-01');\E\n
  			/xm,
  		like => {
! 			%full_runs,
  			role                     => 1,
! 			section_pre_data         => 1, }, 
  		unlike => {
! 			binary_upgrade => 1, }, },
  
  	'CREATE TABLE test_fourth_table_zero_col' => {
  		create_order => 6,
  		create_sql   => 'CREATE TABLE dump_test.test_fourth_table (
  					   );',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4915,4947 ****
  			\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, },
  		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 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,
--- 2260,2272 ----
  			\n\);
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE TABLE test_fifth_table' => {
  		create_order => 53,
  		create_sql   => 'CREATE TABLE dump_test.test_fifth_table (
  							col1 integer,
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 4960,4992 ****
  			\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, },
  		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 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,
--- 2285,2297 ----
  			\n\);
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE TABLE test_table_identity' => {
  		create_order => 3,
  		create_sql   => 'CREATE TABLE dump_test.test_table_identity (
  						   col1 int generated always as identity primary key,
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 5008,5040 ****
  			\);
  			/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, },
  		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 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',
--- 2313,2325 ----
  			\);
  			/xms,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE STATISTICS extended_stats_no_options' => {
  		create_order => 97,
  		create_sql   => 'CREATE STATISTICS dump_test.test_ext_stats_no_options
  							ON col1, col2 FROM dump_test.test_fifth_table',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 5042,5074 ****
  			\QCREATE STATISTICS dump_test.test_ext_stats_no_options ON col1, col2 FROM 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, },
  		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, }, },
  
  	'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',
--- 2327,2339 ----
  			\QCREATE STATISTICS dump_test.test_ext_stats_no_options ON col1, col2 FROM test_fifth_table;\E
  		    /xms,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_post_data       => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE STATISTICS extended_stats_options' => {
  		create_order => 97,
  		create_sql   => 'CREATE STATISTICS dump_test.test_ext_stats_opts
  							(ndistinct) ON col1, col2 FROM dump_test.test_fifth_table',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 5076,5108 ****
  			\QCREATE STATISTICS dump_test.test_ext_stats_opts (ndistinct) ON col1, col2 FROM 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, },
  		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, }, },
  
  	'CREATE SEQUENCE test_table_col1_seq' => {
- 		all_runs  => 1,
- 		catch_all => 'CREATE ... commands',
  		regexp    => qr/^
  			\QCREATE SEQUENCE test_table_col1_seq\E
  			\n\s+\QAS integer\E
--- 2341,2353 ----
  			\QCREATE STATISTICS dump_test.test_ext_stats_opts (ndistinct) ON col1, col2 FROM test_fifth_table;\E
  		    /xms,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_post_data       => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE SEQUENCE test_table_col1_seq' => {
  		regexp    => qr/^
  			\QCREATE SEQUENCE test_table_col1_seq\E
  			\n\s+\QAS integer\E
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 5113,5145 ****
  			\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,
  			only_dump_test_table    => 1,
! 			pg_dumpall_dbprivs      => 1,
! 			schema_only             => 1,
! 			section_pre_data        => 1,
! 			test_schema_plus_blobs  => 1,
! 			with_oids               => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1,
! 			pg_dumpall_globals       => 1,
! 			pg_dumpall_globals_clean => 1,
! 			role                     => 1,
! 			section_post_data        => 1, }, },
  
  	'CREATE SEQUENCE test_third_table_col1_seq' => {
- 		all_runs  => 1,
- 		catch_all => 'CREATE ... commands',
  		regexp    => qr/^
  			\QCREATE SEQUENCE test_third_table_col1_seq\E
  			\n\s+\QAS integer\E
--- 2358,2371 ----
  			\n\s+\QCACHE 1;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			only_dump_test_table    => 1,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE SEQUENCE test_third_table_col1_seq' => {
  		regexp    => qr/^
  			\QCREATE SEQUENCE test_third_table_col1_seq\E
  			\n\s+\QAS integer\E
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 5150,5182 ****
  			\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,
  			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, }, },
  
  	'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);',
--- 2376,2386 ----
  			\n\s+\QCACHE 1;\E
  			/xm,
  		like => {
! 			%full_runs,
  			role                     => 1,
! 			section_pre_data         => 1, }, },
  
  	'CREATE UNIQUE INDEX test_third_table_idx ON test_third_table' => {
  		create_order => 13,
  		create_sql   => 'CREATE UNIQUE INDEX test_third_table_idx
  					   ON dump_test_second_schema.test_third_table (col1);',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 5185,5312 ****
  			\QON 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,
  			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, }, },
  
  	'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/^
  		\QCREATE INDEX measurement_city_id_logdate_idx ON ONLY measurement USING\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, },
  		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, }, },
  
  	'CREATE INDEX ... ON measurement_y2006_m2' => {
- 		all_runs     => 1,
- 		catch_all    => 'CREATE ... commands',
  		regexp       => qr/^
  		\QCREATE INDEX measurement_y2006m2_city_id_logdate_idx ON 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,
  			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, }, },
  
  	'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,
  			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, }, },
  
  	'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
--- 2389,2430 ----
  			\QON test_third_table USING btree (col1);\E
  			/xm,
  		like => {
! 			%full_runs,
  			role                     => 1,
! 			section_post_data        => 1, }, },
  
  	'CREATE INDEX ON ONLY measurement' => {
  		create_order => 92,
  		create_sql   => 'CREATE INDEX ON dump_test.measurement (city_id, logdate);',
  		regexp => qr/^
  		\QCREATE INDEX measurement_city_id_logdate_idx ON ONLY measurement USING\E
  		/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_post_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'CREATE INDEX ... ON measurement_y2006_m2' => {
  		regexp       => qr/^
  		\QCREATE INDEX measurement_y2006m2_city_id_logdate_idx ON measurement_y2006m2 \E
  		/xm,
  		like => {
! 			%full_runs,
  			role                     => 1,
! 			section_post_data        => 1, }, },
  
  	'ALTER INDEX ... ATTACH PARTITION' => {
  		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 => {
! 			%full_runs,
  			role                     => 1,
! 			section_post_data        => 1, }, },
  
  	'CREATE VIEW test_view' => {
  		create_order => 61,
  		create_sql   => 'CREATE VIEW dump_test.test_view
  		                   WITH (check_option = \'local\', security_barrier = true) AS
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 5317,5636 ****
  			\n\s+\QFROM 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, },
  		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, }, },
  
  	'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 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, },
  		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, }, },
  
  	'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, } },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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, }, },
  
  	'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;',
--- 2435,2565 ----
  			\n\s+\QFROM test_table\E
  			\n\s+\QWITH LOCAL CHECK OPTION;\E/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
  	'ALTER VIEW test_view SET DEFAULT' => {
  		create_order => 62,
  		create_sql =>
  		  'ALTER VIEW dump_test.test_view ALTER COLUMN col1 SET DEFAULT 1;',
  		regexp => qr/^
  			\QALTER TABLE ONLY test_view ALTER COLUMN col1 SET DEFAULT 1;\E/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
! 			exclude_dump_test_schema => 1, }, },
  
+ 	# FIXME
  	'DROP SCHEMA public (for testing without public schema)' => {
  		database     => 'regress_pg_dump_test',
  		create_order => 100,
  		create_sql   => 'DROP SCHEMA public;',
  		regexp       => qr/^DROP SCHEMA public;/m,
! 		like         => {}, },
  
  	'DROP SCHEMA public' => {
  		regexp    => qr/^DROP SCHEMA public;/m,
  		# this shouldn't ever get emitted anymore
! 		like      => {}, },
  
  	'DROP SCHEMA IF EXISTS public' => {
  		regexp    => qr/^DROP SCHEMA IF EXISTS public;/m,
  		# this shouldn't ever get emitted anymore
! 		like      => {}, },
  
  	'DROP EXTENSION plpgsql' => {
  		regexp    => qr/^DROP EXTENSION plpgsql;/m,
  		# this shouldn't ever get emitted anymore
! 		like      => {}, },
  
  	'DROP FUNCTION dump_test.pltestlang_call_handler()' => {
  		regexp => qr/^DROP FUNCTION dump_test\.pltestlang_call_handler\(\);/m,
! 		like   => { clean => 1, }, },
  
  	'DROP LANGUAGE pltestlang' => {
  		regexp    => qr/^DROP PROCEDURAL LANGUAGE pltestlang;/m,
! 		like      => { clean => 1, }, },
  
  	'DROP SCHEMA dump_test' => {
  		regexp    => qr/^DROP SCHEMA dump_test;/m,
! 		like      => { clean => 1, }, },
  
  	'DROP SCHEMA dump_test_second_schema' => {
  		regexp    => qr/^DROP SCHEMA dump_test_second_schema;/m,
! 		like      => { clean => 1, }, },
  
  	'DROP TABLE test_table' => {
  		regexp    => qr/^DROP TABLE dump_test\.test_table;/m,
! 		like      => { clean => 1, }, },
  
  	'DROP TABLE fk_reference_test_table' => {
  		regexp    => qr/^DROP TABLE dump_test\.fk_reference_test_table;/m,
! 		like      => { clean => 1, }, },
  
  	'DROP TABLE test_second_table' => {
  		regexp    => qr/^DROP TABLE dump_test\.test_second_table;/m,
! 		like      => { clean => 1, }, },
  
  	'DROP TABLE test_third_table' => {
  		regexp => qr/^DROP TABLE dump_test_second_schema\.test_third_table;/m,
! 		like   => { clean => 1, }, },
  
  	'DROP EXTENSION IF EXISTS plpgsql' => {
  		regexp    => qr/^DROP EXTENSION IF EXISTS plpgsql;/m,
  		# this shouldn't ever get emitted anymore
! 		like      => {}, },
  
  	'DROP FUNCTION IF EXISTS dump_test.pltestlang_call_handler()' => {
  		regexp    => qr/^
  			\QDROP FUNCTION IF EXISTS dump_test.pltestlang_call_handler();\E
  			/xm,
! 		like   => { clean_if_exists => 1, }, },
  
  	'DROP LANGUAGE IF EXISTS pltestlang' => {
  		regexp    => qr/^DROP PROCEDURAL LANGUAGE IF EXISTS pltestlang;/m,
! 		like      => { clean_if_exists => 1, }, },
  
  	'DROP SCHEMA IF EXISTS dump_test' => {
  		regexp    => qr/^DROP SCHEMA IF EXISTS dump_test;/m,
! 		like      => { clean_if_exists => 1, }, },
  
  	'DROP SCHEMA IF EXISTS dump_test_second_schema' => {
  		regexp    => qr/^DROP SCHEMA IF EXISTS dump_test_second_schema;/m,
! 		like      => { clean_if_exists => 1, }, },
  
  	'DROP TABLE IF EXISTS test_table' => {
  		regexp    => qr/^DROP TABLE IF EXISTS dump_test\.test_table;/m,
! 		like      => { clean_if_exists => 1, }, },
  
  	'DROP TABLE IF EXISTS test_second_table' => {
  		regexp    => qr/^DROP TABLE IF EXISTS dump_test\.test_second_table;/m,
! 		like      => { clean_if_exists => 1, }, },
  
  	'DROP TABLE IF EXISTS test_third_table' => {
  		regexp    => qr/^
  			\QDROP TABLE IF EXISTS dump_test_second_schema.test_third_table;\E
  			/xm,
! 		like   => { clean_if_exists => 1, }, },
  
  	'DROP ROLE regress_dump_test_role' => {
  		regexp    => qr/^
  			\QDROP ROLE regress_dump_test_role;\E
  			/xm,
! 		like   => { pg_dumpall_globals_clean => 1, }, },
  
  	'DROP ROLE pg_' => {
  		regexp    => qr/^
  			\QDROP ROLE pg_\E.*;
  			/xm,
! 		# this shouldn't ever get emitted anywhere
! 		like   => {}, },
  
  	'GRANT USAGE ON SCHEMA dump_test_second_schema' => {
  		create_order => 10,
  		create_sql   => 'GRANT USAGE ON SCHEMA dump_test_second_schema
  						   TO regress_dump_test_role;',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 5638,5669 ****
  			\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,
  			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,
! 			test_schema_plus_blobs => 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;',
--- 2567,2579 ----
  			\QGRANT USAGE ON SCHEMA dump_test_second_schema TO regress_dump_test_role;\E
  			/xm,
  		like => {
! 			%full_runs,
  			role                     => 1,
! 			section_pre_data         => 1, },
  		unlike => {
! 			no_privs => 1, }, },
  
  	'GRANT USAGE ON FOREIGN DATA WRAPPER dummy' => {
  		create_order => 85,
  		create_sql   => 'GRANT USAGE ON FOREIGN DATA WRAPPER dummy
  						   TO regress_dump_test_role;',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 5671,5702 ****
  			\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, },
  		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, }, },
  
  	'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;',
--- 2581,2592 ----
  			\QGRANT ALL ON FOREIGN DATA WRAPPER dummy TO regress_dump_test_role;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			section_pre_data         => 1, },
  		unlike => {
! 			no_privs => 1, }, },
  
  	'GRANT USAGE ON FOREIGN SERVER s1' => {
  		create_order => 85,
  		create_sql   => 'GRANT USAGE ON FOREIGN SERVER s1
  						   TO regress_dump_test_role;',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 5704,5735 ****
  			\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, },
  		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, }, },
  
  	'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;',
--- 2594,2605 ----
  			\QGRANT ALL ON FOREIGN SERVER s1 TO regress_dump_test_role;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			section_pre_data         => 1, },
  		unlike => {
! 			no_privs => 1, }, },
  
  	'GRANT USAGE ON DOMAIN dump_test.us_postal_code' => {
  		create_order => 72,
  		create_sql =>
  'GRANT USAGE ON DOMAIN dump_test.us_postal_code TO regress_dump_test_role;',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 5737,5772 ****
  			\QGRANT ALL ON TYPE 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, },
  		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, }, },
  
  	'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;',
--- 2607,2620 ----
  			\QGRANT ALL ON TYPE us_postal_code TO regress_dump_test_role;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			no_privs => 1, }, },
  
  	'GRANT USAGE ON TYPE dump_test.int42' => {
  		create_order => 87,
  		create_sql =>
  		  'GRANT USAGE ON TYPE dump_test.int42 TO regress_dump_test_role;',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 5774,5809 ****
  			\QGRANT ALL ON TYPE 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, },
  		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, }, },
  
  	'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;',
--- 2622,2635 ----
  			\QGRANT ALL ON TYPE int42 TO regress_dump_test_role;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			no_privs => 1, }, },
  
  	'GRANT USAGE ON TYPE dump_test.planets - ENUM' => {
  		create_order => 66,
  		create_sql =>
  		  'GRANT USAGE ON TYPE dump_test.planets TO regress_dump_test_role;',
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 5811,5947 ****
  			\QGRANT ALL ON TYPE 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, },
  		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, }, },
  
  	'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;',
  		regexp => qr/^
  			\QGRANT ALL ON TYPE 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, },
  		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, }, },
  
  	'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, }, },
  
  	'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 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,
  			only_dump_test_table    => 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,
! 			exclude_test_table       => 1,
! 			pg_dumpall_globals       => 1,
! 			role                     => 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
--- 2637,2689 ----
  			\QGRANT ALL ON TYPE planets TO regress_dump_test_role;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			no_privs => 1, }, },
  
  	'GRANT USAGE ON TYPE dump_test.textrange - RANGE' => {
  		create_order => 67,
! 		create_sql => 'GRANT USAGE ON TYPE dump_test.textrange TO regress_dump_test_role;',
  		regexp => qr/^
  			\QGRANT ALL ON TYPE textrange TO regress_dump_test_role;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			no_privs => 1, }, },
  
  	'GRANT CREATE ON DATABASE dump_test' => {
  		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, }, },
  
  	'GRANT SELECT ON TABLE test_table' => {
  		create_order => 5,
  		create_sql   => 'GRANT SELECT ON TABLE dump_test.test_table
  						   TO regress_dump_test_role;',
  		regexp =>
  		  qr/^GRANT SELECT ON TABLE test_table TO regress_dump_test_role;/m,
  		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,
! 			no_privs => 1, }, },
  
  	'GRANT SELECT ON TABLE test_third_table' => {
  		create_order => 19,
  		create_sql   => 'GRANT SELECT ON
  						   TABLE dump_test_second_schema.test_third_table
*************** qr/CREATE TRANSFORM FOR integer LANGUAGE
*** 5949,5980 ****
  		regexp =>
  qr/^GRANT SELECT ON TABLE 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,
  			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,
! 			test_schema_plus_blobs => 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
--- 2691,2703 ----
  		regexp =>
  qr/^GRANT SELECT ON TABLE test_third_table TO regress_dump_test_role;/m,
  		like => {
! 			%full_runs,
  			role                     => 1,
! 			section_pre_data         => 1, },
  		unlike => {
! 			no_privs => 1, }, },
  
  	'GRANT ALL ON SEQUENCE test_third_table_col1_seq' => {
  		create_order => 28,
  		create_sql   => 'GRANT ALL ON SEQUENCE
  						   dump_test_second_schema.test_third_table_col1_seq
*************** qr/^GRANT SELECT ON TABLE test_third_tab
*** 5983,6014 ****
  			\QGRANT ALL ON SEQUENCE 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,
  			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,
! 			test_schema_plus_blobs => 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
--- 2706,2718 ----
  			\QGRANT ALL ON SEQUENCE test_third_table_col1_seq TO regress_dump_test_role;\E
  			/xm,
  		like => {
! 			%full_runs,
  			role                     => 1,
! 			section_pre_data         => 1, },
  		unlike => {
! 			no_privs => 1, }, },
  
  	'GRANT SELECT ON TABLE measurement' => {
  		create_order => 91,
  		create_sql   => 'GRANT SELECT ON
  						   TABLE dump_test.measurement
*************** qr/^GRANT SELECT ON TABLE test_third_tab
*** 6016,6080 ****
  		regexp =>
  		  qr/^GRANT SELECT ON TABLE 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, },
  		unlike => {
- 			column_inserts           => 1,
- 			data_only                => 1,
  			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			pg_dumpall_globals       => 1,
! 			role                     => 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 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,
  			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,
! 			test_schema_plus_blobs => 1, }, },
  
  	'GRANT ALL ON LARGE OBJECT ...' => {
- 		all_runs     => 1,
- 		catch_all    => 'GRANT commands',
  		create_order => 60,
  		create_sql   => 'DO $$
  						 DECLARE myoid oid;
--- 2720,2746 ----
  		regexp =>
  		  qr/^GRANT SELECT ON TABLE measurement TO regress_dump_test_role;/m,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			no_privs => 1, }, },
  
  	'GRANT SELECT ON TABLE measurement_y2006m2' => {
  		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 measurement_y2006m2 TO regress_dump_test_role;/m,
  		like => {
! 			%full_runs,
  			role                     => 1,
! 			section_pre_data         => 1, },
  		unlike => {
! 			no_privs => 1, }, },
  
  	'GRANT ALL ON LARGE OBJECT ...' => {
  		create_order => 60,
  		create_sql   => 'DO $$
  						 DECLARE myoid oid;
*************** qr/^GRANT SELECT ON TABLE measurement_y2
*** 6087,6118 ****
  			\QGRANT ALL ON LARGE OBJECT \E[0-9]+\Q TO regress_dump_test_role;\E
  			/xm,
  		like => {
! 			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_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, }, },
  
  	'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
--- 2753,2770 ----
  			\QGRANT ALL ON LARGE OBJECT \E[0-9]+\Q TO regress_dump_test_role;\E
  			/xm,
  		like => {
! 			%full_runs,
  			column_inserts           => 1,
  			data_only                => 1,
  			section_pre_data         => 1,
  			test_schema_plus_blobs   => 1, },
  		unlike => {
! 			binary_upgrade => 1,
! 			no_blobs => 1,
! 			no_privs => 1, 
! 			schema_only => 1, }, },
  
  	'GRANT INSERT(col1) ON TABLE test_second_table' => {
  		create_order => 8,
  		create_sql =>
  		  'GRANT INSERT (col1) ON TABLE dump_test.test_second_table
*************** qr/^GRANT SELECT ON TABLE measurement_y2
*** 6121,6152 ****
  			\QGRANT INSERT(col1) ON TABLE 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, },
  		unlike => {
- 			column_inserts           => 1,
- 			data_only                => 1,
  			exclude_dump_test_schema => 1,
! 			only_dump_test_table     => 1,
! 			pg_dumpall_globals       => 1,
! 			role                     => 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;',
--- 2773,2786 ----
  			\QGRANT INSERT(col1) ON TABLE test_second_table TO regress_dump_test_role;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_pre_data        => 1, },
  		unlike => {
  			exclude_dump_test_schema => 1,
! 			no_privs => 1, }, },
  
  	'GRANT EXECUTE ON FUNCTION pg_sleep() TO regress_dump_test_role' => {
  		create_order => 16,
  		create_sql   => 'GRANT EXECUTE ON FUNCTION pg_sleep(float8)
  						   TO regress_dump_test_role;',
*************** qr/^GRANT SELECT ON TABLE measurement_y2
*** 6154,6185 ****
  			\QGRANT ALL ON FUNCTION 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, },
  		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, }, },
  
  	'GRANT SELECT (proname ...) ON TABLE pg_proc TO public' => {
- 		all_runs     => 1,
- 		catch_all    => 'GRANT commands',
  		create_order => 46,
  		create_sql   => 'GRANT SELECT (
  						   tableoid,
--- 2788,2799 ----
  			\QGRANT ALL ON FUNCTION pg_sleep(double precision) TO regress_dump_test_role;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			section_pre_data         => 1, },
  		unlike => {
! 			no_privs => 1, }, },
  
  	'GRANT SELECT (proname ...) ON TABLE pg_proc TO public' => {
  		create_order => 46,
  		create_sql   => 'GRANT SELECT (
  						   tableoid,
*************** qr/^GRANT SELECT ON TABLE measurement_y2
*** 6247,6274 ****
  		\QGRANT SELECT(proconfig) ON TABLE pg_proc TO PUBLIC;\E\n.*
  		\QGRANT SELECT(proacl) ON TABLE 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, },
  		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, }, },
  
  	'GRANT USAGE ON SCHEMA public TO public' => {
  		regexp => qr/^
--- 2861,2870 ----
  		\QGRANT SELECT(proconfig) ON TABLE pg_proc TO PUBLIC;\E\n.*
  		\QGRANT SELECT(proacl) ON TABLE pg_proc TO PUBLIC;\E/xms,
  		like => {
! 			%full_runs,
! 			section_pre_data         => 1, },
  		unlike => {
! 			no_privs => 1, }, },
  
  	'GRANT USAGE ON SCHEMA public TO public' => {
  		regexp => qr/^
*************** qr/^GRANT SELECT ON TABLE measurement_y2
*** 6276,6449 ****
  			\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, }, },
  
  	'REFRESH MATERIALIZED VIEW matview' => {
- 		all_runs => 1,
  		regexp   => qr/^REFRESH MATERIALIZED VIEW 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, },
  		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,
! 			schema_only              => 1,
! 			section_data             => 1,
! 			section_pre_data         => 1, }, },
  
  	'REFRESH MATERIALIZED VIEW matview_second' => {
- 		all_runs => 1,
  		regexp   => qr/^
  			\QREFRESH MATERIALIZED VIEW matview;\E
  			\n.*
  			\QREFRESH MATERIALIZED VIEW 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, },
  		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,
! 			schema_only              => 1,
! 			section_data             => 1,
! 			section_pre_data         => 1, }, },
  
  	'REFRESH MATERIALIZED VIEW matview_third' => {
- 		all_runs => 1,
  		regexp   => qr/^
  			\QREFRESH MATERIALIZED VIEW 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, }, },
  
  	'REFRESH MATERIALIZED VIEW matview_fourth' => {
- 		all_runs => 1,
  		regexp   => qr/^
  			\QREFRESH MATERIALIZED VIEW 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, }, },
  
  	'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/^
--- 2872,2920 ----
  			\QGRANT USAGE ON SCHEMA public TO PUBLIC;\E
  			/xm,
  		# this shouldn't ever get emitted anymore
! 		like => {}, },
  
  	'REFRESH MATERIALIZED VIEW matview' => {
  		regexp   => qr/^REFRESH MATERIALIZED VIEW matview;/m,
  		like     => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_post_data       => 1, },
  		unlike => {
! 			binary_upgrade => 1,
  			exclude_dump_test_schema => 1,
! 			schema_only => 1, }, },
  
  	'REFRESH MATERIALIZED VIEW matview_second' => {
  		regexp   => qr/^
  			\QREFRESH MATERIALIZED VIEW matview;\E
  			\n.*
  			\QREFRESH MATERIALIZED VIEW matview_second;\E
  			/xms,
  		like => {
! 			%full_runs,
! 			%dump_test_schema_runs,
! 			section_post_data       => 1, },
  		unlike => {
! 			binary_upgrade => 1,
  			exclude_dump_test_schema => 1,
! 			schema_only => 1, }, },
  
+ 	# FIXME
  	'REFRESH MATERIALIZED VIEW matview_third' => {
  		regexp   => qr/^
  			\QREFRESH MATERIALIZED VIEW matview_third;\E
  			/xms,
! 		like   => {}, },
  
+ 	# FIXME
  	'REFRESH MATERIALIZED VIEW matview_fourth' => {
  		regexp   => qr/^
  			\QREFRESH MATERIALIZED VIEW matview_fourth;\E
  			/xms,
! 		like   => {}, },
  
  	'REVOKE CONNECT ON DATABASE dump_test FROM public' => {
  		create_order => 49,
  		create_sql   => 'REVOKE CONNECT ON DATABASE dump_test FROM public;',
  		regexp       => qr/^
*************** qr/^GRANT SELECT ON TABLE measurement_y2
*** 6451,6483 ****
  			\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, }, },
  
  	'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;',
--- 2922,2930 ----
  			\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, }, },
  
  	'REVOKE EXECUTE ON FUNCTION pg_sleep() FROM public' => {
  		create_order => 15,
  		create_sql   => 'REVOKE EXECUTE ON FUNCTION pg_sleep(float8)
  						   FROM public;',
*************** qr/^GRANT SELECT ON TABLE measurement_y2
*** 6485,6546 ****
  			\QREVOKE ALL ON FUNCTION 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, },
  		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, }, },
  
  	'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_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, },
  		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, }, },
  
  	'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/^
--- 2932,2953 ----
  			\QREVOKE ALL ON FUNCTION pg_sleep(double precision) FROM PUBLIC;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			section_pre_data         => 1, },
  		unlike => {
! 			no_privs => 1, }, },
  
  	'REVOKE SELECT ON TABLE pg_proc FROM public' => {
  		create_order => 45,
  		create_sql   => 'REVOKE SELECT ON TABLE pg_proc FROM public;',
  		regexp       => qr/^REVOKE SELECT ON TABLE pg_proc FROM PUBLIC;/m,
  		like         => {
! 			%full_runs,
! 			section_pre_data         => 1, },
  		unlike => {
! 			no_privs => 1, }, },
  
  	'REVOKE CREATE ON SCHEMA public FROM public' => {
  		create_order => 16,
  		create_sql   => 'REVOKE CREATE ON SCHEMA public FROM public;',
  		regexp       => qr/^
*************** qr/^GRANT SELECT ON TABLE measurement_y2
*** 6548,6615 ****
  			\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, },
  		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, }, },
  
  	'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,
  			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, },
  		unlike => {
! 			pg_dumpall_globals_clean => 1,
! 			section_data             => 1,
! 			section_post_data        => 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
--- 2955,2979 ----
  			\n\QGRANT USAGE ON SCHEMA public TO PUBLIC;\E
  			/xm,
  		like => {
! 			%full_runs,
! 			section_pre_data         => 1, },
  		unlike => {
! 			no_privs => 1, }, },
  
  	'REVOKE USAGE ON LANGUAGE plpgsql FROM public' => {
  		create_order => 16,
  		create_sql   => 'REVOKE USAGE ON LANGUAGE plpgsql FROM public;',
  		regexp       => qr/^REVOKE ALL ON LANGUAGE plpgsql FROM PUBLIC;/m,
  		like         => {
! 			%full_runs,
! 			%dump_test_schema_runs,
  			only_dump_test_table     => 1,
  			role                     => 1,
! 			section_pre_data         => 1, },
  		unlike => {
! 			no_privs => 1, }, },
  
! );
  
  #########################################
  # Create a PG instance to test actually dumping from
*************** foreach my $run (sort keys %pgdump_runs)
*** 6692,6731 ****
  			next;
  		}
  
! 		if ($tests{$test}->{like}->{$test_key})
  		{
  			$num_tests++;
  		}
! 
! 		if ($tests{$test}->{unlike}->{$test_key})
  		{
  			$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;
--- 3056,3071 ----
  			next;
  		}
  
! 		# 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++;
  		}
! 		else
  		{
+ 			# We will test everything that isn't a 'like'
  			$num_tests++;
  		}
  	}
  }
  plan tests => $num_tests;
*************** command_fails_like(
*** 6828,6835 ****
  
  foreach my $run (sort keys %pgdump_runs)
  {
- 
  	my $test_key = $run;
  
  	$node->command_ok(\@{ $pgdump_runs{$run}->{dump_cmd} },
  		"$run: pg_dump runs");
--- 3168,3175 ----
  
  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");
*************** foreach my $run (sort keys %pgdump_runs)
*** 6853,6858 ****
--- 3193,3209 ----
  
  	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}))
*************** foreach my $run (sort keys %pgdump_runs)
*** 6860,6876 ****
  			next;
  		}
  
! 		if ($tests{$test}->{like}->{$test_key})
  		{
! 			like($output_file, $tests{$test}->{regexp}, "$run: dumps $test");
  		}
  
! 		if ($tests{$test}->{unlike}->{$test_key})
  		{
! 			unlike(
! 				$output_file,
  				$tests{$test}->{regexp},
! 				"$run: does not dump $test");
  		}
  	}
  }
--- 3211,3239 ----
  			next;
  		}
  
! 		if ($run_db ne $test_db)
  		{
! 			next;
  		}
  
! 		# 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
! 		{
! 			if (!ok(
! 				$output_file !~
  				$tests{$test}->{regexp},
! 				"$run: should not dump $test"))
! 			{
! 				diag("Review $run results in $tempdir");
! 			}
  		}
  	}
  }
#2Andres Freund
andres@anarazel.de
In reply to: Stephen Frost (#1)
Re: Rewrite of pg_dump TAP tests

Hi,

On 2018-02-26 13:15:04 -0500, Stephen Frost wrote:

Attached is a patch (which applies cleaning against a2a2205, but not so
much anymore, obviously, but I will fix after the releases) which
greatly improves the big pg_dump TAP tests. There's probably more which
can be done, but I expect people will be much happier with this. The
cliff-notes are:

Could you update?

Do you think this should be backpatched so we can backpatch tests when
backpatching fixes?

Greetings,

Andres Freund

#3Stephen Frost
sfrost@snowman.net
In reply to: Andres Freund (#2)
Re: Rewrite of pg_dump TAP tests

Andres,

* Andres Freund (andres@anarazel.de) wrote:

On 2018-02-26 13:15:04 -0500, Stephen Frost wrote:

Attached is a patch (which applies cleaning against a2a2205, but not so
much anymore, obviously, but I will fix after the releases) which
greatly improves the big pg_dump TAP tests. There's probably more which
can be done, but I expect people will be much happier with this. The
cliff-notes are:

Could you update?

Working on it and will provide an update, hopefully by the end of the
weekend.

Do you think this should be backpatched so we can backpatch tests when
backpatching fixes?

That's an interesting question. I hadn't planned to and it wouldn't be
trivial, but if others would like to see these changes back-patched then
I'm willing to put in the work to do it.

Thanks!

Stephen

#4Stephen Frost
sfrost@snowman.net
In reply to: Stephen Frost (#1)
1 attachment(s)
Re: Rewrite of pg_dump TAP tests

Greetings,

* Stephen Frost (sfrost@snowman.net) wrote:

Attached is a patch (which applies cleaning against a2a2205, but not so
much anymore, obviously, but I will fix after the releases) which
greatly improves the big pg_dump TAP tests. There's probably more which
can be done, but I expect people will be much happier with this. The
cliff-notes are:

Attached is an updated patch which applies cleanly against current
master. I've not yet looked into back-patching these changes, but will
if this can get some review and feedback, and folks like this better and
are ok with the same being done in the back-branches.

Thanks!

Stephen

Attachments:

pg_dump_test_rewrite_v2_master.patchtext/x-diff; charset=us-asciiDownload
From f185974ad8b7ddea64764ceb828fed0cb901dd91 Mon Sep 17 00:00:00 2001
From: Stephen Frost <sfrost@snowman.net>
Date: Tue, 6 Mar 2018 10:08:02 -0500
Subject: [PATCH] Rewrite pg_dump TAP tests

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.
---
 src/bin/pg_dump/t/002_pg_dump.pl | 5037 ++++++--------------------------------
 1 file changed, 701 insertions(+), 4336 deletions(-)

diff --git a/src/bin/pg_dump/t/002_pg_dump.pl b/src/bin/pg_dump/t/002_pg_dump.pl
index 1bea6ae81d..acdfde2a1e 100644
--- a/src/bin/pg_dump/t/002_pg_dump.pl
+++ b/src/bin/pg_dump/t/002_pg_dump.pl
@@ -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");
+			}
 		}
 	}
 }
-- 
2.14.1

#5Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Stephen Frost (#4)
Re: Rewrite of pg_dump TAP tests

Stephen Frost wrote:

Greetings,

* Stephen Frost (sfrost@snowman.net) wrote:

Attached is a patch (which applies cleaning against a2a2205, but not so
much anymore, obviously, but I will fix after the releases) which
greatly improves the big pg_dump TAP tests. There's probably more which
can be done, but I expect people will be much happier with this. The
cliff-notes are:

Attached is an updated patch which applies cleanly against current
master. I've not yet looked into back-patching these changes, but will
if this can get some review and feedback, and folks like this better and
are ok with the same being done in the back-branches.

Just looking at the commit message (sql script not dumped to screen),
and the fact that this removes the bulk of the like/unlike arrays, I'd
say this is a definite improvement over the existing tests.

Perhaps we'd like to tweak more later, but this is a good step forward
IMO.

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#6Michael Paquier
michael@paquier.xyz
In reply to: Stephen Frost (#4)
Re: Rewrite of pg_dump TAP tests

On Tue, Mar 06, 2018 at 11:53:41AM -0500, Stephen Frost wrote:

Greetings,

* Stephen Frost (sfrost@snowman.net) wrote:

Attached is a patch (which applies cleaning against a2a2205, but not so
much anymore, obviously, but I will fix after the releases) which
greatly improves the big pg_dump TAP tests. There's probably more which
can be done, but I expect people will be much happier with this. The
cliff-notes are:

Attached is an updated patch which applies cleanly against current
master. I've not yet looked into back-patching these changes, but will
if this can get some review and feedback, and folks like this better and
are ok with the same being done in the back-branches.

It would be nice to improve the readability of test_pg_dump's
001_base.pl at the same time by using similarly a hash syntax for common
options.
--
Michael

#7Stephen Frost
sfrost@snowman.net
In reply to: Michael Paquier (#6)
Re: Rewrite of pg_dump TAP tests

Michael,

* Michael Paquier (michael@paquier.xyz) wrote:

On Tue, Mar 06, 2018 at 11:53:41AM -0500, Stephen Frost wrote:

* Stephen Frost (sfrost@snowman.net) wrote:

Attached is a patch (which applies cleaning against a2a2205, but not so
much anymore, obviously, but I will fix after the releases) which
greatly improves the big pg_dump TAP tests. There's probably more which
can be done, but I expect people will be much happier with this. The
cliff-notes are:

Attached is an updated patch which applies cleanly against current
master. I've not yet looked into back-patching these changes, but will
if this can get some review and feedback, and folks like this better and
are ok with the same being done in the back-branches.

It would be nice to improve the readability of test_pg_dump's
001_base.pl at the same time by using similarly a hash syntax for common
options.

Yes, good point, will fix.

Thanks!

Stephen

#8Stephen Frost
sfrost@snowman.net
In reply to: Stephen Frost (#7)
1 attachment(s)
Re: Rewrite of pg_dump TAP tests

Greetings,

* Stephen Frost (sfrost@snowman.net) wrote:

* Michael Paquier (michael@paquier.xyz) wrote:

On Tue, Mar 06, 2018 at 11:53:41AM -0500, Stephen Frost wrote:

* Stephen Frost (sfrost@snowman.net) wrote:

Attached is a patch (which applies cleaning against a2a2205, but not so
much anymore, obviously, but I will fix after the releases) which
greatly improves the big pg_dump TAP tests. There's probably more which
can be done, but I expect people will be much happier with this. The
cliff-notes are:

Attached is an updated patch which applies cleanly against current
master. I've not yet looked into back-patching these changes, but will
if this can get some review and feedback, and folks like this better and
are ok with the same being done in the back-branches.

It would be nice to improve the readability of test_pg_dump's
001_base.pl at the same time by using similarly a hash syntax for common
options.

Yes, good point, will fix.

I've updated those tests as well and rebased the patch (though no real
changes were needed for the rebase). Passes all tests. I'll take
another look through the changes again but plan to push them in a few
hours, later on this afternoon.

Thanks!

Stephen

Attachments:

pg_dump_test_rewrite-v2_master.patchtext/x-diff; charset=us-asciiDownload
From fa24c01cfa5a48ba91ecc69f0fac89fd91334177 Mon Sep 17 00:00:00 2001
From: Stephen Frost <sfrost@snowman.net>
Date: Tue, 6 Mar 2018 10:08:02 -0500
Subject: [PATCH] Rewrite pg_dump TAP tests

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            | 5037 ++++-----------------------
 src/test/modules/test_pg_dump/t/001_base.pl |  443 +--
 2 files changed, 780 insertions(+), 4700 deletions(-)

diff --git a/src/bin/pg_dump/t/002_pg_dump.pl b/src/bin/pg_dump/t/002_pg_dump.pl
index 1bea6ae81d..acdfde2a1e 100644
--- a/src/bin/pg_dump/t/002_pg_dump.pl
+++ b/src/bin/pg_dump/t/002_pg_dump.pl
@@ -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");
+			}
 		}
 	}
 }
diff --git a/src/test/modules/test_pg_dump/t/001_base.pl b/src/test/modules/test_pg_dump/t/001_base.pl
index fca00c6478..2bc4787871 100644
--- a/src/test/modules/test_pg_dump/t/001_base.pl
+++ b/src/test/modules/test_pg_dump/t/001_base.pl
@@ -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");
+			}
 		}
 	}
 }
-- 
2.14.1

#9Michael Paquier
michael@paquier.xyz
In reply to: Stephen Frost (#8)
Re: Rewrite of pg_dump TAP tests

On Wed, Apr 04, 2018 at 10:25:03AM -0400, Stephen Frost wrote:

I've updated those tests as well and rebased the patch (though no real
changes were needed for the rebase). Passes all tests. I'll take
another look through the changes again but plan to push them in a few
hours, later on this afternoon.

Okay, I can see that those have been pushed as 446f7f5.
--
Michael