From 446f7f5d789fe9ecfacd998407b5bee70aaa64f7 Mon Sep 17 00:00:00 2001 From: Stephen Frost Date: Wed, 4 Apr 2018 15:26:51 -0400 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 | 5009 +++---------------- src/test/modules/test_pg_dump/t/001_base.pl | 443 +- 2 files changed, 766 insertions(+), 4686 deletions(-) diff --git a/src/bin/pg_dump/t/002_pg_dump.pl b/src/bin/pg_dump/t/002_pg_dump.pl index 1bea6ae81db..acdfde2a1e8 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, + no_owner => 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, }, }, - '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\', @@ -2920,35 +1378,13 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8' \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, }, + %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.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,35 +1711,13 @@ 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) $$;', @@ -3670,35 +1727,13 @@ qr/^\QCREATE DEFAULT CONVERSION dump_test.test_conversion FOR 'LATIN1' TO 'UTF8' \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, }, + %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 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 @@ -4880,33 +2247,13 @@ qr/CREATE TRANSFORM FOR integer LANGUAGE sql \(FROM SQL WITH FUNCTION pg_catalog \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, + %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})) { - unlike( - $output_file, + 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: 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 fca00c64787..2bc47878716 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"); + } } } }