Skip to content

Commit e29a5db

Browse files
committed
PGPRO-1457: new test, minor fixes for tests
1 parent 14e1ae2 commit e29a5db

File tree

1 file changed

+95
-2
lines changed

1 file changed

+95
-2
lines changed

tests/delta.py

Lines changed: 95 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -924,6 +924,99 @@ def test_alter_table_set_tablespace_delta(self):
924924
# Clean after yourself
925925
self.del_test_dir(module_name, fname)
926926

927+
# @unittest.skip("skip")
928+
def test_alter_database_set_tablespace_delta(self):
929+
"""
930+
Make node, take full backup, create database,
931+
take delta backup, alter database tablespace location, take delta backup
932+
restore last delta backup.
933+
"""
934+
fname = self.id().split('.')[3]
935+
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
936+
node = self.make_simple_node(
937+
base_dir="{0}/{1}/node".format(module_name, fname),
938+
set_replication=True, initdb_params=['--data-checksums'],
939+
pg_options={
940+
'wal_level': 'replica',
941+
'max_wal_senders': '2',
942+
'checkpoint_timeout': '30s',
943+
'autovacuum': 'off'
944+
}
945+
)
946+
947+
self.init_pb(backup_dir)
948+
self.add_instance(backup_dir, 'node', node)
949+
node.start()
950+
self.create_tblspace_in_node(node, 'somedata')
951+
952+
# FULL backup
953+
self.backup_node(backup_dir, 'node', node, options=["--stream"])
954+
955+
# CREATE DATABASE DB1
956+
node.safe_psql("postgres", "create database db1 tablespace = 'somedata'")
957+
node.safe_psql(
958+
"db1",
959+
"create table t_heap as select i as id, md5(i::text) as text, "
960+
"md5(i::text)::tsvector as tsvector from generate_series(0,100) i")
961+
962+
# DELTA BACKUP
963+
self.backup_node(
964+
backup_dir, 'node', node,
965+
backup_type='delta',
966+
options=["--stream"]
967+
)
968+
969+
# ALTER TABLESPACE
970+
self.create_tblspace_in_node(node, 'somedata_new')
971+
node.safe_psql(
972+
"postgres",
973+
"alter database db1 set tablespace somedata_new"
974+
)
975+
976+
# DELTA BACKUP
977+
self.backup_node(
978+
backup_dir, 'node', node,
979+
backup_type='delta',
980+
options=["--stream"]
981+
)
982+
983+
if self.paranoia:
984+
pgdata = self.pgdata_content(node.data_dir)
985+
986+
# RESTORE
987+
node_restored = self.make_simple_node(
988+
base_dir="{0}/{1}/node_restored".format(module_name, fname)
989+
)
990+
node_restored.cleanup()
991+
992+
self.restore_node(
993+
backup_dir, 'node', node_restored,
994+
options=[
995+
"-j", "4",
996+
"-T", "{0}={1}".format(
997+
self.get_tblspace_path(node, 'somedata'),
998+
self.get_tblspace_path(node_restored, 'somedata')
999+
),
1000+
"-T", "{0}={1}".format(
1001+
self.get_tblspace_path(node, 'somedata_new'),
1002+
self.get_tblspace_path(node_restored, 'somedata_new')
1003+
)
1004+
]
1005+
)
1006+
1007+
# GET RESTORED PGDATA AND COMPARE
1008+
if self.paranoia:
1009+
pgdata_restored = self.pgdata_content(node_restored.data_dir)
1010+
self.compare_pgdata(pgdata, pgdata_restored)
1011+
1012+
# START RESTORED NODE
1013+
node_restored.append_conf(
1014+
'postgresql.auto.conf', 'port = {0}'.format(node_restored.port))
1015+
node_restored.start()
1016+
1017+
# Clean after yourself
1018+
self.del_test_dir(module_name, fname)
1019+
9271020
# @unittest.skip("skip")
9281021
def test_delta_delete(self):
9291022
"""Make node, create tablespace with table, take full backup,
@@ -1055,7 +1148,7 @@ def test_page_corruption_heal_via_ptrack_1(self):
10551148
with open(os.path.join(backup_dir, 'log', 'pg_probackup.log')) as f:
10561149
log_content = f.read()
10571150
self.assertIn('block 1, try to fetch via SQL', log_content)
1058-
self.assertIn('SELECT pg_ptrack_get_block', log_content)
1151+
self.assertIn('SELECT pg_catalog.pg_ptrack_get_block', log_content)
10591152
f.close
10601153

10611154
self.assertTrue(
@@ -1127,7 +1220,7 @@ def test_page_corruption_heal_via_ptrack_2(self):
11271220
"calculated checksum" in e.message and
11281221
"ERROR: query failed: "
11291222
"ERROR: invalid page in block" in e.message and
1130-
"query was: SELECT pg_ptrack_get_block_2" in e.message,
1223+
"query was: SELECT pg_catalog.pg_ptrack_get_block" in e.message,
11311224
"\n Unexpected Error Message: {0}\n CMD: {1}".format(
11321225
repr(e.message), self.cmd))
11331226

0 commit comments

Comments
 (0)