mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
Reindent Perl files with perltidy version 20170521.
Discussion: https://postgr.es/m/CABUevEzK3cNiHZQ18f5tK0guoT+cN_jWeVzhYYxY=r+1Q3SmoA@mail.gmail.com
This commit is contained in:
@@ -20,7 +20,7 @@ my $node = get_new_node('main');
|
||||
umask(0077);
|
||||
|
||||
# Initialize node without replication settings
|
||||
$node->init(extra => [ '--data-checksums' ]);
|
||||
$node->init(extra => ['--data-checksums']);
|
||||
$node->start;
|
||||
my $pgdata = $node->data_dir;
|
||||
|
||||
@@ -47,7 +47,7 @@ ok(!-d "$tempdir/backup", 'backup directory was cleaned up');
|
||||
# Create a backup directory that is not empty so the next commnd will fail
|
||||
# but leave the data directory behind
|
||||
mkdir("$tempdir/backup")
|
||||
or BAIL_OUT("unable to create $tempdir/backup");
|
||||
or BAIL_OUT("unable to create $tempdir/backup");
|
||||
append_to_file("$tempdir/backup/dir-not-empty.txt", "Some data");
|
||||
|
||||
$node->command_fails([ 'pg_basebackup', '-D', "$tempdir/backup", '-n' ],
|
||||
@@ -86,13 +86,14 @@ my $baseUnloggedPath = $node->safe_psql('postgres',
|
||||
|
||||
# Make sure main and init forks exist
|
||||
ok(-f "$pgdata/${baseUnloggedPath}_init", 'unlogged init fork in base');
|
||||
ok(-f "$pgdata/$baseUnloggedPath", 'unlogged main fork in base');
|
||||
ok(-f "$pgdata/$baseUnloggedPath", 'unlogged main fork in base');
|
||||
|
||||
# Create files that look like temporary relations to ensure they are ignored.
|
||||
my $postgresOid = $node->safe_psql('postgres',
|
||||
q{select oid from pg_database where datname = 'postgres'});
|
||||
|
||||
my @tempRelationFiles = qw(t999_999 t9999_999.1 t999_9999_vm t99999_99999_vm.1);
|
||||
my @tempRelationFiles =
|
||||
qw(t999_999 t9999_999.1 t999_9999_vm t99999_99999_vm.1);
|
||||
|
||||
foreach my $filename (@tempRelationFiles)
|
||||
{
|
||||
@@ -107,10 +108,11 @@ ok(-f "$tempdir/backup/PG_VERSION", 'backup was created');
|
||||
# Permissions on backup should be default
|
||||
SKIP:
|
||||
{
|
||||
skip "unix-style permissions not supported on Windows", 1 if ($windows_os);
|
||||
skip "unix-style permissions not supported on Windows", 1
|
||||
if ($windows_os);
|
||||
|
||||
ok(check_mode_recursive("$tempdir/backup", 0700, 0600),
|
||||
"check backup dir permissions");
|
||||
"check backup dir permissions");
|
||||
}
|
||||
|
||||
# Only archive_status directory should be copied in pg_wal/.
|
||||
@@ -133,8 +135,7 @@ foreach my $dirname (
|
||||
# These files should not be copied.
|
||||
foreach my $filename (
|
||||
qw(postgresql.auto.conf.tmp postmaster.opts postmaster.pid tablespace_map current_logfiles.tmp
|
||||
global/pg_internal.init)
|
||||
)
|
||||
global/pg_internal.init))
|
||||
{
|
||||
ok(!-f "$tempdir/backup/$filename", "$filename not copied");
|
||||
}
|
||||
@@ -142,14 +143,14 @@ foreach my $filename (
|
||||
# Unlogged relation forks other than init should not be copied
|
||||
ok(-f "$tempdir/backup/${baseUnloggedPath}_init",
|
||||
'unlogged init fork in backup');
|
||||
ok(!-f "$tempdir/backup/$baseUnloggedPath",
|
||||
ok( !-f "$tempdir/backup/$baseUnloggedPath",
|
||||
'unlogged main fork not in backup');
|
||||
|
||||
# Temp relations should not be copied.
|
||||
foreach my $filename (@tempRelationFiles)
|
||||
{
|
||||
ok(!-f "$tempdir/backup/base/$postgresOid/$filename",
|
||||
"base/$postgresOid/$filename not copied");
|
||||
ok( !-f "$tempdir/backup/base/$postgresOid/$filename",
|
||||
"base/$postgresOid/$filename not copied");
|
||||
}
|
||||
|
||||
# Make sure existing backup_label was ignored.
|
||||
@@ -212,7 +213,7 @@ SKIP:
|
||||
# Move pg_replslot out of $pgdata and create a symlink to it.
|
||||
$node->stop;
|
||||
|
||||
# Set umask so test directories and files are created with group permissions
|
||||
# Set umask so test directories and files are created with group permissions
|
||||
umask(0027);
|
||||
|
||||
# Enable group permissions on PGDATA
|
||||
@@ -244,24 +245,27 @@ SKIP:
|
||||
is(scalar(@tblspc_tars), 1, 'one tablespace tar was created');
|
||||
rmtree("$tempdir/tarbackup2");
|
||||
|
||||
# Create an unlogged table to test that forks other than init are not copied.
|
||||
# Create an unlogged table to test that forks other than init are not copied.
|
||||
$node->safe_psql('postgres',
|
||||
'CREATE UNLOGGED TABLE tblspc1_unlogged (id int) TABLESPACE tblspc1;');
|
||||
'CREATE UNLOGGED TABLE tblspc1_unlogged (id int) TABLESPACE tblspc1;'
|
||||
);
|
||||
|
||||
my $tblspc1UnloggedPath = $node->safe_psql(
|
||||
'postgres', q{select pg_relation_filepath('tblspc1_unlogged')});
|
||||
my $tblspc1UnloggedPath = $node->safe_psql('postgres',
|
||||
q{select pg_relation_filepath('tblspc1_unlogged')});
|
||||
|
||||
# Make sure main and init forks exist
|
||||
ok(-f "$pgdata/${tblspc1UnloggedPath}_init",
|
||||
ok( -f "$pgdata/${tblspc1UnloggedPath}_init",
|
||||
'unlogged init fork in tablespace');
|
||||
ok(-f "$pgdata/$tblspc1UnloggedPath",
|
||||
'unlogged main fork in tablespace');
|
||||
ok(-f "$pgdata/$tblspc1UnloggedPath", 'unlogged main fork in tablespace');
|
||||
|
||||
# Create files that look like temporary relations to ensure they are ignored
|
||||
# in a tablespace.
|
||||
# Create files that look like temporary relations to ensure they are ignored
|
||||
# in a tablespace.
|
||||
my @tempRelationFiles = qw(t888_888 t888888_888888_vm.1);
|
||||
my $tblSpc1Id = basename(dirname(dirname($node->safe_psql('postgres',
|
||||
q{select pg_relation_filepath('test1')}))));
|
||||
my $tblSpc1Id = basename(
|
||||
dirname(
|
||||
dirname(
|
||||
$node->safe_psql(
|
||||
'postgres', q{select pg_relation_filepath('test1')}))));
|
||||
|
||||
foreach my $filename (@tempRelationFiles)
|
||||
{
|
||||
@@ -284,16 +288,17 @@ SKIP:
|
||||
-l "$tempdir/backup1/pg_tblspc/$_"
|
||||
and readlink "$tempdir/backup1/pg_tblspc/$_" eq
|
||||
"$tempdir/tbackup/tblspc1"
|
||||
} readdir($dh)),
|
||||
} readdir($dh)),
|
||||
"tablespace symlink was updated");
|
||||
closedir $dh;
|
||||
|
||||
# Group access should be enabled on all backup files
|
||||
ok(check_mode_recursive("$tempdir/backup1", 0750, 0640),
|
||||
"check backup dir permissions");
|
||||
"check backup dir permissions");
|
||||
|
||||
# Unlogged relation forks other than init should not be copied
|
||||
my ($tblspc1UnloggedBackupPath) = $tblspc1UnloggedPath =~ /[^\/]*\/[^\/]*\/[^\/]*$/g;
|
||||
my ($tblspc1UnloggedBackupPath) =
|
||||
$tblspc1UnloggedPath =~ /[^\/]*\/[^\/]*\/[^\/]*$/g;
|
||||
|
||||
ok(-f "$tempdir/tbackup/tblspc1/${tblspc1UnloggedBackupPath}_init",
|
||||
'unlogged init fork in tablespace backup');
|
||||
@@ -303,15 +308,15 @@ SKIP:
|
||||
# Temp relations should not be copied.
|
||||
foreach my $filename (@tempRelationFiles)
|
||||
{
|
||||
ok(!-f "$tempdir/tbackup/tblspc1/$tblSpc1Id/$postgresOid/$filename",
|
||||
"[tblspc1]/$postgresOid/$filename not copied");
|
||||
ok( !-f "$tempdir/tbackup/tblspc1/$tblSpc1Id/$postgresOid/$filename",
|
||||
"[tblspc1]/$postgresOid/$filename not copied");
|
||||
|
||||
# Also remove temp relation files or tablespace drop will fail.
|
||||
my $filepath =
|
||||
"$shorter_tempdir/tblspc1/$tblSpc1Id/$postgresOid/$filename";
|
||||
"$shorter_tempdir/tblspc1/$tblSpc1Id/$postgresOid/$filename";
|
||||
|
||||
unlink($filepath)
|
||||
or BAIL_OUT("unable to unlink $filepath");
|
||||
or BAIL_OUT("unable to unlink $filepath");
|
||||
}
|
||||
|
||||
ok( -d "$tempdir/backup1/pg_replslot",
|
||||
@@ -398,27 +403,35 @@ $node->command_fails(
|
||||
'pg_basebackup fails with nonexistent replication slot');
|
||||
|
||||
$node->command_fails(
|
||||
[ 'pg_basebackup', '-D', "$tempdir/backupxs_slot", '-C' ],
|
||||
[ 'pg_basebackup', '-D', "$tempdir/backupxs_slot", '-C' ],
|
||||
'pg_basebackup -C fails without slot name');
|
||||
|
||||
$node->command_fails(
|
||||
[ 'pg_basebackup', '-D', "$tempdir/backupxs_slot", '-C', '-S', 'slot0', '--no-slot' ],
|
||||
[ 'pg_basebackup', '-D',
|
||||
"$tempdir/backupxs_slot", '-C',
|
||||
'-S', 'slot0',
|
||||
'--no-slot' ],
|
||||
'pg_basebackup fails with -C -S --no-slot');
|
||||
|
||||
$node->command_ok(
|
||||
[ 'pg_basebackup', '-D', "$tempdir/backupxs_slot", '-C', '-S', 'slot0' ],
|
||||
[ 'pg_basebackup', '-D', "$tempdir/backupxs_slot", '-C', '-S', 'slot0' ],
|
||||
'pg_basebackup -C runs');
|
||||
rmtree("$tempdir/backupxs_slot");
|
||||
|
||||
is($node->safe_psql('postgres', q{SELECT slot_name FROM pg_replication_slots WHERE slot_name = 'slot0'}),
|
||||
'slot0',
|
||||
'replication slot was created');
|
||||
isnt($node->safe_psql('postgres', q{SELECT restart_lsn FROM pg_replication_slots WHERE slot_name = 'slot0'}),
|
||||
'',
|
||||
'restart LSN of new slot is not null');
|
||||
is( $node->safe_psql(
|
||||
'postgres',
|
||||
q{SELECT slot_name FROM pg_replication_slots WHERE slot_name = 'slot0'}),
|
||||
'slot0',
|
||||
'replication slot was created');
|
||||
isnt(
|
||||
$node->safe_psql(
|
||||
'postgres',
|
||||
q{SELECT restart_lsn FROM pg_replication_slots WHERE slot_name = 'slot0'}),
|
||||
'',
|
||||
'restart LSN of new slot is not null');
|
||||
|
||||
$node->command_fails(
|
||||
[ 'pg_basebackup', '-D', "$tempdir/backupxs_slot1", '-C', '-S', 'slot0' ],
|
||||
[ 'pg_basebackup', '-D', "$tempdir/backupxs_slot1", '-C', '-S', 'slot0' ],
|
||||
'pg_basebackup fails with -C -S and a previously existing slot');
|
||||
|
||||
$node->safe_psql('postgres',
|
||||
@@ -455,10 +468,10 @@ rmtree("$tempdir/backupxs_sl_R");
|
||||
|
||||
# create tables to corrupt and get their relfilenodes
|
||||
my $file_corrupt1 = $node->safe_psql('postgres',
|
||||
q{SELECT a INTO corrupt1 FROM generate_series(1,10000) AS a; ALTER TABLE corrupt1 SET (autovacuum_enabled=false); SELECT pg_relation_filepath('corrupt1')}
|
||||
q{SELECT a INTO corrupt1 FROM generate_series(1,10000) AS a; ALTER TABLE corrupt1 SET (autovacuum_enabled=false); SELECT pg_relation_filepath('corrupt1')}
|
||||
);
|
||||
my $file_corrupt2 = $node->safe_psql('postgres',
|
||||
q{SELECT b INTO corrupt2 FROM generate_series(1,2) AS b; ALTER TABLE corrupt2 SET (autovacuum_enabled=false); SELECT pg_relation_filepath('corrupt2')}
|
||||
q{SELECT b INTO corrupt2 FROM generate_series(1,2) AS b; ALTER TABLE corrupt2 SET (autovacuum_enabled=false); SELECT pg_relation_filepath('corrupt2')}
|
||||
);
|
||||
|
||||
# set page header and block sizes
|
||||
@@ -473,31 +486,32 @@ syswrite($file, '\0\0\0\0\0\0\0\0\0');
|
||||
close $file;
|
||||
system_or_bail 'pg_ctl', '-D', $pgdata, 'start';
|
||||
|
||||
$node->command_checks_all([ 'pg_basebackup', '-D', "$tempdir/backup_corrupt"],
|
||||
$node->command_checks_all(
|
||||
[ 'pg_basebackup', '-D', "$tempdir/backup_corrupt" ],
|
||||
1,
|
||||
[qr{^$}],
|
||||
[qr/^WARNING.*checksum verification failed/s],
|
||||
'pg_basebackup reports checksum mismatch'
|
||||
);
|
||||
'pg_basebackup reports checksum mismatch');
|
||||
rmtree("$tempdir/backup_corrupt");
|
||||
|
||||
# induce further corruption in 5 more blocks
|
||||
system_or_bail 'pg_ctl', '-D', $pgdata, 'stop';
|
||||
open $file, '+<', "$pgdata/$file_corrupt1";
|
||||
for my $i ( 1..5 ) {
|
||||
my $offset = $pageheader_size + $i * $block_size;
|
||||
seek($file, $offset, 0);
|
||||
syswrite($file, '\0\0\0\0\0\0\0\0\0');
|
||||
for my $i (1 .. 5)
|
||||
{
|
||||
my $offset = $pageheader_size + $i * $block_size;
|
||||
seek($file, $offset, 0);
|
||||
syswrite($file, '\0\0\0\0\0\0\0\0\0');
|
||||
}
|
||||
close $file;
|
||||
system_or_bail 'pg_ctl', '-D', $pgdata, 'start';
|
||||
|
||||
$node->command_checks_all([ 'pg_basebackup', '-D', "$tempdir/backup_corrupt2"],
|
||||
1,
|
||||
[qr{^$}],
|
||||
[qr/^WARNING.*further.*failures.*will.not.be.reported/s],
|
||||
'pg_basebackup does not report more than 5 checksum mismatches'
|
||||
);
|
||||
$node->command_checks_all(
|
||||
[ 'pg_basebackup', '-D', "$tempdir/backup_corrupt2" ],
|
||||
1,
|
||||
[qr{^$}],
|
||||
[qr/^WARNING.*further.*failures.*will.not.be.reported/s],
|
||||
'pg_basebackup does not report more than 5 checksum mismatches');
|
||||
rmtree("$tempdir/backup_corrupt2");
|
||||
|
||||
# induce corruption in a second file
|
||||
@@ -508,17 +522,17 @@ syswrite($file, '\0\0\0\0\0\0\0\0\0');
|
||||
close $file;
|
||||
system_or_bail 'pg_ctl', '-D', $pgdata, 'start';
|
||||
|
||||
$node->command_checks_all([ 'pg_basebackup', '-D', "$tempdir/backup_corrupt3"],
|
||||
1,
|
||||
[qr{^$}],
|
||||
[qr/^WARNING.*7 total checksum verification failures/s],
|
||||
'pg_basebackup correctly report the total number of checksum mismatches'
|
||||
);
|
||||
$node->command_checks_all(
|
||||
[ 'pg_basebackup', '-D', "$tempdir/backup_corrupt3" ],
|
||||
1,
|
||||
[qr{^$}],
|
||||
[qr/^WARNING.*7 total checksum verification failures/s],
|
||||
'pg_basebackup correctly report the total number of checksum mismatches');
|
||||
rmtree("$tempdir/backup_corrupt3");
|
||||
|
||||
# do not verify checksums, should return ok
|
||||
$node->command_ok(
|
||||
[ 'pg_basebackup', '-D', "$tempdir/backup_corrupt4", '-k' ],
|
||||
[ 'pg_basebackup', '-D', "$tempdir/backup_corrupt4", '-k' ],
|
||||
'pg_basebackup with -k does not report checksum mismatch');
|
||||
rmtree("$tempdir/backup_corrupt4");
|
||||
|
||||
|
@@ -41,7 +41,8 @@ is($slot->{'slot_type'}, 'physical', 'physical replication slot was created');
|
||||
is($slot->{'restart_lsn'}, '', 'restart LSN of new slot is null');
|
||||
$primary->command_ok([ 'pg_receivewal', '--slot', $slot_name, '--drop-slot' ],
|
||||
'dropping a replication slot');
|
||||
is($primary->slot($slot_name)->{'slot_type'}, '', 'replication slot was removed');
|
||||
is($primary->slot($slot_name)->{'slot_type'},
|
||||
'', 'replication slot was removed');
|
||||
|
||||
# Generate some WAL. Use --synchronous at the same time to add more
|
||||
# code coverage. Switch to the next segment first so that subsequent
|
||||
@@ -63,8 +64,9 @@ $primary->command_ok(
|
||||
# Permissions on WAL files should be default
|
||||
SKIP:
|
||||
{
|
||||
skip "unix-style permissions not supported on Windows", 1 if ($windows_os);
|
||||
skip "unix-style permissions not supported on Windows", 1
|
||||
if ($windows_os);
|
||||
|
||||
ok(check_mode_recursive($stream_dir, 0700, 0600),
|
||||
"check stream dir permissions");
|
||||
"check stream dir permissions");
|
||||
}
|
||||
|
Reference in New Issue
Block a user