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"); + } } } }