From 3be0a62ffe58f0753d190cbe22acbeb8b4926b85 Mon Sep 17 00:00:00 2001 From: Noah Misch Date: Sun, 12 Jun 2016 04:19:56 -0400 Subject: [PATCH] Finish pgindent run for 9.6: Perl files. --- contrib/bloom/t/001_wal.pl | 15 +- .../storage/lmgr/generate-lwlocknames.pl | 8 +- src/backend/utils/Gen_dummy_probes.pl | 1 + src/backend/utils/mb/Unicode/UCS_to_SJIS.pl | 4 +- src/bin/pg_basebackup/t/010_pg_basebackup.pl | 3 +- src/bin/pg_dump/t/001_basic.pl | 20 +- src/bin/pg_dump/t/002_pg_dump.pl | 3170 +++++++---------- src/bin/pg_rewind/RewindTest.pm | 1 + src/interfaces/ecpg/preproc/parse.pl | 4 +- src/test/modules/commit_ts/t/001_base.pl | 12 +- src/test/modules/commit_ts/t/002_standby.pl | 34 +- src/test/modules/commit_ts/t/003_standby_2.pl | 28 +- src/test/modules/test_pg_dump/t/001_base.pl | 458 +-- src/test/perl/PostgresNode.pm | 11 +- src/test/perl/RecursiveCopy.pm | 5 +- src/test/perl/TestLib.pm | 1 + src/test/recovery/t/001_stream_rep.pl | 9 +- src/test/recovery/t/002_archiving.pl | 3 +- src/test/recovery/t/003_recovery_targets.pl | 3 +- src/test/recovery/t/004_timeline_switch.pl | 4 +- src/test/recovery/t/005_replay_delay.pl | 14 +- src/test/recovery/t/007_sync_rep.pl | 33 +- src/tools/copyright.pl | 4 +- src/tools/git_changelog | 42 +- src/tools/msvc/Install.pm | 3 +- src/tools/msvc/Mkvcbuild.pm | 22 +- src/tools/msvc/Solution.pm | 16 +- src/tools/msvc/build.pl | 3 +- src/tools/msvc/config_default.pl | 2 +- src/tools/msvc/pgflex.pl | 4 +- src/tools/msvc/vcregress.pl | 39 +- 31 files changed, 1784 insertions(+), 2192 deletions(-) diff --git a/contrib/bloom/t/001_wal.pl b/contrib/bloom/t/001_wal.pl index dbb6a905b6..56c6618d3d 100644 --- a/contrib/bloom/t/001_wal.pl +++ b/contrib/bloom/t/001_wal.pl @@ -16,7 +16,7 @@ sub test_index_replay # Wait for standby to catch up my $applname = $node_standby->name; my $caughtup_query = - "SELECT pg_current_xlog_location() <= write_location FROM pg_stat_replication WHERE application_name = '$applname';"; +"SELECT pg_current_xlog_location() <= write_location FROM pg_stat_replication WHERE application_name = '$applname';"; $node_master->poll_query_until('postgres', $caughtup_query) or die "Timed out while waiting for standby 1 to catch up"; @@ -56,20 +56,25 @@ $node_standby->start; # Create some bloom index on master $node_master->psql("postgres", "CREATE EXTENSION bloom;"); $node_master->psql("postgres", "CREATE TABLE tst (i int4, t text);"); -$node_master->psql("postgres", "INSERT INTO tst SELECT i%10, substr(md5(i::text), 1, 1) FROM generate_series(1,100000) i;"); -$node_master->psql("postgres", "CREATE INDEX bloomidx ON tst USING bloom (i, t) WITH (col1 = 3);"); +$node_master->psql("postgres", +"INSERT INTO tst SELECT i%10, substr(md5(i::text), 1, 1) FROM generate_series(1,100000) i;" +); +$node_master->psql("postgres", + "CREATE INDEX bloomidx ON tst USING bloom (i, t) WITH (col1 = 3);"); # Test that queries give same result test_index_replay('initial'); # Run 10 cycles of table modification. Run test queries after each modification. -for my $i (1..10) +for my $i (1 .. 10) { $node_master->psql("postgres", "DELETE FROM tst WHERE i = $i;"); test_index_replay("delete $i"); $node_master->psql("postgres", "VACUUM tst;"); test_index_replay("vacuum $i"); my ($start, $end) = (100001 + ($i - 1) * 10000, 100000 + $i * 10000); - $node_master->psql("postgres", "INSERT INTO tst SELECT i%10, substr(md5(i::text), 1, 1) FROM generate_series($start,$end) i;"); + $node_master->psql("postgres", +"INSERT INTO tst SELECT i%10, substr(md5(i::text), 1, 1) FROM generate_series($start,$end) i;" + ); test_index_replay("insert $i"); } diff --git a/src/backend/storage/lmgr/generate-lwlocknames.pl b/src/backend/storage/lmgr/generate-lwlocknames.pl index c22fbb6cbb..f79d17ca70 100644 --- a/src/backend/storage/lmgr/generate-lwlocknames.pl +++ b/src/backend/storage/lmgr/generate-lwlocknames.pl @@ -7,7 +7,7 @@ use warnings; use strict; my $lastlockidx = -1; -my $continue = "\n"; +my $continue = "\n"; open my $lwlocknames, $ARGV[0] or die; @@ -18,7 +18,7 @@ open H, '>', $htmp or die "Could not open $htmp: $!"; open C, '>', $ctmp or die "Could not open $ctmp: $!"; my $autogen = - "/* autogenerated from src/backend/storage/lmgr/lwlocknames.txt, do not edit */\n"; +"/* autogenerated from src/backend/storage/lmgr/lwlocknames.txt, do not edit */\n"; print H $autogen; print H "/* there is deliberately not an #ifndef LWLOCKNAMES_H here */\n\n"; print C $autogen, "\n"; @@ -38,7 +38,7 @@ while (<$lwlocknames>) (my $lockname, my $lockidx) = ($1, $2); - die "lwlocknames.txt not in order" if $lockidx < $lastlockidx; + die "lwlocknames.txt not in order" if $lockidx < $lastlockidx; die "lwlocknames.txt has duplicates" if $lockidx == $lastlockidx; while ($lastlockidx < $lockidx - 1) @@ -49,7 +49,7 @@ while (<$lwlocknames>) } printf C "%s \"%s\"", $continue, $lockname; $lastlockidx = $lockidx; - $continue = ",\n"; + $continue = ",\n"; print H "#define $lockname (&MainLWLockArray[$lockidx].lock)\n"; } diff --git a/src/backend/utils/Gen_dummy_probes.pl b/src/backend/utils/Gen_dummy_probes.pl index 0499a4cbc9..318d828c29 100644 --- a/src/backend/utils/Gen_dummy_probes.pl +++ b/src/backend/utils/Gen_dummy_probes.pl @@ -224,6 +224,7 @@ sub printQ() { if (ref($q)) { + # flush open w files so that reading this file gets it all if (exists($wFiles{$$q}) && $wFiles{$$q} ne '') { diff --git a/src/backend/utils/mb/Unicode/UCS_to_SJIS.pl b/src/backend/utils/mb/Unicode/UCS_to_SJIS.pl index de05649a33..10e54b157d 100755 --- a/src/backend/utils/mb/Unicode/UCS_to_SJIS.pl +++ b/src/backend/utils/mb/Unicode/UCS_to_SJIS.pl @@ -54,8 +54,8 @@ while () || ( ($code >= 0x879a) && ($code <= 0x879c))) { - printf STDERR - "Warning: duplicate UTF8: UCS=0x%04x SJIS=0x%04x\n", $ucs, + printf STDERR "Warning: duplicate UTF8: UCS=0x%04x SJIS=0x%04x\n", + $ucs, $code; next; } diff --git a/src/bin/pg_basebackup/t/010_pg_basebackup.pl b/src/bin/pg_basebackup/t/010_pg_basebackup.pl index f4769bf535..6c33936d25 100644 --- a/src/bin/pg_basebackup/t/010_pg_basebackup.pl +++ b/src/bin/pg_basebackup/t/010_pg_basebackup.pl @@ -114,7 +114,8 @@ SKIP: mkdir "$tempdir/tblspc1"; $node->safe_psql('postgres', "CREATE TABLESPACE tblspc1 LOCATION '$shorter_tempdir/tblspc1';"); - $node->safe_psql('postgres', "CREATE TABLE test1 (a int) TABLESPACE tblspc1;"); + $node->safe_psql('postgres', + "CREATE TABLE test1 (a int) TABLESPACE tblspc1;"); $node->command_ok([ 'pg_basebackup', '-D', "$tempdir/tarbackup2", '-Ft' ], 'tar format with tablespaces'); ok(-f "$tempdir/tarbackup2/base.tar", 'backup tar was created'); diff --git a/src/bin/pg_dump/t/001_basic.pl b/src/bin/pg_dump/t/001_basic.pl index 1411ef7a27..6d545b29e2 100644 --- a/src/bin/pg_dump/t/001_basic.pl +++ b/src/bin/pg_dump/t/001_basic.pl @@ -23,14 +23,22 @@ program_options_handling_ok('pg_dump'); command_exit_is([ 'pg_dump', 'qqq', 'abc' ], 1, 'pg_dump: too many command-line arguments (first is "asd")'); -command_exit_is([ 'pg_dump', '-s', '-a' ], - 1, 'pg_dump: options -s/--schema-only and -a/--data-only cannot be used together'); +command_exit_is( + [ 'pg_dump', '-s', '-a' ], + 1, +'pg_dump: options -s/--schema-only and -a/--data-only cannot be used together' +); -command_exit_is([ 'pg_dump', '-c', '-a' ], - 1, 'pg_dump: options -c/--clean and -a/--data-only cannot be used together'); +command_exit_is( + [ 'pg_dump', '-c', '-a' ], + 1, + 'pg_dump: options -c/--clean and -a/--data-only cannot be used together'); -command_exit_is([ 'pg_dump', '--inserts', '-o' ], - 1, 'pg_dump: options --inserts/--column-inserts and -o/--oids cannot be used together'); +command_exit_is( + [ 'pg_dump', '--inserts', '-o' ], + 1, +'pg_dump: options --inserts/--column-inserts and -o/--oids cannot be used together' +); command_exit_is([ 'pg_dump', '--if-exists' ], 1, 'pg_dump: option --if-exists requires option -c/--clean'); diff --git a/src/bin/pg_dump/t/002_pg_dump.pl b/src/bin/pg_dump/t/002_pg_dump.pl index 3c6859912f..fd4b9e80a2 100644 --- a/src/bin/pg_dump/t/002_pg_dump.pl +++ b/src/bin/pg_dump/t/002_pg_dump.pl @@ -42,242 +42,146 @@ my %pgdump_runs = ( '-f', "$tempdir/binary_upgrade.sql", '--schema-only', '--binary-upgrade', - '-d', 'postgres', # alternative way to specify database - ], - }, + '-d', 'postgres', # alternative way to specify database + ], }, clean => { dump_cmd => [ 'pg_dump', '-f', "$tempdir/clean.sql", '-c', - '-d', 'postgres', # alternative way to specify database - ], - }, + '-d', 'postgres', # alternative way to specify database + ], }, clean_if_exists => { dump_cmd => [ 'pg_dump', '-f', "$tempdir/clean_if_exists.sql", '-c', '--if-exists', - '-E', 'UTF8', # no-op, just tests that option is accepted - 'postgres', - ], - }, + '-E', 'UTF8', # no-op, just tests that option is accepted + 'postgres', ], }, column_inserts => { dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/column_inserts.sql", - '-a', - '--column-inserts', - 'postgres', - ], - }, + 'pg_dump', '-f', + "$tempdir/column_inserts.sql", '-a', + '--column-inserts', 'postgres', ], }, createdb => { dump_cmd => [ 'pg_dump', '-f', "$tempdir/createdb.sql", '-C', - '-R', # no-op, just for testing - 'postgres', - ], - }, + '-R', # no-op, just for testing + 'postgres', ], }, data_only => { dump_cmd => [ 'pg_dump', '-f', "$tempdir/data_only.sql", '-a', - '-v', # no-op, just make sure it works - 'postgres', - ], - }, + '-v', # no-op, just make sure it works + 'postgres', ], }, defaults => { - dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/defaults.sql", - 'postgres', - ], + dump_cmd => [ 'pg_dump', '-f', "$tempdir/defaults.sql", 'postgres', ], }, defaults_custom_format => { test_key => 'defaults', dump_cmd => [ - 'pg_dump', - '-Fc', - '-Z6', - '-f', "$tempdir/defaults_custom_format.dump", - 'postgres', - ], + 'pg_dump', '-Fc', '-Z6', '-f', + "$tempdir/defaults_custom_format.dump", 'postgres', ], restore_cmd => [ 'pg_restore', - '-f', "$tempdir/defaults_custom_format.sql", - "$tempdir/defaults_custom_format.dump", - ], - }, + '-f', + "$tempdir/defaults_custom_format.sql", + "$tempdir/defaults_custom_format.dump", ], }, defaults_dir_format => { test_key => 'defaults', dump_cmd => [ - 'pg_dump', - '-Fd', - '-f', "$tempdir/defaults_dir_format", - 'postgres', - ], + 'pg_dump', '-Fd', '-f', "$tempdir/defaults_dir_format", + 'postgres', ], restore_cmd => [ 'pg_restore', - '-f', "$tempdir/defaults_dir_format.sql", - "$tempdir/defaults_dir_format", - ], - }, + '-f', + "$tempdir/defaults_dir_format.sql", + "$tempdir/defaults_dir_format", ], }, defaults_parallel => { test_key => 'defaults', dump_cmd => [ - 'pg_dump', - '-Fd', - '-j2', - '-f', "$tempdir/defaults_parallel", - 'postgres', - ], + 'pg_dump', '-Fd', '-j2', '-f', "$tempdir/defaults_parallel", + 'postgres', ], restore_cmd => [ - 'pg_restore', - '-f', "$tempdir/defaults_parallel.sql", - "$tempdir/defaults_parallel", - ], + 'pg_restore', '-f', + "$tempdir/defaults_parallel.sql", "$tempdir/defaults_parallel", ], }, defaults_tar_format => { test_key => 'defaults', dump_cmd => [ - 'pg_dump', - '-Ft', - '-f', "$tempdir/defaults_tar_format.tar", - 'postgres', - ], + 'pg_dump', '-Ft', '-f', "$tempdir/defaults_tar_format.tar", + 'postgres', ], restore_cmd => [ 'pg_restore', - '-f', "$tempdir/defaults_tar_format.sql", - "$tempdir/defaults_tar_format.tar", - ], - }, + '-f', + "$tempdir/defaults_tar_format.sql", + "$tempdir/defaults_tar_format.tar", ], }, exclude_dump_test_schema => { dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/exclude_dump_test_schema.sql", - '-N', 'dump_test', - 'postgres', - ], - }, + 'pg_dump', '-f', "$tempdir/exclude_dump_test_schema.sql", + '-N', 'dump_test', 'postgres', ], }, exclude_test_table => { dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/exclude_test_table.sql", - '-T', 'dump_test.test_table', - 'postgres', - ], - }, + 'pg_dump', '-f', + "$tempdir/exclude_test_table.sql", '-T', + 'dump_test.test_table', 'postgres', ], }, exclude_test_table_data => { dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/exclude_test_table_data.sql", - '--exclude-table-data=dump_test.test_table', - 'postgres', - ], - }, + 'pg_dump', '-f', + "$tempdir/exclude_test_table_data.sql", + '--exclude-table-data=dump_test.test_table', 'postgres', ], }, pg_dumpall_globals => { - dump_cmd => [ - 'pg_dumpall', - '-f', "$tempdir/pg_dumpall_globals.sql", - '-g', - ], - }, + dump_cmd => + [ 'pg_dumpall', '-f', "$tempdir/pg_dumpall_globals.sql", '-g', ], }, pg_dumpall_globals_clean => { dump_cmd => [ - 'pg_dumpall', - '-f', "$tempdir/pg_dumpall_globals_clean.sql", - '-g', - '-c', - ], - }, + 'pg_dumpall', '-f', "$tempdir/pg_dumpall_globals_clean.sql", + '-g', '-c', ], }, no_privs => { - dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/no_privs.sql", - '-x', - 'postgres', - ], - }, + dump_cmd => + [ 'pg_dump', '-f', "$tempdir/no_privs.sql", '-x', 'postgres', ], }, no_owner => { - dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/no_owner.sql", - '-O', - 'postgres', - ], - }, + dump_cmd => + [ 'pg_dump', '-f', "$tempdir/no_owner.sql", '-O', 'postgres', ], }, only_dump_test_schema => { dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/only_dump_test_schema.sql", - '-n', 'dump_test', - 'postgres', - ], - }, + 'pg_dump', '-f', "$tempdir/only_dump_test_schema.sql", + '-n', 'dump_test', 'postgres', ], }, only_dump_test_table => { dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/only_dump_test_table.sql", - '-t', 'dump_test.test_table', - '--lock-wait-timeout=1000000', - 'postgres', - ], - }, + 'pg_dump', '-f', "$tempdir/only_dump_test_table.sql", + '-t', 'dump_test.test_table', '--lock-wait-timeout=1000000', + 'postgres', ], }, role => { dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/role.sql", - '--role=dump_test', - '--schema=dump_test_second_schema', - 'postgres', - ], - }, + 'pg_dump', '-f', + "$tempdir/role.sql", '--role=dump_test', + '--schema=dump_test_second_schema', 'postgres', ], }, schema_only => { - dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/schema_only.sql", - '-s', - 'postgres', - ], + dump_cmd => + [ 'pg_dump', '-f', "$tempdir/schema_only.sql", '-s', 'postgres', ], }, section_pre_data => { dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/section_pre_data.sql", - '--section=pre-data', - 'postgres', - ], - }, + 'pg_dump', '-f', "$tempdir/section_pre_data.sql", + '--section=pre-data', 'postgres', ], }, section_data => { dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/section_data.sql", - '--section=data', - 'postgres', - ], - }, + 'pg_dump', '-f', + "$tempdir/section_data.sql", '--section=data', + 'postgres', ], }, section_post_data => { dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/section_post_data.sql", - '--section=post-data', - 'postgres', - ], - }, + 'pg_dump', '-f', "$tempdir/section_post_data.sql", + '--section=post-data', 'postgres', ], }, test_schema_plus_blobs => { dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/test_schema_plus_blobs.sql", - '-n', 'dump_test', - '-b', - 'postgres', - ], - }, -); + 'pg_dump', '-f', "$tempdir/test_schema_plus_blobs.sql", + '-n', 'dump_test', '-b', 'postgres', ], },); ############################################################### # Definition of the tests to run. @@ -319,7 +223,7 @@ my %pgdump_runs = ( my %tests = ( 'ALTER DEFAULT PRIVILEGES FOR ROLE dump_test' => { create_order => 14, - create_sql => 'ALTER DEFAULT PRIVILEGES + create_sql => 'ALTER DEFAULT PRIVILEGES FOR ROLE dump_test IN SCHEMA dump_test GRANT SELECT ON TABLES TO dump_test;', regexp => qr/^ @@ -328,28 +232,25 @@ my %tests = ( \QGRANT SELECT ON TABLES TO dump_test;\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 1, + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, + exclude_test_table => 1, exclude_test_table_data => 1, - only_dump_test_schema => 1, - schema_only => 1, - section_post_data => 1, - test_schema_plus_blobs => 1, - }, + only_dump_test_schema => 1, + schema_only => 1, + section_post_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - no_privs => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + no_privs => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_pre_data => 1, - section_data => 1, - }, - }, + section_pre_data => 1, + section_data => 1, }, }, 'ALTER ROLE dump_test' => { regexp => qr/^ \QALTER ROLE dump_test WITH \E @@ -357,483 +258,427 @@ my %tests = ( \QNOREPLICATION NOBYPASSRLS;\E /xm, like => { - pg_dumpall_globals => 1, - pg_dumpall_globals_clean => 1, - }, + pg_dumpall_globals => 1, + pg_dumpall_globals_clean => 1, }, unlike => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + 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_owner => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - schema_only => 1, - section_pre_data => 1, - section_post_data => 1, - test_schema_plus_blobs => 1, - }, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + schema_only => 1, + section_pre_data => 1, + section_post_data => 1, + test_schema_plus_blobs => 1, }, }, 'ALTER FUNCTION dump_test.pltestlang_call_handler() OWNER TO' => { regexp => qr/^ \QALTER FUNCTION dump_test.pltestlang_call_handler() \E \QOWNER TO \E .*;/xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 1, + 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - }, - }, + only_dump_test_table => 1, }, }, 'ALTER PROCEDURAL LANGUAGE pltestlang OWNER TO' => { regexp => qr/^ALTER PROCEDURAL LANGUAGE pltestlang OWNER TO .*;/m, - like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 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_privs => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - test_schema_plus_blobs => 1, - }, - }, + only_dump_test_schema => 1, + only_dump_test_table => 1, + test_schema_plus_blobs => 1, }, }, 'ALTER SCHEMA dump_test OWNER TO' => { 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, + 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - }, - }, + only_dump_test_table => 1, }, }, 'ALTER SCHEMA dump_test_second_schema OWNER TO' => { 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, + 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, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - test_schema_plus_blobs => 1, - }, - }, + only_dump_test_schema => 1, + only_dump_test_table => 1, + test_schema_plus_blobs => 1, }, }, 'ALTER TABLE ONLY test_table ADD CONSTRAINT ... PRIMARY KEY' => { regexp => qr/^ \QALTER TABLE ONLY test_table\E \n^\s+ \QADD CONSTRAINT test_table_pkey PRIMARY KEY (col1);\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, exclude_test_table_data => 1, - no_privs => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - schema_only => 1, - section_post_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + schema_only => 1, + section_post_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - exclude_test_table => 1, - section_pre_data => 1, - section_data => 1, - }, - }, + exclude_test_table => 1, + section_pre_data => 1, + section_data => 1, }, }, 'ALTER TABLE test_table OWNER TO' => { regexp => qr/^ALTER TABLE test_table OWNER TO .*;/m, - like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + like => { + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, exclude_test_table_data => 1, - no_privs => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - exclude_test_table => 1, - }, - }, + exclude_test_table => 1, }, }, 'ALTER TABLE test_table ENABLE ROW LEVEL SECURITY' => { create_order => 23, - create_sql => 'ALTER TABLE dump_test.test_table + create_sql => 'ALTER TABLE dump_test.test_table ENABLE ROW LEVEL SECURITY;', regexp => qr/^ALTER TABLE test_table ENABLE ROW LEVEL SECURITY;/m, - like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + like => { + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, exclude_test_table_data => 1, - no_privs => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - schema_only => 1, - section_post_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + schema_only => 1, + section_post_data => 1, + test_schema_plus_blobs => 1, }, unlike => { - section_pre_data => 1, + section_pre_data => 1, exclude_dump_test_schema => 1, - exclude_test_table => 1, - }, - }, + exclude_test_table => 1, }, }, 'ALTER TABLE test_second_table OWNER TO' => { regexp => qr/^ALTER TABLE test_second_table OWNER TO .*;/m, - like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 1, + 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - }, - }, + only_dump_test_table => 1, }, }, 'ALTER TABLE test_third_table OWNER TO' => { regexp => qr/^ALTER TABLE test_third_table OWNER TO .*;/m, - like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 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_privs => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - test_schema_plus_blobs => 1, - }, - }, + only_dump_test_schema => 1, + only_dump_test_table => 1, + test_schema_plus_blobs => 1, }, }, + # catch-all for ALTER ... OWNER (except LARGE OBJECTs) 'ALTER ... OWNER commands (except LARGE OBJECTs)' => { regexp => qr/^ALTER (?!LARGE OBJECT)(.*) OWNER TO .*;/m, - like => { }, # use more-specific options above + like => {}, # use more-specific options above unlike => { column_inserts => 1, - data_only => 1, - section_data => 1, - }, - }, + data_only => 1, + section_data => 1, }, }, + # catch-all for ALTER TABLE ... 'ALTER TABLE ... commands' => { regexp => qr/^ALTER TABLE .*;/m, - like => { }, # use more-specific options above + like => {}, # use more-specific options above unlike => { - column_inserts => 1, - data_only => 1, - pg_dumpall_globals => 1, + column_inserts => 1, + data_only => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_data => 1, - }, - }, + section_data => 1, }, }, + # catch-all for ALTER ... OWNER 'ALTER ... OWNER commands' => { regexp => qr/^ALTER .* OWNER TO .*;/m, - like => { }, # use more-specific options above + like => {}, # use more-specific options above unlike => { - no_owner => 1, - pg_dumpall_globals => 1, + no_owner => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, -# 'BLOB load (contents are of test_table)' => { -# create_order => 14, -# create_sql => -# "\\o '$tempdir/large_object_test.sql'\n" -# . "table dump_test.test_table;\n" -# . "\\o\n" -# . "\\lo_import '$tempdir/large_object_test.sql'\n", -# regexp => qr/^ -# \QSELECT pg_catalog.lo_open\E \('\d+',\ \d+\);\n -# \QSELECT pg_catalog.lowrite(0, \E -# \Q'\x310a320a330a340a350a360a370a380a390a');\E\n -# \QSELECT pg_catalog.lo_close(0);\E -# /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_privs => 1, -# section_data => 1, -# test_schema_plus_blobs => 1, -# }, -# unlike => { -# binary_upgrade => 1, -# only_dump_test_schema => 1, -# only_dump_test_table => 1, -# pg_dumpall_globals => 1, -# schema_only => 1, -# section_post_data => 1, -# }, -# }, + section_post_data => 1, }, }, + + # 'BLOB load (contents are of test_table)' => { + # create_order => 14, + # create_sql => + # "\\o '$tempdir/large_object_test.sql'\n" + # . "table dump_test.test_table;\n" + # . "\\o\n" + # . "\\lo_import '$tempdir/large_object_test.sql'\n", + # regexp => qr/^ + # \QSELECT pg_catalog.lo_open\E \('\d+',\ \d+\);\n + # \QSELECT pg_catalog.lowrite(0, \E + # \Q'\x310a320a330a340a350a360a370a380a390a');\E\n + # \QSELECT pg_catalog.lo_close(0);\E + # /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_privs => 1, + # section_data => 1, + # test_schema_plus_blobs => 1, + # }, + # unlike => { + # binary_upgrade => 1, + # only_dump_test_schema => 1, + # only_dump_test_table => 1, + # pg_dumpall_globals => 1, + # schema_only => 1, + # section_post_data => 1, + # }, + # }, 'COMMENT ON DATABASE postgres' => { regexp => qr/^COMMENT ON DATABASE postgres IS .*;/m, - like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 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_privs => 1, - no_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { only_dump_test_schema => 1, - only_dump_test_table => 1, - }, - }, + only_dump_test_table => 1, }, }, 'COMMENT ON EXTENSION plpgsql' => { regexp => qr/^COMMENT ON EXTENSION plpgsql IS .*;/m, - like => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + 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_privs => 1, - no_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - binary_upgrade => 1, + binary_upgrade => 1, only_dump_test_schema => 1, - only_dump_test_table => 1, - }, - }, + only_dump_test_table => 1, }, }, 'COMMENT ON TABLE dump_test.test_table' => { create_order => 36, - create_sql => 'COMMENT ON TABLE dump_test.test_table + create_sql => 'COMMENT ON TABLE dump_test.test_table IS \'comment on table\';', regexp => qr/^COMMENT ON TABLE test_table IS 'comment on table';/m, - like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + like => { + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, exclude_test_table_data => 1, - no_privs => 1, - no_owner => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - schema_only => 1, - section_pre_data => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { exclude_dump_test_schema => 1, - exclude_test_table => 1, - }, - }, + exclude_test_table => 1, }, }, 'COMMENT ON COLUMN dump_test.test_table.col1' => { create_order => 36, - create_sql => 'COMMENT ON COLUMN dump_test.test_table.col1 + create_sql => 'COMMENT ON COLUMN dump_test.test_table.col1 IS \'comment on column\';', regexp => qr/^ \QCOMMENT ON COLUMN test_table.col1 IS 'comment on column';\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, exclude_test_table_data => 1, - no_privs => 1, - no_owner => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - schema_only => 1, - section_pre_data => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { exclude_dump_test_schema => 1, - exclude_test_table => 1, - }, - }, + exclude_test_table => 1, }, }, 'COMMENT ON COLUMN dump_test.composite.f1' => { create_order => 44, - create_sql => 'COMMENT ON COLUMN dump_test.composite.f1 + create_sql => 'COMMENT ON COLUMN dump_test.composite.f1 IS \'comment on column of type\';', regexp => qr/^ \QCOMMENT ON COLUMN composite.f1 IS 'comment on column of type';\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 1, + 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - }, - }, + only_dump_test_table => 1, }, }, + # catch-all for COMMENTs 'COMMENT commands' => { regexp => qr/^COMMENT ON /m, - like => { }, # use more-specific options above + like => {}, # use more-specific options above unlike => { - column_inserts => 1, - data_only => 1, - pg_dumpall_globals => 1, + column_inserts => 1, + data_only => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_data => 1, - section_post_data => 1, - }, - }, + section_data => 1, + section_post_data => 1, }, }, 'COPY test_table' => { create_order => 4, - create_sql => - 'INSERT INTO dump_test.test_table (col1) ' + create_sql => 'INSERT INTO dump_test.test_table (col1) ' . 'SELECT generate_series FROM generate_series(1,9);', regexp => qr/^ \QCOPY test_table (col1) FROM stdin;\E \n(?:\d\n){9}\\\.\n /xm, like => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - data_only => 1, - defaults => 1, - no_privs => 1, - no_owner => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - section_data => 1, - test_schema_plus_blobs => 1, - }, + clean => 1, + clean_if_exists => 1, + createdb => 1, + data_only => 1, + defaults => 1, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + section_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - exclude_test_table => 1, - exclude_test_table_data => 1, - }, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, }, }, 'COPY fk_reference_test_table' => { create_order => 22, - create_sql => - 'INSERT INTO dump_test.fk_reference_test_table (col1) ' + create_sql => 'INSERT INTO dump_test.fk_reference_test_table (col1) ' . 'SELECT generate_series FROM generate_series(1,5);', regexp => qr/^ \QCOPY fk_reference_test_table (col1) FROM stdin;\E \n(?:\d\n){5}\\\.\n /xm, like => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - data_only => 1, - defaults => 1, - exclude_test_table => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + data_only => 1, + defaults => 1, + exclude_test_table => 1, exclude_test_table_data => 1, - no_privs => 1, - no_owner => 1, - only_dump_test_schema => 1, - section_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + section_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - }, - }, + only_dump_test_table => 1, }, }, 'COPY fk_reference_test_table second' => { regexp => qr/^ \QCOPY test_table (col1) FROM stdin;\E @@ -841,19 +686,14 @@ my %tests = ( \QCOPY fk_reference_test_table (col1) FROM stdin;\E \n(?:\d\n){5}\\\.\n /xms, - like => { - data_only => 1, - }, + like => { data_only => 1, }, unlike => { exclude_dump_test_schema => 1, - exclude_test_table => 1, - exclude_test_table_data => 1, - }, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, }, }, 'COPY test_second_table' => { create_order => 7, - create_sql => - 'INSERT INTO dump_test.test_second_table (col1, col2) ' + create_sql => 'INSERT INTO dump_test.test_second_table (col1, col2) ' . 'SELECT generate_series, generate_series::text ' . 'FROM generate_series(1,9);', regexp => qr/^ @@ -861,220 +701,190 @@ my %tests = ( \n(?:\d\t\d\n){9}\\\.\n /xm, like => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - data_only => 1, - defaults => 1, - exclude_test_table => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + data_only => 1, + defaults => 1, + exclude_test_table => 1, exclude_test_table_data => 1, - no_privs => 1, - no_owner => 1, - only_dump_test_schema => 1, - section_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + section_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - }, - }, + only_dump_test_table => 1, }, }, 'COPY test_third_table' => { create_order => 12, create_sql => - 'INSERT INTO dump_test_second_schema.test_third_table (col1) ' + 'INSERT INTO dump_test_second_schema.test_third_table (col1) ' . 'SELECT generate_series FROM generate_series(1,9);', regexp => qr/^ \QCOPY test_third_table (col1) FROM stdin;\E \n(?:\d\n){9}\\\.\n /xm, like => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - data_only => 1, - defaults => 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_privs => 1, - no_owner => 1, - section_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + section_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - test_schema_plus_blobs => 1, - }, - }, + only_dump_test_schema => 1, + only_dump_test_table => 1, + test_schema_plus_blobs => 1, }, }, 'INSERT INTO test_table' => { regexp => qr/^ (?:INSERT\ INTO\ test_table\ \(col1\)\ VALUES\ \(\d\);\n){9} /xm, - like => { - column_inserts => 1, - }, + like => { column_inserts => 1, }, unlike => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - data_only => 1, - defaults => 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_privs => 1, - no_owner => 1, - section_data => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - test_schema_plus_blobs => 1, - }, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + section_data => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + test_schema_plus_blobs => 1, }, }, 'INSERT INTO test_second_table' => { regexp => qr/^ (?:INSERT\ INTO\ test_second_table\ \(col1,\ col2\) \ VALUES\ \(\d,\ '\d'\);\n){9}/xm, - like => { - column_inserts => 1, - }, + like => { column_inserts => 1, }, unlike => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - data_only => 1, - defaults => 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_privs => 1, - no_owner => 1, - section_data => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - test_schema_plus_blobs => 1, - }, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + section_data => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + test_schema_plus_blobs => 1, }, }, 'INSERT INTO test_third_table' => { regexp => qr/^ (?:INSERT\ INTO\ test_third_table\ \(col1\) \ VALUES\ \(\d\);\n){9}/xm, - like => { - column_inserts => 1, - }, + like => { column_inserts => 1, }, unlike => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - data_only => 1, - defaults => 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_privs => 1, - no_owner => 1, - section_data => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - test_schema_plus_blobs => 1, - }, - }, - 'COPY ... commands' => { # catch-all for COPY + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + section_data => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + test_schema_plus_blobs => 1, }, }, + 'COPY ... commands' => { # catch-all for COPY regexp => qr/^COPY /m, - like => { }, # use more-specific options above + like => {}, # use more-specific options above unlike => { - binary_upgrade => 1, - column_inserts => 1, - pg_dumpall_globals => 1, + binary_upgrade => 1, + column_inserts => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - schema_only => 1, - section_post_data => 1, - }, - }, + schema_only => 1, + section_post_data => 1, }, }, 'CREATE ROLE dump_test' => { create_order => 1, - create_sql => 'CREATE ROLE dump_test;', - regexp => qr/^CREATE ROLE dump_test;/m, - like => { - pg_dumpall_globals => 1, - pg_dumpall_globals_clean => 1, - }, + create_sql => 'CREATE ROLE dump_test;', + regexp => qr/^CREATE ROLE dump_test;/m, + like => { + pg_dumpall_globals => 1, + pg_dumpall_globals_clean => 1, }, unlike => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + 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_owner => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - schema_only => 1, - section_pre_data => 1, - section_post_data => 1, - test_schema_plus_blobs => 1, - }, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + schema_only => 1, + section_pre_data => 1, + section_post_data => 1, + test_schema_plus_blobs => 1, }, }, 'CREATE DATABASE postgres' => { regexp => qr/^ \QCREATE DATABASE postgres WITH TEMPLATE = template0 \E .*;/xm, - like => { - createdb => 1, - }, + like => { createdb => 1, }, unlike => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - defaults => 1, + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + defaults => 1, exclude_dump_test_schema => 1, - exclude_test_table => 1, - exclude_test_table_data => 1, - no_privs => 1, - no_owner => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + exclude_test_table => 1, + exclude_test_table_data => 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, - schema_only => 1, - section_pre_data => 1, - section_post_data => 1, - test_schema_plus_blobs => 1, - }, - }, + schema_only => 1, + section_pre_data => 1, + section_post_data => 1, + test_schema_plus_blobs => 1, }, }, 'CREATE EXTENSION ... plpgsql' => { regexp => qr/^ \QCREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;\E /xm, like => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 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_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - binary_upgrade => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + 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, - }, - }, + section_post_data => 1, + test_schema_plus_blobs => 1, }, }, 'CREATE AGGREGATE dump_test.newavg' => { create_order => 25, - create_sql => 'CREATE AGGREGATE dump_test.newavg ( + create_sql => 'CREATE AGGREGATE dump_test.newavg ( sfunc = int4_avg_accum, basetype = int4, stype = _int8, @@ -1089,31 +899,28 @@ my %tests = ( \n\s+\QFINALFUNC = int8_avg\E \n\);/xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 1, + 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE DOMAIN dump_test.us_postal_code' => { create_order => 29, - create_sql => 'CREATE DOMAIN dump_test.us_postal_code AS TEXT + create_sql => 'CREATE DOMAIN dump_test.us_postal_code AS TEXT CHECK(VALUE ~ \'^\d{5}$\' OR VALUE ~ \'^\d{5}-\d{4}$\');', regexp => qr/^ @@ -1125,31 +932,28 @@ my %tests = ( \Q'::text)));\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 1, + 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE FUNCTION dump_test.pltestlang_call_handler' => { create_order => 17, - create_sql => 'CREATE FUNCTION dump_test.pltestlang_call_handler() + create_sql => 'CREATE FUNCTION dump_test.pltestlang_call_handler() RETURNS LANGUAGE_HANDLER AS \'$libdir/plpgsql\', \'plpgsql_call_handler\' LANGUAGE C;', regexp => qr/^ @@ -1160,31 +964,28 @@ my %tests = ( \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, + 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE FUNCTION dump_test.trigger_func' => { create_order => 30, - create_sql => 'CREATE FUNCTION dump_test.trigger_func() + create_sql => 'CREATE FUNCTION dump_test.trigger_func() RETURNS trigger LANGUAGE plpgsql AS $$ BEGIN RETURN NULL; END;$$;', regexp => qr/^ @@ -1194,31 +995,28 @@ my %tests = ( \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, + 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE FUNCTION dump_test.event_trigger_func' => { create_order => 32, - create_sql => 'CREATE FUNCTION dump_test.event_trigger_func() + create_sql => 'CREATE FUNCTION dump_test.event_trigger_func() RETURNS event_trigger LANGUAGE plpgsql AS $$ BEGIN RETURN; END;$$;', regexp => qr/^ @@ -1228,31 +1026,28 @@ my %tests = ( \Q BEGIN RETURN; END;\E \$\$;/xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 1, + 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE EVENT TRIGGER test_event_trigger' => { create_order => 33, - create_sql => 'CREATE EVENT TRIGGER test_event_trigger + create_sql => 'CREATE EVENT TRIGGER test_event_trigger ON ddl_command_start EXECUTE PROCEDURE dump_test.event_trigger_func();', regexp => qr/^ @@ -1261,31 +1056,28 @@ my %tests = ( \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, + 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_owner => 1, - schema_only => 1, - section_post_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + schema_only => 1, + section_post_data => 1, }, unlike => { - section_pre_data => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + section_pre_data => 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, - }, - }, + test_schema_plus_blobs => 1, }, }, 'CREATE TRIGGER test_trigger' => { create_order => 31, - create_sql => 'CREATE TRIGGER test_trigger + create_sql => 'CREATE TRIGGER test_trigger BEFORE INSERT ON dump_test.test_table FOR EACH ROW WHEN (NEW.col1 > 10) EXECUTE PROCEDURE dump_test.trigger_func();', @@ -1295,31 +1087,28 @@ my %tests = ( \QEXECUTE PROCEDURE trigger_func();\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, exclude_test_table_data => 1, - no_privs => 1, - no_owner => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - schema_only => 1, - section_post_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + schema_only => 1, + section_post_data => 1, + test_schema_plus_blobs => 1, }, unlike => { - section_pre_data => 1, + section_pre_data => 1, exclude_dump_test_schema => 1, - exclude_test_table => 1, - pg_dumpall_globals => 1, - pg_dumpall_globals_clean => 1, - }, - }, + exclude_test_table => 1, + pg_dumpall_globals => 1, + pg_dumpall_globals_clean => 1, }, }, 'CREATE TYPE dump_test.planets AS ENUM' => { create_order => 37, - create_sql => 'CREATE TYPE dump_test.planets + create_sql => 'CREATE TYPE dump_test.planets AS ENUM ( \'venus\', \'earth\', \'mars\' );', regexp => qr/^ \QCREATE TYPE planets AS ENUM (\E @@ -1328,27 +1117,24 @@ my %tests = ( \n\s+'mars' \n\);/xm, like => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE TYPE dump_test.planets AS ENUM pg_upgrade' => { regexp => qr/^ \QCREATE TYPE planets AS ENUM (\E @@ -1359,32 +1145,28 @@ my %tests = ( \n.*^ \QALTER TYPE dump_test.planets ADD VALUE 'mars';\E \n/xms, - like => { - binary_upgrade => 1, - }, + like => { binary_upgrade => 1, }, unlike => { - 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 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, + only_dump_test_schema => 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, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE TYPE dump_test.textrange AS RANGE' => { create_order => 38, - create_sql => 'CREATE TYPE dump_test.textrange + create_sql => 'CREATE TYPE dump_test.textrange AS RANGE (subtype=text, collation="C");', regexp => qr/^ \QCREATE TYPE textrange AS RANGE (\E @@ -1392,56 +1174,50 @@ my %tests = ( \n\s+\Qcollation = pg_catalog."C"\E \n\);/xm, like => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE TYPE dump_test.int42' => { create_order => 39, - create_sql => 'CREATE TYPE dump_test.int42;', - regexp => qr/^CREATE TYPE int42;/m, - like => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 1, + create_sql => 'CREATE TYPE dump_test.int42;', + regexp => qr/^CREATE TYPE int42;/m, + like => { + 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE FUNCTION dump_test.int42_in' => { create_order => 40, - create_sql => 'CREATE FUNCTION dump_test.int42_in(cstring) + create_sql => 'CREATE FUNCTION dump_test.int42_in(cstring) RETURNS dump_test.int42 AS \'int4in\' LANGUAGE internal STRICT IMMUTABLE;', regexp => qr/^ @@ -1450,31 +1226,28 @@ my %tests = ( \n\s+AS\ \$\$int4in\$\$; /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 1, + 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE FUNCTION dump_test.int42_out' => { create_order => 41, - create_sql => 'CREATE FUNCTION dump_test.int42_out(dump_test.int42) + create_sql => 'CREATE FUNCTION dump_test.int42_out(dump_test.int42) RETURNS cstring AS \'int4out\' LANGUAGE internal STRICT IMMUTABLE;', regexp => qr/^ @@ -1483,31 +1256,28 @@ my %tests = ( \n\s+AS\ \$\$int4out\$\$; /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 1, + 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE TYPE dump_test.int42 populated' => { create_order => 42, - create_sql => 'CREATE TYPE dump_test.int42 ( + create_sql => 'CREATE TYPE dump_test.int42 ( internallength = 4, input = dump_test.int42_in, output = dump_test.int42_out, @@ -1525,30 +1295,27 @@ my %tests = ( \n\s+PASSEDBYVALUE\n\); /xm, like => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE TYPE dump_test.composite' => { create_order => 43, - create_sql => 'CREATE TYPE dump_test.composite AS ( + create_sql => 'CREATE TYPE dump_test.composite AS ( f1 int, f2 dump_test.int42 );', @@ -1559,83 +1326,74 @@ my %tests = ( \n\); /xm, like => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE FOREIGN DATA WRAPPER dummy' => { create_order => 35, - create_sql => 'CREATE FOREIGN DATA WRAPPER dummy;', - regexp => qr/CREATE FOREIGN DATA WRAPPER dummy;/m, - like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + 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_privs => 1, - no_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 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, - }, - }, + section_post_data => 1, + test_schema_plus_blobs => 1, }, }, 'CREATE SERVER s1 FOREIGN DATA WRAPPER dummy' => { create_order => 36, - create_sql => 'CREATE SERVER s1 FOREIGN DATA WRAPPER dummy;', - regexp => qr/CREATE SERVER s1 FOREIGN DATA WRAPPER dummy;/m, - like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + 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_privs => 1, - no_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 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, - }, - }, + section_post_data => 1, + test_schema_plus_blobs => 1, }, }, ####################################### -# Currently broken. + # Currently broken. ####################################### # # 'CREATE TRANSFORM FOR int' => { @@ -1666,38 +1424,35 @@ my %tests = ( # }, 'CREATE LANGUAGE pltestlang' => { create_order => 18, - create_sql => 'CREATE LANGUAGE pltestlang + create_sql => 'CREATE LANGUAGE pltestlang HANDLER dump_test.pltestlang_call_handler;', regexp => qr/^ \QCREATE PROCEDURAL LANGUAGE pltestlang \E \QHANDLER pltestlang_call_handler;\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 1, + 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, - schema_only => 1, - section_pre_data => 1, - }, + no_privs => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - only_dump_test_schema => 1, - test_schema_plus_blobs => 1, - }, - }, + section_post_data => 1, + only_dump_test_schema => 1, + test_schema_plus_blobs => 1, }, }, 'CREATE MATERIALIZED VIEW matview' => { create_order => 20, - create_sql => 'CREATE MATERIALIZED VIEW dump_test.matview (col1) AS + create_sql => 'CREATE MATERIALIZED VIEW dump_test.matview (col1) AS SELECT * FROM dump_test.test_table;', regexp => qr/^ \QCREATE MATERIALIZED VIEW matview AS\E @@ -1706,31 +1461,28 @@ my %tests = ( \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, + 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE MATERIALIZED VIEW matview_second' => { create_order => 21, - create_sql => 'CREATE MATERIALIZED VIEW + create_sql => 'CREATE MATERIALIZED VIEW dump_test.matview_second (col1) AS SELECT * FROM dump_test.matview;', regexp => qr/^ @@ -1740,31 +1492,28 @@ my %tests = ( \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, + 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE POLICY p1 ON test_table' => { create_order => 22, - create_sql => 'CREATE POLICY p1 ON dump_test.test_table + create_sql => 'CREATE POLICY p1 ON dump_test.test_table USING (true) WITH CHECK (true);', regexp => qr/^ @@ -1772,209 +1521,188 @@ my %tests = ( \QUSING (true) WITH CHECK (true);\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, exclude_test_table_data => 1, - no_privs => 1, - no_owner => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - schema_only => 1, - section_post_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + schema_only => 1, + section_post_data => 1, + test_schema_plus_blobs => 1, }, unlike => { - section_pre_data => 1, + section_pre_data => 1, exclude_dump_test_schema => 1, - exclude_test_table => 1, - pg_dumpall_globals => 1, - pg_dumpall_globals_clean => 1, - }, - }, + exclude_test_table => 1, + pg_dumpall_globals => 1, + pg_dumpall_globals_clean => 1, }, }, 'CREATE POLICY p2 ON test_table FOR SELECT' => { create_order => 24, - create_sql => 'CREATE POLICY p2 ON dump_test.test_table + create_sql => 'CREATE POLICY p2 ON dump_test.test_table FOR SELECT TO dump_test USING (true);', regexp => qr/^ \QCREATE POLICY p2 ON test_table FOR SELECT TO dump_test \E \QUSING (true);\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, exclude_test_table_data => 1, - no_privs => 1, - no_owner => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - schema_only => 1, - section_post_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + schema_only => 1, + section_post_data => 1, + test_schema_plus_blobs => 1, }, unlike => { - section_pre_data => 1, + section_pre_data => 1, exclude_dump_test_schema => 1, - exclude_test_table => 1, - pg_dumpall_globals => 1, - pg_dumpall_globals_clean => 1, - }, - }, + exclude_test_table => 1, + pg_dumpall_globals => 1, + pg_dumpall_globals_clean => 1, }, }, 'CREATE POLICY p3 ON test_table FOR INSERT' => { create_order => 25, - create_sql => 'CREATE POLICY p3 ON dump_test.test_table + create_sql => 'CREATE POLICY p3 ON dump_test.test_table FOR INSERT TO dump_test WITH CHECK (true);', regexp => qr/^ \QCREATE POLICY p3 ON test_table FOR INSERT \E \QTO dump_test WITH CHECK (true);\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, exclude_test_table_data => 1, - no_privs => 1, - no_owner => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - schema_only => 1, - section_post_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + schema_only => 1, + section_post_data => 1, + test_schema_plus_blobs => 1, }, unlike => { - section_pre_data => 1, + section_pre_data => 1, exclude_dump_test_schema => 1, - exclude_test_table => 1, - pg_dumpall_globals => 1, - pg_dumpall_globals_clean => 1, - }, - }, + exclude_test_table => 1, + pg_dumpall_globals => 1, + pg_dumpall_globals_clean => 1, }, }, 'CREATE POLICY p4 ON test_table FOR UPDATE' => { create_order => 26, - create_sql => 'CREATE POLICY p4 ON dump_test.test_table FOR UPDATE + create_sql => 'CREATE POLICY p4 ON dump_test.test_table FOR UPDATE TO dump_test USING (true) WITH CHECK (true);', regexp => qr/^ \QCREATE POLICY p4 ON test_table FOR UPDATE TO dump_test \E \QUSING (true) WITH CHECK (true);\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, exclude_test_table_data => 1, - no_privs => 1, - no_owner => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - schema_only => 1, - section_post_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + schema_only => 1, + section_post_data => 1, + test_schema_plus_blobs => 1, }, unlike => { - section_pre_data => 1, + section_pre_data => 1, exclude_dump_test_schema => 1, - exclude_test_table => 1, - pg_dumpall_globals => 1, - pg_dumpall_globals_clean => 1, - }, - }, + exclude_test_table => 1, + pg_dumpall_globals => 1, + pg_dumpall_globals_clean => 1, }, }, 'CREATE POLICY p5 ON test_table FOR DELETE' => { create_order => 27, - create_sql => 'CREATE POLICY p5 ON dump_test.test_table + create_sql => 'CREATE POLICY p5 ON dump_test.test_table FOR DELETE TO dump_test USING (true);', regexp => qr/^ \QCREATE POLICY p5 ON test_table FOR DELETE \E \QTO dump_test USING (true);\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, exclude_test_table_data => 1, - no_privs => 1, - no_owner => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - schema_only => 1, - section_post_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + schema_only => 1, + section_post_data => 1, + test_schema_plus_blobs => 1, }, unlike => { - section_pre_data => 1, + section_pre_data => 1, exclude_dump_test_schema => 1, - exclude_test_table => 1, - pg_dumpall_globals => 1, - pg_dumpall_globals_clean => 1, - }, - }, + exclude_test_table => 1, + pg_dumpall_globals => 1, + pg_dumpall_globals_clean => 1, }, }, 'CREATE SCHEMA dump_test' => { 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, + 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_privs => 1, - no_owner => 1, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE SCHEMA dump_test_second_schema' => { create_order => 9, - create_sql => 'CREATE SCHEMA dump_test_second_schema;', - regexp => qr/^CREATE SCHEMA dump_test_second_schema;/m, - like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + 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_privs => 1, - no_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 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, - }, - }, + section_post_data => 1, + test_schema_plus_blobs => 1, }, }, 'CREATE TABLE test_table' => { create_order => 3, - create_sql => 'CREATE TABLE dump_test.test_table ( + create_sql => 'CREATE TABLE dump_test.test_table ( col1 serial primary key, CHECK (col1 <= 1000) );', @@ -1985,31 +1713,28 @@ my %tests = ( \Q((col1 <= 1000))\E \n\);/xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, exclude_test_table_data => 1, - no_privs => 1, - no_owner => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - exclude_test_table => 1, - pg_dumpall_globals => 1, + exclude_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE TABLE fk_reference_test_table' => { create_order => 21, - create_sql => 'CREATE TABLE dump_test.fk_reference_test_table ( + create_sql => 'CREATE TABLE dump_test.fk_reference_test_table ( col1 int primary key references dump_test.test_table );', regexp => qr/^ @@ -2018,31 +1743,28 @@ my %tests = ( \n\); /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 1, + 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE TABLE test_second_table' => { create_order => 6, - create_sql => 'CREATE TABLE dump_test.test_second_table ( + create_sql => 'CREATE TABLE dump_test.test_second_table ( col1 int, col2 text );', @@ -2053,28 +1775,25 @@ my %tests = ( \n\); /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 1, + 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, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE TABLE test_third_table' => { create_order => 11, create_sql => 'CREATE TABLE dump_test_second_schema.test_third_table ( @@ -2086,28 +1805,25 @@ my %tests = ( \n\); /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + 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_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 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, - }, - }, + section_post_data => 1, + test_schema_plus_blobs => 1, }, }, 'CREATE SEQUENCE test_table_col1_seq' => { regexp => qr/^ \QCREATE SEQUENCE test_table_col1_seq\E @@ -2118,28 +1834,25 @@ my %tests = ( \n\s+\QCACHE 1;\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 1, + 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, - only_dump_test_schema => 1, - only_dump_test_table => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - pg_dumpall_globals => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE SEQUENCE test_third_table_col1_seq' => { regexp => qr/^ \QCREATE SEQUENCE test_third_table_col1_seq\E @@ -2150,430 +1863,311 @@ my %tests = ( \n\s+\QCACHE 1;\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + 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_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 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, - }, - }, + section_post_data => 1, + test_schema_plus_blobs => 1, }, }, 'CREATE UNIQUE INDEX test_third_table_idx ON test_third_table' => { create_order => 13, - create_sql => 'CREATE UNIQUE INDEX test_third_table_idx + create_sql => 'CREATE UNIQUE INDEX test_third_table_idx ON dump_test_second_schema.test_third_table (col1);', regexp => qr/^ \QCREATE UNIQUE INDEX test_third_table_idx \E \QON test_third_table USING btree (col1);\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + 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_owner => 1, - schema_only => 1, - section_post_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + schema_only => 1, + section_post_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, pg_dumpall_globals_clean => 1, - test_schema_plus_blobs => 1, - }, - }, - 'CREATE ... commands' => { # catch-all for CREATE + test_schema_plus_blobs => 1, }, }, + 'CREATE ... commands' => { # catch-all for CREATE regexp => qr/^CREATE /m, - like => { }, # use more-specific options above + like => {}, # use more-specific options above unlike => { column_inserts => 1, - data_only => 1, - section_data => 1, - }, - }, + data_only => 1, + section_data => 1, }, }, 'DROP EXTENSION plpgsql' => { regexp => qr/^DROP EXTENSION plpgsql;/m, - like => { - clean => 1, - }, - unlike => { - clean_if_exists => 1, - }, - }, + like => { clean => 1, }, + unlike => { clean_if_exists => 1, }, }, 'DROP FUNCTION dump_test.pltestlang_call_handler()' => { regexp => qr/^DROP FUNCTION dump_test\.pltestlang_call_handler\(\);/m, - like => { - clean => 1, - }, - unlike => { - clean_if_exists => 1, - }, - }, + like => { clean => 1, }, + unlike => { clean_if_exists => 1, }, }, 'DROP LANGUAGE pltestlang' => { regexp => qr/^DROP PROCEDURAL LANGUAGE pltestlang;/m, - like => { - clean => 1, - }, - unlike => { - clean_if_exists => 1, - }, - }, + like => { clean => 1, }, + unlike => { clean_if_exists => 1, }, }, 'DROP SCHEMA dump_test' => { regexp => qr/^DROP SCHEMA dump_test;/m, - like => { - clean => 1, - }, - unlike => { - clean_if_exists => 1, - }, - }, + like => { clean => 1, }, + unlike => { clean_if_exists => 1, }, }, 'DROP SCHEMA dump_test_second_schema' => { regexp => qr/^DROP SCHEMA dump_test_second_schema;/m, - like => { - clean => 1, - }, - unlike => { - clean_if_exists => 1, - }, - }, + like => { clean => 1, }, + unlike => { clean_if_exists => 1, }, }, 'DROP TABLE test_table' => { regexp => qr/^DROP TABLE dump_test\.test_table;/m, - like => { - clean => 1, - }, - unlike => { - clean_if_exists => 1, - }, - }, + like => { clean => 1, }, + unlike => { clean_if_exists => 1, }, }, 'DROP TABLE fk_reference_test_table' => { regexp => qr/^DROP TABLE dump_test\.fk_reference_test_table;/m, - like => { - clean => 1, - }, - unlike => { - clean_if_exists => 1, - }, - }, + like => { clean => 1, }, + unlike => { clean_if_exists => 1, }, }, 'DROP TABLE test_second_table' => { regexp => qr/^DROP TABLE dump_test\.test_second_table;/m, - like => { - clean => 1, - }, - unlike => { - clean_if_exists => 1, - }, - }, + like => { clean => 1, }, + unlike => { clean_if_exists => 1, }, }, 'DROP TABLE test_third_table' => { regexp => qr/^DROP TABLE dump_test_second_schema\.test_third_table;/m, - like => { - clean => 1, - }, - unlike => { - clean_if_exists => 1, - }, - }, + like => { clean => 1, }, + unlike => { clean_if_exists => 1, }, }, 'DROP EXTENSION IF EXISTS plpgsql' => { regexp => qr/^DROP EXTENSION IF EXISTS plpgsql;/m, - like => { - clean_if_exists => 1, - }, - unlike => { - clean => 1, - }, - }, + like => { clean_if_exists => 1, }, + unlike => { clean => 1, }, }, 'DROP FUNCTION IF EXISTS dump_test.pltestlang_call_handler()' => { regexp => qr/^ \QDROP FUNCTION IF EXISTS dump_test.pltestlang_call_handler();\E /xm, - like => { - clean_if_exists => 1, - }, - unlike => { - clean => 1, - }, - }, + like => { clean_if_exists => 1, }, + unlike => { clean => 1, }, }, 'DROP LANGUAGE IF EXISTS pltestlang' => { regexp => qr/^DROP PROCEDURAL LANGUAGE IF EXISTS pltestlang;/m, - like => { - clean_if_exists => 1, - }, - unlike => { - clean => 1, - }, - }, + like => { clean_if_exists => 1, }, + unlike => { clean => 1, }, }, 'DROP SCHEMA IF EXISTS dump_test' => { regexp => qr/^DROP SCHEMA IF EXISTS dump_test;/m, - like => { - clean_if_exists => 1, - }, - unlike => { - clean => 1, - }, - }, + like => { clean_if_exists => 1, }, + unlike => { clean => 1, }, }, 'DROP SCHEMA IF EXISTS dump_test_second_schema' => { regexp => qr/^DROP SCHEMA IF EXISTS dump_test_second_schema;/m, - like => { - clean_if_exists => 1, - }, - unlike => { - clean => 1, - }, - }, + like => { clean_if_exists => 1, }, + unlike => { clean => 1, }, }, 'DROP TABLE IF EXISTS test_table' => { regexp => qr/^DROP TABLE IF EXISTS dump_test\.test_table;/m, - like => { - clean_if_exists => 1, - }, - unlike => { - clean => 1, - }, - }, + like => { clean_if_exists => 1, }, + unlike => { clean => 1, }, }, 'DROP TABLE IF EXISTS test_second_table' => { regexp => qr/^DROP TABLE IF EXISTS dump_test\.test_second_table;/m, - like => { - clean_if_exists => 1, - }, - unlike => { - clean => 1, - }, - }, + like => { clean_if_exists => 1, }, + unlike => { clean => 1, }, }, 'DROP TABLE IF EXISTS test_third_table' => { regexp => qr/^ \QDROP TABLE IF EXISTS dump_test_second_schema.test_third_table;\E /xm, - like => { - clean_if_exists => 1, - }, - unlike => { - clean => 1, - }, - }, + like => { clean_if_exists => 1, }, + unlike => { clean => 1, }, }, 'DROP ROLE dump_test' => { regexp => qr/^ \QDROP ROLE dump_test;\E /xm, - like => { - pg_dumpall_globals_clean => 1, - }, + like => { pg_dumpall_globals_clean => 1, }, unlike => { - clean => 1, - clean_if_exists => 1, - }, - }, + clean => 1, + clean_if_exists => 1, }, }, 'DROP ROLE pg_' => { regexp => qr/^ \QDROP ROLE pg_\E.*; /xm, - like => { - }, + like => {}, unlike => { - clean => 1, - clean_if_exists => 1, - pg_dumpall_globals_clean => 1, - }, - }, - 'DROP ... commands' => { # catch-all for DROP + clean => 1, + clean_if_exists => 1, + pg_dumpall_globals_clean => 1, }, }, + 'DROP ... commands' => { # catch-all for DROP regexp => qr/^DROP /m, - like => { }, # use more-specific options above + like => {}, # use more-specific options above unlike => { - binary_upgrade => 1, - column_inserts => 1, - createdb => 1, - data_only => 1, - defaults => 1, + 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_privs => 1, - no_owner => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, - schema_only => 1, - }, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, + schema_only => 1, }, }, 'GRANT USAGE ON SCHEMA dump_test_second_schema' => { create_order => 10, - create_sql => 'GRANT USAGE ON SCHEMA dump_test_second_schema + create_sql => 'GRANT USAGE ON SCHEMA dump_test_second_schema TO dump_test;', regexp => qr/^ \QGRANT USAGE ON SCHEMA dump_test_second_schema TO dump_test;\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + 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_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, - test_schema_plus_blobs => 1, - }, - }, + only_dump_test_schema => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, + test_schema_plus_blobs => 1, }, }, 'GRANT SELECT ON TABLE test_table' => { create_order => 5, - create_sql => 'GRANT SELECT ON TABLE dump_test.test_table + create_sql => 'GRANT SELECT ON TABLE dump_test.test_table TO dump_test;', regexp => qr/^GRANT SELECT ON TABLE test_table TO dump_test;/m, - like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + like => { + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, exclude_test_table_data => 1, - no_owner => 1, - only_dump_test_schema => 1, - only_dump_test_table => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_owner => 1, + only_dump_test_schema => 1, + only_dump_test_table => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - exclude_test_table => 1, - pg_dumpall_globals => 1, - }, - }, + exclude_test_table => 1, + pg_dumpall_globals => 1, }, }, 'GRANT SELECT ON TABLE test_third_table' => { create_order => 19, - create_sql => 'GRANT SELECT ON + create_sql => 'GRANT SELECT ON TABLE dump_test_second_schema.test_third_table TO dump_test;', regexp => qr/^GRANT SELECT ON TABLE test_third_table TO dump_test;/m, - like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 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_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, - test_schema_plus_blobs => 1, - }, - }, + only_dump_test_schema => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, + test_schema_plus_blobs => 1, }, }, 'GRANT ALL ON SEQUENCE test_third_table_col1_seq' => { create_order => 28, - create_sql => 'GRANT ALL ON SEQUENCE + create_sql => 'GRANT ALL ON SEQUENCE dump_test_second_schema.test_third_table_col1_seq TO dump_test;', regexp => qr/^ \QGRANT ALL ON SEQUENCE test_third_table_col1_seq TO dump_test;\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + 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_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, - test_schema_plus_blobs => 1, - }, - }, + only_dump_test_schema => 1, + only_dump_test_table => 1, + pg_dumpall_globals => 1, + test_schema_plus_blobs => 1, }, }, 'GRANT INSERT(col1) ON TABLE test_second_table' => { create_order => 8, - create_sql => 'GRANT INSERT (col1) ON TABLE dump_test.test_second_table + create_sql => + 'GRANT INSERT (col1) ON TABLE dump_test.test_second_table TO dump_test;', regexp => qr/^ \QGRANT INSERT(col1) ON TABLE test_second_table TO dump_test;\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 1, + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, + exclude_test_table => 1, exclude_test_table_data => 1, - no_owner => 1, - only_dump_test_schema => 1, - schema_only => 1, - section_pre_data => 1, - test_schema_plus_blobs => 1, - }, + no_owner => 1, + only_dump_test_schema => 1, + schema_only => 1, + section_pre_data => 1, + test_schema_plus_blobs => 1, }, unlike => { exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, - }, - }, + only_dump_test_table => 1, + pg_dumpall_globals => 1, }, }, 'GRANT EXECUTE ON FUNCTION pg_sleep() TO dump_test' => { create_order => 16, - create_sql => 'GRANT EXECUTE ON FUNCTION pg_sleep(float8) + create_sql => 'GRANT EXECUTE ON FUNCTION pg_sleep(float8) TO dump_test;', regexp => qr/^ \QGRANT ALL ON FUNCTION pg_sleep(double precision) TO dump_test;\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + 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_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - test_schema_plus_blobs => 1, - }, - }, + only_dump_test_schema => 1, + only_dump_test_table => 1, + test_schema_plus_blobs => 1, }, }, 'GRANT SELECT (proname ...) ON TABLE pg_proc TO public' => { create_order => 46, - create_sql => 'GRANT SELECT ( + create_sql => 'GRANT SELECT ( tableoid, oid, proname, @@ -2639,58 +2233,50 @@ my %tests = ( \QGRANT SELECT(proconfig) ON TABLE pg_proc TO PUBLIC;\E\n.* \QGRANT SELECT(proacl) ON TABLE pg_proc TO PUBLIC;\E/xms, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + 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_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - test_schema_plus_blobs => 1, - }, - }, - 'GRANT commands' => { # catch-all for GRANT commands + only_dump_test_schema => 1, + only_dump_test_table => 1, + test_schema_plus_blobs => 1, }, }, + 'GRANT commands' => { # catch-all for GRANT commands regexp => qr/^GRANT /m, - like => { }, # use more-specific options above + like => {}, # use more-specific options above unlike => { column_inserts => 1, - data_only => 1, - no_privs => 1, - section_data => 1, - }, - }, + data_only => 1, + no_privs => 1, + section_data => 1, }, }, 'REFRESH MATERIALIZED VIEW matview' => { regexp => qr/^REFRESH MATERIALIZED VIEW matview;/m, - like => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 1, + like => { + 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, - only_dump_test_schema => 1, - test_schema_plus_blobs => 1, - section_post_data => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + test_schema_plus_blobs => 1, + section_post_data => 1, }, unlike => { - binary_upgrade => 1, + binary_upgrade => 1, exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, - schema_only => 1, - section_pre_data => 1, - }, - }, + only_dump_test_table => 1, + pg_dumpall_globals => 1, + schema_only => 1, + section_pre_data => 1, }, }, 'REFRESH MATERIALIZED VIEW matview_second' => { regexp => qr/^ \QREFRESH MATERIALIZED VIEW matview;\E @@ -2698,136 +2284,118 @@ my %tests = ( \QREFRESH MATERIALIZED VIEW matview_second;\E /xms, like => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - exclude_test_table => 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, - only_dump_test_schema => 1, - test_schema_plus_blobs => 1, - section_post_data => 1, - }, + no_privs => 1, + no_owner => 1, + only_dump_test_schema => 1, + test_schema_plus_blobs => 1, + section_post_data => 1, }, unlike => { - binary_upgrade => 1, + binary_upgrade => 1, exclude_dump_test_schema => 1, - only_dump_test_table => 1, - pg_dumpall_globals => 1, - schema_only => 1, - section_pre_data => 1, - }, - }, + only_dump_test_table => 1, + pg_dumpall_globals => 1, + schema_only => 1, + section_pre_data => 1, }, }, 'REVOKE EXECUTE ON FUNCTION pg_sleep() FROM public' => { create_order => 15, - create_sql => 'REVOKE EXECUTE ON FUNCTION pg_sleep(float8) + create_sql => 'REVOKE EXECUTE ON FUNCTION pg_sleep(float8) FROM public;', regexp => qr/^ \QREVOKE ALL ON FUNCTION pg_sleep(double precision) FROM PUBLIC;\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + 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_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - test_schema_plus_blobs => 1, - }, - }, + only_dump_test_schema => 1, + only_dump_test_table => 1, + test_schema_plus_blobs => 1, }, }, 'REVOKE SELECT ON TABLE pg_proc FROM public' => { create_order => 45, - create_sql => 'REVOKE SELECT ON TABLE pg_proc FROM public;', - regexp => qr/^REVOKE SELECT ON TABLE pg_proc FROM PUBLIC;/m, - like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + create_sql => 'REVOKE SELECT ON TABLE pg_proc FROM public;', + regexp => qr/^REVOKE SELECT ON TABLE pg_proc FROM PUBLIC;/m, + like => { + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, exclude_dump_test_schema => 1, - exclude_test_table => 1, - exclude_test_table_data => 1, - no_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - test_schema_plus_blobs => 1, - }, - }, + only_dump_test_schema => 1, + only_dump_test_table => 1, + test_schema_plus_blobs => 1, }, }, 'REVOKE CREATE ON SCHEMA public FROM public' => { create_order => 16, - create_sql => 'REVOKE CREATE ON SCHEMA public FROM public;', - regexp => qr/^ + create_sql => 'REVOKE CREATE ON SCHEMA public FROM public;', + regexp => qr/^ \QREVOKE ALL ON SCHEMA public FROM PUBLIC;\E \n\QGRANT USAGE ON SCHEMA public TO PUBLIC;\E /xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + 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_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - test_schema_plus_blobs => 1, - }, - }, + only_dump_test_schema => 1, + only_dump_test_table => 1, + test_schema_plus_blobs => 1, }, }, 'REVOKE USAGE ON LANGUAGE plpgsql FROM public' => { create_order => 16, - create_sql => 'REVOKE USAGE ON LANGUAGE plpgsql FROM public;', - regexp => qr/^REVOKE ALL ON LANGUAGE plpgsql FROM PUBLIC;/m, - like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, + 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_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + exclude_test_table => 1, + exclude_test_table_data => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - only_dump_test_schema => 1, - only_dump_test_table => 1, - test_schema_plus_blobs => 1, - }, - }, - 'REVOKE commands' => { # catch-all for REVOKE commands + only_dump_test_schema => 1, + only_dump_test_table => 1, + test_schema_plus_blobs => 1, }, }, + 'REVOKE commands' => { # catch-all for REVOKE commands regexp => qr/^REVOKE /m, - like => { }, # use more-specific options above + like => {}, # use more-specific options above unlike => { - column_inserts => 1, - data_only => 1, - no_privs => 1, - pg_dumpall_globals => 1, - }, - }, -); + column_inserts => 1, + data_only => 1, + no_privs => 1, + pg_dumpall_globals => 1, }, },); ######################################### # Create a PG instance to test actually dumping from @@ -2841,28 +2409,34 @@ my $port = $node->port; # Start with 2 because of command_exit_is() tests below my $num_tests = 2; -foreach my $run (sort keys %pgdump_runs) { +foreach my $run (sort keys %pgdump_runs) +{ my $test_key = $run; # Each run of pg_dump is a test itself $num_tests++; # If there is a restore cmd, that's another test - if ($pgdump_runs{$run}->{restore_cmd}) { + if ($pgdump_runs{$run}->{restore_cmd}) + { $num_tests++; } - if ($pgdump_runs{$run}->{test_key}) { + if ($pgdump_runs{$run}->{test_key}) + { $test_key = $pgdump_runs{$run}->{test_key}; } # Then count all the tests run against each run - foreach my $test (sort keys %tests) { - if ($tests{$test}->{like}->{$test_key}) { + foreach my $test (sort keys %tests) + { + if ($tests{$test}->{like}->{$test_key}) + { $num_tests++; } - if ($tests{$test}->{unlike}->{$test_key}) { + if ($tests{$test}->{unlike}->{$test_key}) + { $num_tests++; } } @@ -2877,17 +2451,26 @@ my $create_sql = ''; foreach my $test ( sort { - if ($tests{$a}->{create_order} and $tests{$b}->{create_order}) { + if ($tests{$a}->{create_order} and $tests{$b}->{create_order}) + { $tests{$a}->{create_order} <=> $tests{$b}->{create_order}; - } elsif ($tests{$a}->{create_order}) { + } + elsif ($tests{$a}->{create_order}) + { -1; - } elsif ($tests{$b}->{create_order}) { + } + elsif ($tests{$b}->{create_order}) + { 1; - } else { + } + else + { 0; } - } keys %tests) { - if ($tests{$test}->{create_sql}) { + } keys %tests) +{ + if ($tests{$test}->{create_sql}) + { $create_sql .= $tests{$test}->{create_sql}; } } @@ -2898,26 +2481,35 @@ $node->safe_psql('postgres', $create_sql); ######################################### # Test connecting to a non-existent database -command_exit_is([ 'pg_dump', '-p', "$port", 'qqq' ], - 1, 'pg_dump: [archiver (db)] connection to database "qqq" failed: FATAL: database "qqq" does not exist'); +command_exit_is( + [ 'pg_dump', '-p', "$port", 'qqq' ], + 1, +'pg_dump: [archiver (db)] connection to database "qqq" failed: FATAL: database "qqq" does not exist' +); command_exit_is([ 'pg_dump', '-p', "$port", '--role=dump_test' ], - 1, 'pg_dump: [archiver (db)] query failed: ERROR: permission denied for'); + 1, + 'pg_dump: [archiver (db)] query failed: ERROR: permission denied for'); ######################################### # Run all runs -foreach my $run (sort keys %pgdump_runs) { +foreach my $run (sort keys %pgdump_runs) +{ my $test_key = $run; - $node->command_ok(\@{ $pgdump_runs{$run}->{dump_cmd} }, "$run: pg_dump runs"); + $node->command_ok(\@{ $pgdump_runs{$run}->{dump_cmd} }, + "$run: pg_dump runs"); - if ($pgdump_runs{$run}->{restore_cmd}) { - $node->command_ok(\@{ $pgdump_runs{$run}->{restore_cmd} }, "$run: pg_restore runs"); + if ($pgdump_runs{$run}->{restore_cmd}) + { + $node->command_ok(\@{ $pgdump_runs{$run}->{restore_cmd} }, + "$run: pg_restore runs"); } - if ($pgdump_runs{$run}->{test_key}) { + if ($pgdump_runs{$run}->{test_key}) + { $test_key = $pgdump_runs{$run}->{test_key}; } @@ -2927,13 +2519,19 @@ foreach my $run (sort keys %pgdump_runs) { # Run all tests where this run is included # as either a 'like' or 'unlike' test. - foreach my $test (sort keys %tests) { - if ($tests{$test}->{like}->{$test_key}) { + foreach my $test (sort keys %tests) + { + if ($tests{$test}->{like}->{$test_key}) + { like($output_file, $tests{$test}->{regexp}, "$run: dumps $test"); } - if ($tests{$test}->{unlike}->{$test_key}) { - unlike($output_file, $tests{$test}->{regexp}, "$run: does not dump $test"); + if ($tests{$test}->{unlike}->{$test_key}) + { + unlike( + $output_file, + $tests{$test}->{regexp}, + "$run: does not dump $test"); } } } diff --git a/src/bin/pg_rewind/RewindTest.pm b/src/bin/pg_rewind/RewindTest.pm index bda0516cb3..135d8f0449 100644 --- a/src/bin/pg_rewind/RewindTest.pm +++ b/src/bin/pg_rewind/RewindTest.pm @@ -114,6 +114,7 @@ sub check_query sub setup_cluster { + # Initialize master, data checksums are mandatory $node_master = get_new_node('master'); $node_master->init(allows_streaming => 1); diff --git a/src/interfaces/ecpg/preproc/parse.pl b/src/interfaces/ecpg/preproc/parse.pl index e21859198d..cc17ea8218 100644 --- a/src/interfaces/ecpg/preproc/parse.pl +++ b/src/interfaces/ecpg/preproc/parse.pl @@ -632,8 +632,8 @@ sub preload_addons my $filename = $path . "/ecpg.addons"; open(my $fh, '<', $filename) or die; - # there may be multiple lines starting ECPG: and then multiple lines of code. - # the code need to be add to all prior ECPG records. + # there may be multiple lines starting ECPG: and then multiple lines of code. + # the code need to be add to all prior ECPG records. my (@needsRules, @code, $record); # there may be comments before the first ECPG line, skip them diff --git a/src/test/modules/commit_ts/t/001_base.pl b/src/test/modules/commit_ts/t/001_base.pl index f076a2739d..427092cfc5 100644 --- a/src/test/modules/commit_ts/t/001_base.pl +++ b/src/test/modules/commit_ts/t/001_base.pl @@ -13,17 +13,21 @@ $node->append_conf('postgresql.conf', 'track_commit_timestamp = on'); $node->start; # Create a table, compare "now()" to the commit TS of its xmin -$node->safe_psql('postgres', 'create table t as select now from (select now(), pg_sleep(1)) f'); +$node->safe_psql('postgres', + 'create table t as select now from (select now(), pg_sleep(1)) f'); my $true = $node->safe_psql('postgres', - 'select t.now - ts.* < \'1s\' from t, pg_class c, pg_xact_commit_timestamp(c.xmin) ts where relname = \'t\''); +'select t.now - ts.* < \'1s\' from t, pg_class c, pg_xact_commit_timestamp(c.xmin) ts where relname = \'t\'' +); is($true, 't', 'commit TS is set'); my $ts = $node->safe_psql('postgres', - 'select ts.* from pg_class, pg_xact_commit_timestamp(xmin) ts where relname = \'t\''); +'select ts.* from pg_class, pg_xact_commit_timestamp(xmin) ts where relname = \'t\'' +); # Verify that we read the same TS after crash recovery $node->stop('immediate'); $node->start; my $recovered_ts = $node->safe_psql('postgres', - 'select ts.* from pg_class, pg_xact_commit_timestamp(xmin) ts where relname = \'t\''); +'select ts.* from pg_class, pg_xact_commit_timestamp(xmin) ts where relname = \'t\'' +); is($recovered_ts, $ts, 'commit TS remains after crash recovery'); diff --git a/src/test/modules/commit_ts/t/002_standby.pl b/src/test/modules/commit_ts/t/002_standby.pl index 9410c9c3d2..4dbde2978e 100644 --- a/src/test/modules/commit_ts/t/002_standby.pl +++ b/src/test/modules/commit_ts/t/002_standby.pl @@ -8,10 +8,11 @@ use Test::More tests => 4; use PostgresNode; my $bkplabel = 'backup'; -my $master = get_new_node('master'); +my $master = get_new_node('master'); $master->init(allows_streaming => 1); -$master->append_conf('postgresql.conf', qq{ +$master->append_conf( + 'postgresql.conf', qq{ track_commit_timestamp = on max_wal_senders = 5 wal_level = hot_standby @@ -28,30 +29,37 @@ for my $i (1 .. 10) $master->safe_psql('postgres', "create table t$i()"); } my $master_ts = $master->safe_psql('postgres', - qq{SELECT ts.* FROM pg_class, pg_xact_commit_timestamp(xmin) AS ts WHERE relname = 't10'}); -my $master_lsn = $master->safe_psql('postgres', - 'select pg_current_xlog_location()'); +qq{SELECT ts.* FROM pg_class, pg_xact_commit_timestamp(xmin) AS ts WHERE relname = 't10'} +); +my $master_lsn = + $master->safe_psql('postgres', 'select pg_current_xlog_location()'); $standby->poll_query_until('postgres', qq{SELECT '$master_lsn'::pg_lsn <= pg_last_xlog_replay_location()}) - or die "slave never caught up"; + or die "slave never caught up"; my $standby_ts = $standby->safe_psql('postgres', - qq{select ts.* from pg_class, pg_xact_commit_timestamp(xmin) ts where relname = 't10'}); +qq{select ts.* from pg_class, pg_xact_commit_timestamp(xmin) ts where relname = 't10'} +); is($master_ts, $standby_ts, "standby gives same value as master"); $master->append_conf('postgresql.conf', 'track_commit_timestamp = off'); $master->restart; $master->safe_psql('postgres', 'checkpoint'); -$master_lsn = $master->safe_psql('postgres', - 'select pg_current_xlog_location()'); +$master_lsn = + $master->safe_psql('postgres', 'select pg_current_xlog_location()'); $standby->poll_query_until('postgres', qq{SELECT '$master_lsn'::pg_lsn <= pg_last_xlog_replay_location()}) - or die "slave never caught up"; + or die "slave never caught up"; $standby->safe_psql('postgres', 'checkpoint'); # This one should raise an error now my ($ret, $standby_ts_stdout, $standby_ts_stderr) = $standby->psql('postgres', - 'select ts.* from pg_class, pg_xact_commit_timestamp(xmin) ts where relname = \'t10\''); +'select ts.* from pg_class, pg_xact_commit_timestamp(xmin) ts where relname = \'t10\'' +); is($ret, 3, 'standby errors when master turned feature off'); -is($standby_ts_stdout, '', "standby gives no value when master turned feature off"); -like($standby_ts_stderr, qr/could not get commit timestamp data/, 'expected error when master turned feature off'); +is($standby_ts_stdout, '', + "standby gives no value when master turned feature off"); +like( + $standby_ts_stderr, + qr/could not get commit timestamp data/, + 'expected error when master turned feature off'); diff --git a/src/test/modules/commit_ts/t/003_standby_2.pl b/src/test/modules/commit_ts/t/003_standby_2.pl index 138cc43dc2..d37ff182c4 100644 --- a/src/test/modules/commit_ts/t/003_standby_2.pl +++ b/src/test/modules/commit_ts/t/003_standby_2.pl @@ -8,9 +8,10 @@ use Test::More tests => 4; use PostgresNode; my $bkplabel = 'backup'; -my $master = get_new_node('master'); +my $master = get_new_node('master'); $master->init(allows_streaming => 1); -$master->append_conf('postgresql.conf', qq{ +$master->append_conf( + 'postgresql.conf', qq{ track_commit_timestamp = on max_wal_senders = 5 wal_level = hot_standby @@ -29,20 +30,25 @@ for my $i (1 .. 10) $master->append_conf('postgresql.conf', 'track_commit_timestamp = off'); $master->restart; $master->safe_psql('postgres', 'checkpoint'); -my $master_lsn = $master->safe_psql('postgres', - 'select pg_current_xlog_location()'); +my $master_lsn = + $master->safe_psql('postgres', 'select pg_current_xlog_location()'); $standby->poll_query_until('postgres', qq{SELECT '$master_lsn'::pg_lsn <= pg_last_xlog_replay_location()}) - or die "slave never caught up"; + or die "slave never caught up"; $standby->safe_psql('postgres', 'checkpoint'); $standby->restart; -my ($psql_ret, $standby_ts_stdout, $standby_ts_stderr) = $standby->psql('postgres', - qq{SELECT ts.* FROM pg_class, pg_xact_commit_timestamp(xmin) AS ts WHERE relname = 't10'}); +my ($psql_ret, $standby_ts_stdout, $standby_ts_stderr) = $standby->psql( + 'postgres', +qq{SELECT ts.* FROM pg_class, pg_xact_commit_timestamp(xmin) AS ts WHERE relname = 't10'} +); is($psql_ret, 3, 'expect error when getting commit timestamp after restart'); is($standby_ts_stdout, '', "standby does not return a value after restart"); -like($standby_ts_stderr, qr/could not get commit timestamp data/, 'expected err msg after restart'); +like( + $standby_ts_stderr, + qr/could not get commit timestamp data/, + 'expected err msg after restart'); $master->append_conf('postgresql.conf', 'track_commit_timestamp = on'); $master->restart; @@ -54,5 +60,7 @@ $standby->poll_query_until('postgres', "SELECT pg_is_in_recovery() <> true"); $standby->safe_psql('postgres', "create table t11()"); my $standby_ts = $standby->safe_psql('postgres', - qq{SELECT ts.* FROM pg_class, pg_xact_commit_timestamp(xmin) AS ts WHERE relname = 't11'}); -isnt($standby_ts, '', "standby gives valid value ($standby_ts) after promotion"); +qq{SELECT ts.* FROM pg_class, pg_xact_commit_timestamp(xmin) AS ts WHERE relname = 't11'} +); +isnt($standby_ts, '', + "standby gives valid value ($standby_ts) after promotion"); 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 626eb4b758..fd00e4bd32 100644 --- a/src/test/modules/test_pg_dump/t/001_base.pl +++ b/src/test/modules/test_pg_dump/t/001_base.pl @@ -45,175 +45,110 @@ my %pgdump_runs = ( '-f', "$tempdir/binary_upgrade.sql", '--schema-only', '--binary-upgrade', - '-d', 'postgres', # alternative way to specify database - ], - }, + '-d', 'postgres', # alternative way to specify database + ], }, clean => { dump_cmd => [ 'pg_dump', '-f', "$tempdir/clean.sql", '-c', - '-d', 'postgres', # alternative way to specify database - ], - }, + '-d', 'postgres', # alternative way to specify database + ], }, clean_if_exists => { dump_cmd => [ 'pg_dump', '-f', "$tempdir/clean_if_exists.sql", '-c', '--if-exists', - '-E', 'UTF8', # no-op, just tests that option is accepted - 'postgres', - ], - }, + '-E', 'UTF8', # no-op, just tests that option is accepted + 'postgres', ], }, column_inserts => { dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/column_inserts.sql", - '-a', - '--column-inserts', - 'postgres', - ], - }, + 'pg_dump', '-f', + "$tempdir/column_inserts.sql", '-a', + '--column-inserts', 'postgres', ], }, createdb => { dump_cmd => [ 'pg_dump', '-f', "$tempdir/createdb.sql", '-C', - '-R', # no-op, just for testing - 'postgres', - ], - }, + '-R', # no-op, just for testing + 'postgres', ], }, data_only => { dump_cmd => [ 'pg_dump', '-f', "$tempdir/data_only.sql", '-a', - '-v', # no-op, just make sure it works - 'postgres', - ], - }, + '-v', # no-op, just make sure it works + 'postgres', ], }, defaults => { - dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/defaults.sql", - 'postgres', - ], + dump_cmd => [ 'pg_dump', '-f', "$tempdir/defaults.sql", 'postgres', ], }, defaults_custom_format => { test_key => 'defaults', dump_cmd => [ - 'pg_dump', - '-Fc', - '-Z6', - '-f', "$tempdir/defaults_custom_format.dump", - 'postgres', - ], + 'pg_dump', '-Fc', '-Z6', '-f', + "$tempdir/defaults_custom_format.dump", 'postgres', ], restore_cmd => [ 'pg_restore', - '-f', "$tempdir/defaults_custom_format.sql", - "$tempdir/defaults_custom_format.dump", - ], - }, + '-f', + "$tempdir/defaults_custom_format.sql", + "$tempdir/defaults_custom_format.dump", ], }, defaults_dir_format => { test_key => 'defaults', dump_cmd => [ - 'pg_dump', - '-Fd', - '-f', "$tempdir/defaults_dir_format", - 'postgres', - ], + 'pg_dump', '-Fd', '-f', "$tempdir/defaults_dir_format", + 'postgres', ], restore_cmd => [ 'pg_restore', - '-f', "$tempdir/defaults_dir_format.sql", - "$tempdir/defaults_dir_format", - ], - }, + '-f', + "$tempdir/defaults_dir_format.sql", + "$tempdir/defaults_dir_format", ], }, defaults_parallel => { test_key => 'defaults', dump_cmd => [ - 'pg_dump', - '-Fd', - '-j2', - '-f', "$tempdir/defaults_parallel", - 'postgres', - ], + 'pg_dump', '-Fd', '-j2', '-f', "$tempdir/defaults_parallel", + 'postgres', ], restore_cmd => [ - 'pg_restore', - '-f', "$tempdir/defaults_parallel.sql", - "$tempdir/defaults_parallel", - ], + 'pg_restore', '-f', + "$tempdir/defaults_parallel.sql", "$tempdir/defaults_parallel", ], }, defaults_tar_format => { test_key => 'defaults', dump_cmd => [ - 'pg_dump', - '-Ft', - '-f', "$tempdir/defaults_tar_format.tar", - 'postgres', - ], + 'pg_dump', '-Ft', '-f', "$tempdir/defaults_tar_format.tar", + 'postgres', ], restore_cmd => [ 'pg_restore', - '-f', "$tempdir/defaults_tar_format.sql", - "$tempdir/defaults_tar_format.tar", - ], - }, + '-f', + "$tempdir/defaults_tar_format.sql", + "$tempdir/defaults_tar_format.tar", ], }, pg_dumpall_globals => { - dump_cmd => [ - 'pg_dumpall', - '-f', "$tempdir/pg_dumpall_globals.sql", - '-g', - ], - }, + dump_cmd => + [ 'pg_dumpall', '-f', "$tempdir/pg_dumpall_globals.sql", '-g', ], }, no_privs => { - dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/no_privs.sql", - '-x', - 'postgres', - ], - }, + dump_cmd => + [ 'pg_dump', '-f', "$tempdir/no_privs.sql", '-x', 'postgres', ], }, no_owner => { - dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/no_owner.sql", - '-O', - 'postgres', - ], - }, + dump_cmd => + [ 'pg_dump', '-f', "$tempdir/no_owner.sql", '-O', 'postgres', ], }, schema_only => { - dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/schema_only.sql", - '-s', - 'postgres', - ], + dump_cmd => + [ 'pg_dump', '-f', "$tempdir/schema_only.sql", '-s', 'postgres', ], }, section_pre_data => { dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/section_pre_data.sql", - '--section=pre-data', - 'postgres', - ], - }, + 'pg_dump', '-f', "$tempdir/section_pre_data.sql", + '--section=pre-data', 'postgres', ], }, section_data => { dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/section_data.sql", - '--section=data', - 'postgres', - ], - }, + 'pg_dump', '-f', + "$tempdir/section_data.sql", '--section=data', + 'postgres', ], }, section_post_data => { dump_cmd => [ - 'pg_dump', - '-f', "$tempdir/section_post_data.sql", - '--section=post-data', - 'postgres', - ], - }, -); + 'pg_dump', '-f', "$tempdir/section_post_data.sql", + '--section=post-data', 'postgres', ], },); ############################################################### # Definition of the tests to run. @@ -255,200 +190,167 @@ my %pgdump_runs = ( my %tests = ( 'CREATE EXTENSION test_pg_dump' => { create_order => 2, - create_sql => 'CREATE EXTENSION test_pg_dump;', - regexp => qr/^ + create_sql => 'CREATE EXTENSION test_pg_dump;', + regexp => qr/^ \QCREATE EXTENSION IF NOT EXISTS test_pg_dump WITH SCHEMA public;\E $/xm, like => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - no_privs => 1, - no_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, + no_privs => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - binary_upgrade => 1, + binary_upgrade => 1, pg_dumpall_globals => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'CREATE ROLE dump_test' => { create_order => 1, - create_sql => 'CREATE ROLE dump_test;', - regexp => qr/^CREATE ROLE dump_test;$/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, - }, - }, + create_sql => 'CREATE ROLE dump_test;', + regexp => qr/^CREATE ROLE dump_test;$/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, }, }, 'CREATE TABLE regress_pg_dump_table' => { regexp => qr/^ \QCREATE TABLE regress_pg_dump_table (\E \n\s+\Qcol1 integer,\E \n\s+\Qcol2 integer\E \n\);$/xm, - like => { - binary_upgrade => 1, - }, + like => { binary_upgrade => 1, }, unlike => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - no_privs => 1, - no_owner => 1, + 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, - }, - }, + schema_only => 1, + section_pre_data => 1, + section_post_data => 1, }, }, 'CREATE ACCESS METHOD regress_test_am' => { regexp => qr/^ \QCREATE ACCESS METHOD regress_test_am TYPE INDEX HANDLER bthandler;\E $/xm, - like => { - binary_upgrade => 1, - }, + like => { binary_upgrade => 1, }, unlike => { - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - no_privs => 1, - no_owner => 1, + 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, - }, - }, + schema_only => 1, + section_pre_data => 1, + section_post_data => 1, }, }, 'COMMENT ON EXTENSION test_pg_dump' => { regexp => qr/^ \QCOMMENT ON EXTENSION test_pg_dump \E \QIS 'Test pg_dump with an extension';\E $/xm, like => { - 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, - }, + 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, }, unlike => { pg_dumpall_globals => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'GRANT SELECT ON TABLE regress_pg_dump_table' => { regexp => qr/^ \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(true);\E\n \QGRANT SELECT ON TABLE regress_pg_dump_table TO dump_test;\E\n \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\E $/xms, - like => { - binary_upgrade => 1, - }, + 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, + 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, - }, - }, + section_post_data => 1, }, }, 'GRANT SELECT(col1) ON regress_pg_dump_table' => { regexp => qr/^ \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(true);\E\n \QGRANT SELECT(col1) ON TABLE regress_pg_dump_table TO PUBLIC;\E\n \QSELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\E $/xms, - like => { - binary_upgrade => 1, - }, + 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, + 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, - }, - }, + section_post_data => 1, }, }, 'GRANT SELECT(col2) ON regress_pg_dump_table TO dump_test' => { create_order => 4, - create_sql => 'GRANT SELECT(col2) ON regress_pg_dump_table + create_sql => 'GRANT SELECT(col2) ON regress_pg_dump_table TO dump_test;', regexp => qr/^ \QGRANT SELECT(col2) ON TABLE regress_pg_dump_table TO dump_test;\E $/xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - no_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - no_privs => 1, + no_privs => 1, pg_dumpall_globals => 1, - section_post_data => 1, - }, - }, + section_post_data => 1, }, }, 'REVOKE SELECT(col1) ON regress_pg_dump_table' => { create_order => 3, - create_sql => 'REVOKE SELECT(col1) ON regress_pg_dump_table + create_sql => 'REVOKE SELECT(col1) ON regress_pg_dump_table FROM PUBLIC;', regexp => qr/^ \QREVOKE SELECT(col1) ON TABLE regress_pg_dump_table FROM PUBLIC;\E $/xm, like => { - binary_upgrade => 1, - clean => 1, - clean_if_exists => 1, - createdb => 1, - defaults => 1, - no_owner => 1, - schema_only => 1, - section_pre_data => 1, - }, + binary_upgrade => 1, + clean => 1, + clean_if_exists => 1, + createdb => 1, + defaults => 1, + no_owner => 1, + schema_only => 1, + section_pre_data => 1, }, unlike => { - no_privs => 1, + no_privs => 1, pg_dumpall_globals => 1, - section_post_data => 1, - }, - }, -); + section_post_data => 1, }, },); ######################################### # Create a PG instance to test actually dumping from @@ -461,28 +363,34 @@ my $port = $node->port; my $num_tests = 0; -foreach my $run (sort keys %pgdump_runs) { +foreach my $run (sort keys %pgdump_runs) +{ my $test_key = $run; # Each run of pg_dump is a test itself $num_tests++; # If there is a restore cmd, that's another test - if ($pgdump_runs{$run}->{restore_cmd}) { + if ($pgdump_runs{$run}->{restore_cmd}) + { $num_tests++; } - if ($pgdump_runs{$run}->{test_key}) { + if ($pgdump_runs{$run}->{test_key}) + { $test_key = $pgdump_runs{$run}->{test_key}; } # Then count all the tests run against each run - foreach my $test (sort keys %tests) { - if ($tests{$test}->{like}->{$test_key}) { + foreach my $test (sort keys %tests) + { + if ($tests{$test}->{like}->{$test_key}) + { $num_tests++; } - if ($tests{$test}->{unlike}->{$test_key}) { + if ($tests{$test}->{unlike}->{$test_key}) + { $num_tests++; } } @@ -497,17 +405,26 @@ my $create_sql = ''; foreach my $test ( sort { - if ($tests{$a}->{create_order} and $tests{$b}->{create_order}) { + if ($tests{$a}->{create_order} and $tests{$b}->{create_order}) + { $tests{$a}->{create_order} <=> $tests{$b}->{create_order}; - } elsif ($tests{$a}->{create_order}) { + } + elsif ($tests{$a}->{create_order}) + { -1; - } elsif ($tests{$b}->{create_order}) { + } + elsif ($tests{$b}->{create_order}) + { 1; - } else { + } + else + { 0; } - } keys %tests) { - if ($tests{$test}->{create_sql}) { + } keys %tests) +{ + if ($tests{$test}->{create_sql}) + { $create_sql .= $tests{$test}->{create_sql}; } } @@ -518,17 +435,22 @@ $node->safe_psql('postgres', $create_sql); ######################################### # Run all runs -foreach my $run (sort keys %pgdump_runs) { +foreach my $run (sort keys %pgdump_runs) +{ my $test_key = $run; - $node->command_ok(\@{ $pgdump_runs{$run}->{dump_cmd} }, "$run: pg_dump runs"); + $node->command_ok(\@{ $pgdump_runs{$run}->{dump_cmd} }, + "$run: pg_dump runs"); - if ($pgdump_runs{$run}->{restore_cmd}) { - $node->command_ok(\@{ $pgdump_runs{$run}->{restore_cmd} }, "$run: pg_restore runs"); + if ($pgdump_runs{$run}->{restore_cmd}) + { + $node->command_ok(\@{ $pgdump_runs{$run}->{restore_cmd} }, + "$run: pg_restore runs"); } - if ($pgdump_runs{$run}->{test_key}) { + if ($pgdump_runs{$run}->{test_key}) + { $test_key = $pgdump_runs{$run}->{test_key}; } @@ -538,13 +460,19 @@ foreach my $run (sort keys %pgdump_runs) { # Run all tests where this run is included # as either a 'like' or 'unlike' test. - foreach my $test (sort keys %tests) { - if ($tests{$test}->{like}->{$test_key}) { + foreach my $test (sort keys %tests) + { + if ($tests{$test}->{like}->{$test_key}) + { like($output_file, $tests{$test}->{regexp}, "$run: dumps $test"); } - if ($tests{$test}->{unlike}->{$test_key}) { - unlike($output_file, $tests{$test}->{regexp}, "$run: does not dump $test"); + if ($tests{$test}->{unlike}->{$test_key}) + { + unlike( + $output_file, + $tests{$test}->{regexp}, + "$run: does not dump $test"); } } } diff --git a/src/test/perl/PostgresNode.pm b/src/test/perl/PostgresNode.pm index 4e66006af3..636dfec5c0 100644 --- a/src/test/perl/PostgresNode.pm +++ b/src/test/perl/PostgresNode.pm @@ -103,6 +103,7 @@ our ($test_localhost, $test_pghost, $last_port_assigned, @all_nodes); INIT { + # PGHOST is set once and for all through a single series of tests when # this module is loaded. $test_localhost = "127.0.0.1"; @@ -540,11 +541,12 @@ sub _backup_fs if ($hot) { + # We ignore pg_stop_backup's return value. We also assume archiving # is enabled; otherwise the caller will have to copy the remaining # segments. - my $stdout = $self->safe_psql('postgres', - 'SELECT * FROM pg_stop_backup();'); + my $stdout = + $self->safe_psql('postgres', 'SELECT * FROM pg_stop_backup();'); print "# pg_stop_backup: $stdout\n"; } @@ -842,6 +844,7 @@ sub get_new_node while ($found == 0) { + # advance $port, wrapping correctly around range end $port = 49152 if ++$port >= 65536; print "# Checking port $port\n"; @@ -896,6 +899,7 @@ sub get_new_node # order, later when the File::Temp objects are destroyed. END { + # take care not to change the script's exit value my $exit_code = $?; @@ -1078,7 +1082,7 @@ sub psql IPC::Run::timeout($params{timeout}, exception => $timeout_exception) if (defined($params{timeout})); - ${$params{timed_out}} = 0 if defined $params{timed_out}; + ${ $params{timed_out} } = 0 if defined $params{timed_out}; # IPC::Run would otherwise append to existing contents: $$stdout = "" if ref($stdout); @@ -1107,6 +1111,7 @@ sub psql my $exc_save = $@; if ($exc_save) { + # IPC::Run::run threw an exception. re-throw unless it's a # timeout, which we'll handle by testing is_expired die $exc_save diff --git a/src/test/perl/RecursiveCopy.pm b/src/test/perl/RecursiveCopy.pm index c4da1bbd83..3e98813286 100644 --- a/src/test/perl/RecursiveCopy.pm +++ b/src/test/perl/RecursiveCopy.pm @@ -65,7 +65,7 @@ sub copypath { die "if specified, filterfn must be a subroutine reference" unless defined(ref $params{filterfn}) - and (ref $params{filterfn} eq 'CODE'); + and (ref $params{filterfn} eq 'CODE'); $filterfn = $params{filterfn}; } @@ -93,7 +93,8 @@ sub _copypath_recurse # Can't handle symlinks or other weird things die "Source path \"$srcpath\" is not a regular file or directory" - unless -f $srcpath or -d $srcpath; + unless -f $srcpath + or -d $srcpath; # Abort if destination path already exists. Should we allow directories # to exist already? diff --git a/src/test/perl/TestLib.pm b/src/test/perl/TestLib.pm index 0057f6dfe9..649fd82173 100644 --- a/src/test/perl/TestLib.pm +++ b/src/test/perl/TestLib.pm @@ -109,6 +109,7 @@ INIT END { + # Preserve temporary directory for this test on failure $File::Temp::KEEP_ALL = 1 unless all_tests_passing(); } diff --git a/src/test/recovery/t/001_stream_rep.pl b/src/test/recovery/t/001_stream_rep.pl index 06c3c1f4cd..7b42f21534 100644 --- a/src/test/recovery/t/001_stream_rep.pl +++ b/src/test/recovery/t/001_stream_rep.pl @@ -51,10 +51,13 @@ my $result = print "standby 1: $result\n"; is($result, qq(1002), 'check streamed content on standby 1'); -$result = $node_standby_2->safe_psql('postgres', "SELECT count(*) FROM tab_int"); +$result = + $node_standby_2->safe_psql('postgres', "SELECT count(*) FROM tab_int"); print "standby 2: $result\n"; is($result, qq(1002), 'check streamed content on standby 2'); # Check that only READ-only queries can run on standbys -is($node_standby_1->psql('postgres', 'INSERT INTO tab_int VALUES (1)'), 3, 'Read-only queries on standby 1'); -is($node_standby_2->psql('postgres', 'INSERT INTO tab_int VALUES (1)'), 3, 'Read-only queries on standby 2'); +is($node_standby_1->psql('postgres', 'INSERT INTO tab_int VALUES (1)'), + 3, 'Read-only queries on standby 1'); +is($node_standby_2->psql('postgres', 'INSERT INTO tab_int VALUES (1)'), + 3, 'Read-only queries on standby 2'); diff --git a/src/test/recovery/t/002_archiving.pl b/src/test/recovery/t/002_archiving.pl index b0b25380d2..fc2bf7ee1d 100644 --- a/src/test/recovery/t/002_archiving.pl +++ b/src/test/recovery/t/002_archiving.pl @@ -48,5 +48,6 @@ my $caughtup_query = $node_standby->poll_query_until('postgres', $caughtup_query) or die "Timed out while waiting for standby to catch up"; -my $result = $node_standby->safe_psql('postgres', "SELECT count(*) FROM tab_int"); +my $result = + $node_standby->safe_psql('postgres', "SELECT count(*) FROM tab_int"); is($result, qq(1000), 'check content from archives'); diff --git a/src/test/recovery/t/003_recovery_targets.pl b/src/test/recovery/t/003_recovery_targets.pl index b20116ac8c..20b878e524 100644 --- a/src/test/recovery/t/003_recovery_targets.pl +++ b/src/test/recovery/t/003_recovery_targets.pl @@ -66,7 +66,8 @@ $node_master->backup('my_backup'); # target TXID. $node_master->safe_psql('postgres', "INSERT INTO tab_int VALUES (generate_series(1001,2000))"); -my $recovery_txid = $node_master->safe_psql('postgres', "SELECT txid_current()"); +my $recovery_txid = + $node_master->safe_psql('postgres', "SELECT txid_current()"); my $lsn2 = $node_master->safe_psql('postgres', "SELECT pg_current_xlog_location();"); diff --git a/src/test/recovery/t/004_timeline_switch.pl b/src/test/recovery/t/004_timeline_switch.pl index 6af06c7e59..3ee8df2cdc 100644 --- a/src/test/recovery/t/004_timeline_switch.pl +++ b/src/test/recovery/t/004_timeline_switch.pl @@ -63,8 +63,8 @@ $node_standby_1->poll_query_until('postgres', "SELECT pg_is_in_recovery() <> true"); $node_standby_1->safe_psql('postgres', "INSERT INTO tab_int VALUES (generate_series(1001,2000))"); -$until_lsn = - $node_standby_1->safe_psql('postgres', "SELECT pg_current_xlog_location();"); +$until_lsn = $node_standby_1->safe_psql('postgres', + "SELECT pg_current_xlog_location();"); $caughtup_query = "SELECT '$until_lsn'::pg_lsn <= pg_last_xlog_replay_location()"; $node_standby_2->poll_query_until('postgres', $caughtup_query) diff --git a/src/test/recovery/t/005_replay_delay.pl b/src/test/recovery/t/005_replay_delay.pl index e38ab9dfd2..cfd8929242 100644 --- a/src/test/recovery/t/005_replay_delay.pl +++ b/src/test/recovery/t/005_replay_delay.pl @@ -21,7 +21,7 @@ $node_master->backup($backup_name); # Create streaming standby from backup my $node_standby = get_new_node('standby'); -my $delay = 3; +my $delay = 3; $node_standby->init_from_backup($node_master, $backup_name, has_streaming => 1); $node_standby->append_conf( @@ -47,10 +47,11 @@ my $until_lsn = my $remaining = 90; while ($remaining-- > 0) { + # Done waiting? - my $replay_status = - $node_standby->safe_psql('postgres', - "SELECT (pg_last_xlog_replay_location() - '$until_lsn'::pg_lsn) >= 0"); + my $replay_status = $node_standby->safe_psql('postgres', + "SELECT (pg_last_xlog_replay_location() - '$until_lsn'::pg_lsn) >= 0" + ); last if $replay_status eq 't'; # No, sleep some more. @@ -59,9 +60,10 @@ while ($remaining-- > 0) sleep $sleep; } -die "Maximum number of attempts reached ($remaining remain)" if $remaining < 0; +die "Maximum number of attempts reached ($remaining remain)" + if $remaining < 0; # This test is successful if and only if the LSN has been applied with at least # the configured apply delay. ok(time() - $master_insert_time >= $delay, - "Check that standby applies WAL only after replication delay"); + "Check that standby applies WAL only after replication delay"); diff --git a/src/test/recovery/t/007_sync_rep.pl b/src/test/recovery/t/007_sync_rep.pl index d551954bcb..baf4477e3c 100644 --- a/src/test/recovery/t/007_sync_rep.pl +++ b/src/test/recovery/t/007_sync_rep.pl @@ -6,7 +6,8 @@ use TestLib; use Test::More tests => 8; # Query checking sync_priority and sync_state of each standby -my $check_sql = "SELECT application_name, sync_priority, sync_state FROM pg_stat_replication ORDER BY application_name;"; +my $check_sql = +"SELECT application_name, sync_priority, sync_state FROM pg_stat_replication ORDER BY application_name;"; # Check that sync_state of each standby is expected. # If $setting is given, synchronous_standby_names is set to it and @@ -18,12 +19,12 @@ sub test_sync_state if (defined($setting)) { $self->psql('postgres', - "ALTER SYSTEM SET synchronous_standby_names = '$setting';"); + "ALTER SYSTEM SET synchronous_standby_names = '$setting';"); $self->reload; } my $timeout_max = 30; - my $timeout = 0; + my $timeout = 0; my $result; # A reload may take some time to take effect on busy machines, @@ -71,7 +72,8 @@ $node_standby_3->start; # Check that sync_state is determined correctly when # synchronous_standby_names is specified in old syntax. -test_sync_state($node_master, qq(standby1|1|sync +test_sync_state( + $node_master, qq(standby1|1|sync standby2|2|potential standby3|0|async), 'old syntax of synchronous_standby_names', @@ -82,7 +84,8 @@ standby3|0|async), # Note that standby1 is chosen as sync standby because # it's stored in the head of WalSnd array which manages # all the standbys though they have the same priority. -test_sync_state($node_master, qq(standby1|1|sync +test_sync_state( + $node_master, qq(standby1|1|sync standby2|1|potential standby3|1|potential), 'asterisk in synchronous_standby_names', @@ -100,7 +103,8 @@ $node_standby_3->start; # Specify 2 as the number of sync standbys. # Check that two standbys are in 'sync' state. -test_sync_state($node_master, qq(standby2|2|sync +test_sync_state( + $node_master, qq(standby2|2|sync standby3|3|sync), '2 synchronous standbys', '2(standby1,standby2,standby3)'); @@ -111,14 +115,15 @@ $node_standby_1->start; # Create standby4 linking to master my $node_standby_4 = get_new_node('standby4'); $node_standby_4->init_from_backup($node_master, $backup_name, - has_streaming => 1); + has_streaming => 1); $node_standby_4->start; # Check that standby1 and standby2 whose names appear earlier in # synchronous_standby_names are considered as sync. Also check that # standby3 appearing later represents potential, and standby4 is # in 'async' state because it's not in the list. -test_sync_state($node_master, qq(standby1|1|sync +test_sync_state( + $node_master, qq(standby1|1|sync standby2|2|sync standby3|3|potential standby4|0|async), @@ -127,7 +132,8 @@ standby4|0|async), # Check that sync_state of each standby is determined correctly # when num_sync exceeds the number of names of potential sync standbys # specified in synchronous_standby_names. -test_sync_state($node_master, qq(standby1|0|async +test_sync_state( + $node_master, qq(standby1|0|async standby2|4|sync standby3|3|sync standby4|1|sync), @@ -138,7 +144,8 @@ standby4|1|sync), # but does not make sense in most cases. Check that sync_state is # chosen properly even in case of that setting. # The priority of standby2 should be 2 because it matches * first. -test_sync_state($node_master, qq(standby1|1|sync +test_sync_state( + $node_master, qq(standby1|1|sync standby2|2|sync standby3|2|potential standby4|2|potential), @@ -147,7 +154,8 @@ standby4|2|potential), # Check that the setting of '2(*)' chooses standby2 and standby3 that are stored # earlier in WalSnd array as sync standbys. -test_sync_state($node_master, qq(standby1|1|potential +test_sync_state( + $node_master, qq(standby1|1|potential standby2|1|sync standby3|1|sync standby4|1|potential), @@ -159,7 +167,8 @@ $node_standby_3->stop; # Check that the state of standby1 stored earlier in WalSnd array than # standby4 is transited from potential to sync. -test_sync_state($node_master, qq(standby1|1|sync +test_sync_state( + $node_master, qq(standby1|1|sync standby2|1|sync standby4|1|potential), 'potential standby found earlier in array is promoted to sync'); diff --git a/src/tools/copyright.pl b/src/tools/copyright.pl index 07d260b0b1..aab162ed75 100755 --- a/src/tools/copyright.pl +++ b/src/tools/copyright.pl @@ -16,8 +16,8 @@ use File::Find; use File::Basename; use Tie::File; -my $pgdg = 'PostgreSQL Global Development Group'; -my $cc = 'Copyright \(c\)'; +my $pgdg = 'PostgreSQL Global Development Group'; +my $cc = 'Copyright \(c\)'; my $ccliteral = 'Copyright (c)'; # year-1900 is what localtime(time) puts in element 5 diff --git a/src/tools/git_changelog b/src/tools/git_changelog index 8d77016227..c9a503f3fe 100755 --- a/src/tools/git_changelog +++ b/src/tools/git_changelog @@ -66,24 +66,24 @@ my @BRANCHES = qw(master # Might want to make this parameter user-settable. my $timestamp_slop = 24 * 60 * 60; -my $brief = 0; -my $details_after = 0; -my $post_date = 0; -my $master_only = 0; +my $brief = 0; +my $details_after = 0; +my $post_date = 0; +my $master_only = 0; my $non_master_only = 0; -my $oldest_first = 0; +my $oldest_first = 0; my $since; my @output_buffer; my $output_line = ''; Getopt::Long::GetOptions( - 'brief' => \$brief, - 'details-after' => \$details_after, - 'master-only' => \$master_only, + 'brief' => \$brief, + 'details-after' => \$details_after, + 'master-only' => \$master_only, 'non-master-only' => \$non_master_only, - 'post-date' => \$post_date, - 'oldest-first' => \$oldest_first, - 'since=s' => \$since) || usage(); + 'post-date' => \$post_date, + 'oldest-first' => \$oldest_first, + 'since=s' => \$since) || usage(); usage() if @ARGV; my @git = qw(git log --format=fuller --date=iso); @@ -250,7 +250,7 @@ while (1) if ($master_only) { $print_it = (@{ $winner->{'commits'} } == 1) - && ($winner->{'commits'}[0]->{'branch'} eq 'master'); + && ($winner->{'commits'}[0]->{'branch'} eq 'master'); } elsif ($non_master_only) { @@ -374,20 +374,20 @@ sub output_details { $item->{'message'} =~ m/^\s*(.*)/; - output_str("%s [%s] %s\n", - substr($c->{'date'}, 0, 10), - substr($c->{'commit'}, 0, 9), - substr($1, 0, 56)); + output_str( + "%s [%s] %s\n", + substr($c->{'date'}, 0, 10), + substr($c->{'commit'}, 0, 9), + substr($1, 0, 56)); } else { output_str("Branch: %s ", $c->{'branch'}) - if (!$master_only); + if (!$master_only); output_str("Release: %s ", $c->{'last_tag'}) - if (defined $c->{'last_tag'}); - output_str("[%s] %s\n", - substr($c->{'commit'}, 0, 9), - $c->{'date'}); + if (defined $c->{'last_tag'}); + output_str("[%s] %s\n", substr($c->{'commit'}, 0, 9), + $c->{'date'}); } } output_str("\n"); diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm index 3c36c5df13..031719d5d8 100644 --- a/src/tools/msvc/Install.pm +++ b/src/tools/msvc/Install.pm @@ -582,7 +582,8 @@ sub CopyIncludeFiles 'Public headers', $target . '/include/', 'src/include/', 'postgres_ext.h', 'pg_config.h', 'pg_config_ext.h', - 'pg_config_os.h', 'dynloader.h', 'pg_config_manual.h'); + 'pg_config_os.h', 'dynloader.h', + 'pg_config_manual.h'); lcopy('src/include/libpq/libpq-fs.h', $target . '/include/libpq/') || croak 'Could not copy libpq-fs.h'; diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm index e7268cb2ed..fe905d3c9d 100644 --- a/src/tools/msvc/Mkvcbuild.pm +++ b/src/tools/msvc/Mkvcbuild.pm @@ -41,9 +41,12 @@ my $contrib_extrasource = { 'cube' => [ 'contrib/cube/cubescan.l', 'contrib/cube/cubeparse.y' ], 'seg' => [ 'contrib/seg/segscan.l', 'contrib/seg/segparse.y' ], }; my @contrib_excludes = ( - 'commit_ts', 'hstore_plperl', 'hstore_plpython', 'intagg', - 'ltree_plpython', 'pgcrypto', 'sepgsql', 'brin', - 'test_extensions', 'test_pg_dump', 'snapshot_too_old'); + 'commit_ts', 'hstore_plperl', + 'hstore_plpython', 'intagg', + 'ltree_plpython', 'pgcrypto', + 'sepgsql', 'brin', + 'test_extensions', 'test_pg_dump', + 'snapshot_too_old'); # Set of variables for frontend modules my $frontend_defines = { 'initdb' => 'FRONTEND' }; @@ -63,9 +66,9 @@ my $frontend_extralibs = { 'psql' => ['ws2_32.lib'] }; my $frontend_extraincludes = { 'initdb' => ['src/timezone'], - 'psql' => [ 'src/backend' ] }; + 'psql' => ['src/backend'] }; my $frontend_extrasource = { - 'psql' => [ 'src/bin/psql/psqlscanslash.l' ], + 'psql' => ['src/bin/psql/psqlscanslash.l'], 'pgbench' => [ 'src/bin/pgbench/exprscan.l', 'src/bin/pgbench/exprparse.y' ] }; my @frontend_excludes = ( @@ -155,8 +158,10 @@ sub mkvcbuild $postgres->AddFiles('src/backend/bootstrap', 'bootscanner.l', 'bootparse.y'); $postgres->AddFiles('src/backend/utils/misc', 'guc-file.l'); - $postgres->AddFiles('src/backend/replication', 'repl_scanner.l', - 'repl_gram.y', 'syncrep_scanner.l', 'syncrep_gram.y'); + $postgres->AddFiles( + 'src/backend/replication', 'repl_scanner.l', + 'repl_gram.y', 'syncrep_scanner.l', + 'syncrep_gram.y'); $postgres->AddDefine('BUILDING_DLL'); $postgres->AddLibrary('secur32.lib'); $postgres->AddLibrary('ws2_32.lib'); @@ -625,8 +630,7 @@ sub mkvcbuild } } $proj->AddIncludeDir('src/interfaces/libpq'); - $proj->AddReference($libpq, $libpgfeutils, $libpgcommon, - $libpgport); + $proj->AddReference($libpq, $libpgfeutils, $libpgcommon, $libpgport); $proj->AddDirResourceFile('src/bin/scripts'); $proj->AddLibrary('ws2_32.lib'); } diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index 43620c249f..f07029bce1 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -286,7 +286,8 @@ s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY } if (IsNewer( - 'src/include/storage/lwlocknames.h', 'src/backend/storage/lmgr/lwlocknames.txt')) + 'src/include/storage/lwlocknames.h', + 'src/backend/storage/lmgr/lwlocknames.txt')) { print "Generating lwlocknames.c and lwlocknames.h...\n"; chdir('src/backend/storage/lmgr'); @@ -297,13 +298,13 @@ s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY 'src/include/storage/lwlocknames.h', 'src/backend/storage/lmgr/lwlocknames.h')) { - copyFile('src/backend/storage/lmgr/lwlocknames.h', + copyFile( + 'src/backend/storage/lmgr/lwlocknames.h', 'src/include/storage/lwlocknames.h'); } if (IsNewer( - 'src/include/dynloader.h', - 'src/backend/port/dynloader/win32.h')) + 'src/include/dynloader.h', 'src/backend/port/dynloader/win32.h')) { copyFile('src/backend/port/dynloader/win32.h', 'src/include/dynloader.h'); @@ -352,8 +353,7 @@ s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY if ($self->{options}->{tcl} && IsNewer( - 'src/pl/tcl/pltclerrcodes.h', - 'src/backend/utils/errcodes.txt')) + 'src/pl/tcl/pltclerrcodes.h', 'src/backend/utils/errcodes.txt')) { print "Generating pltclerrcodes.h...\n"; system( @@ -653,9 +653,9 @@ sub GetFakeConfigure $cfg .= ' --enable-cassert' if ($self->{options}->{asserts}); $cfg .= ' --enable-integer-datetimes' if ($self->{options}->{integer_datetimes}); - $cfg .= ' --enable-nls' if ($self->{options}->{nls}); + $cfg .= ' --enable-nls' if ($self->{options}->{nls}); $cfg .= ' --enable-tap-tests' if ($self->{options}->{tap_tests}); - $cfg .= ' --with-ldap' if ($self->{options}->{ldap}); + $cfg .= ' --with-ldap' if ($self->{options}->{ldap}); $cfg .= ' --without-zlib' unless ($self->{options}->{zlib}); $cfg .= ' --with-extra-version' if ($self->{options}->{extraver}); $cfg .= ' --with-openssl' if ($self->{options}->{openssl}); diff --git a/src/tools/msvc/build.pl b/src/tools/msvc/build.pl index c4e4dc79a3..007e3c73b2 100644 --- a/src/tools/msvc/build.pl +++ b/src/tools/msvc/build.pl @@ -53,7 +53,8 @@ elsif (uc($ARGV[0]) ne "RELEASE") if ($buildwhat and $vcver >= 10.00) { system( -"msbuild $buildwhat.vcxproj /verbosity:normal /p:Configuration=$bconf"); + "msbuild $buildwhat.vcxproj /verbosity:normal /p:Configuration=$bconf" + ); } elsif ($buildwhat) { diff --git a/src/tools/msvc/config_default.pl b/src/tools/msvc/config_default.pl index 33631b486b..f046687bd0 100644 --- a/src/tools/msvc/config_default.pl +++ b/src/tools/msvc/config_default.pl @@ -3,7 +3,7 @@ use strict; use warnings; our $config = { - asserts => 0, # --enable-cassert + asserts => 0, # --enable-cassert # integer_datetimes=>1, # --enable-integer-datetimes - on is now default # float4byval=>1, # --disable-float4-byval, on by default diff --git a/src/tools/msvc/pgflex.pl b/src/tools/msvc/pgflex.pl index 0410e3aa02..474ce63e5c 100644 --- a/src/tools/msvc/pgflex.pl +++ b/src/tools/msvc/pgflex.pl @@ -16,8 +16,8 @@ my ($flexver) = `flex -V`; # grab first line $flexver = (split(/\s+/, $flexver))[1]; $flexver =~ s/[^0-9.]//g; my @verparts = split(/\./, $flexver); -unless ($verparts[0] == 2 && - ($verparts[1] > 5 || ($verparts[1] == 5 && $verparts[2] >= 31))) +unless ($verparts[0] == 2 + && ($verparts[1] > 5 || ($verparts[1] == 5 && $verparts[2] >= 31))) { print "WARNING! Flex install not found, or unsupported Flex version.\n"; print "echo Attempting to build without.\n"; diff --git a/src/tools/msvc/vcregress.pl b/src/tools/msvc/vcregress.pl index 52c403791d..075279a00e 100644 --- a/src/tools/msvc/vcregress.pl +++ b/src/tools/msvc/vcregress.pl @@ -184,11 +184,11 @@ sub tap_check my $dir = shift; chdir $dir; - my @args = ( "prove", "--verbose", "t/*.pl"); + my @args = ("prove", "--verbose", "t/*.pl"); # adjust the environment for just this test local %ENV = %ENV; - $ENV{PERL5LIB} = "$topdir/src/test/perl;$ENV{PERL5LIB}"; + $ENV{PERL5LIB} = "$topdir/src/test/perl;$ENV{PERL5LIB}"; $ENV{PG_REGRESS} = "$topdir/$Config/pg_regress/pg_regress"; $ENV{TESTDIR} = "$dir"; @@ -332,6 +332,7 @@ sub contribcheck my $mstat = 0; foreach my $module (glob("*")) { + # these configuration-based exclusions must match Install.pm next if ($module eq "uuid-ossp" && !defined($config->{uuid})); next if ($module eq "sslinfo" && !defined($config->{openssl})); @@ -365,8 +366,8 @@ sub recoverycheck { InstallTemp(); - my $mstat = 0; - my $dir = "$topdir/src/test/recovery"; + my $mstat = 0; + my $dir = "$topdir/src/test/recovery"; my $status = tap_check($dir); exit $status if $status; } @@ -547,20 +548,20 @@ sub InstallTemp sub usage { print STDERR - "Usage: vcregress.pl [ ]\n\n", - "Options for :\n", - " bincheck run tests of utilities in src/bin/\n", - " check deploy instance and run regression tests on it\n", - " contribcheck run tests of modules in contrib/\n", - " ecpgcheck run regression tests of ECPG\n", - " installcheck run regression tests on existing instance\n", - " isolationcheck run isolation tests\n", - " modulescheck run tests of modules in src/test/modules/\n", - " plcheck run tests of PL languages\n", - " recoverycheck run recovery test suite\n", - " upgradecheck run tests of pg_upgrade\n", - "\nOptions for :\n", - " serial serial mode\n", - " parallel parallel mode\n"; + "Usage: vcregress.pl [ ]\n\n", + "Options for :\n", + " bincheck run tests of utilities in src/bin/\n", + " check deploy instance and run regression tests on it\n", + " contribcheck run tests of modules in contrib/\n", + " ecpgcheck run regression tests of ECPG\n", + " installcheck run regression tests on existing instance\n", + " isolationcheck run isolation tests\n", + " modulescheck run tests of modules in src/test/modules/\n", + " plcheck run tests of PL languages\n", + " recoverycheck run recovery test suite\n", + " upgradecheck run tests of pg_upgrade\n", + "\nOptions for :\n", + " serial serial mode\n", + " parallel parallel mode\n"; exit(1); }