@@ -22,8 +22,7 @@ def test_basic_merge_full_page(self):
2222 # Initialize instance and backup directory
2323 node = self .make_simple_node (
2424 base_dir = os .path .join (module_name , fname , 'node' ),
25- initdb_params = ["--data-checksums" ]
26- )
25+ initdb_params = ["--data-checksums" ])
2726
2827 self .init_pb (backup_dir )
2928 self .add_instance (backup_dir , "node" , node )
@@ -1981,8 +1980,7 @@ def test_merge_backup_from_future(self):
19811980 base_dir = os .path .join (module_name , fname , 'node' ),
19821981 set_replication = True ,
19831982 initdb_params = ['--data-checksums' ],
1984- pg_options = {
1985- 'autovacuum' : 'off' })
1983+ pg_options = {'autovacuum' : 'off' })
19861984
19871985 backup_dir = os .path .join (self .tmp_path , module_name , fname , 'backup' )
19881986 self .init_pb (backup_dir )
@@ -2384,5 +2382,60 @@ def test_idempotent_merge(self):
23842382
23852383 self .del_test_dir (module_name , fname )
23862384
2385+ def test_merge_correct_inheritance (self ):
2386+ """
2387+ Make sure that backup metainformation fields
2388+ 'note' and 'expire-time' are correctly inherited
2389+ during merge
2390+ """
2391+ fname = self .id ().split ('.' )[3 ]
2392+ backup_dir = os .path .join (self .tmp_path , module_name , fname , 'backup' )
2393+ node = self .make_simple_node (
2394+ base_dir = os .path .join (module_name , fname , 'node' ),
2395+ set_replication = True ,
2396+ initdb_params = ['--data-checksums' ],
2397+ pg_options = {'autovacuum' : 'off' })
2398+
2399+ self .init_pb (backup_dir )
2400+ self .add_instance (backup_dir , 'node' , node )
2401+ self .set_archiving (backup_dir , 'node' , node )
2402+ node .slow_start ()
2403+
2404+ # add database
2405+ node .safe_psql (
2406+ 'postgres' ,
2407+ 'CREATE DATABASE testdb' )
2408+
2409+ # take FULL backup
2410+ self .backup_node (backup_dir , 'node' , node , options = ['--stream' ])
2411+
2412+ # create database
2413+ node .safe_psql (
2414+ 'postgres' ,
2415+ 'create DATABASE testdb1' )
2416+
2417+ # take PAGE backup
2418+ page_id = self .backup_node (
2419+ backup_dir , 'node' , node , backup_type = 'page' )
2420+
2421+ self .set_backup (
2422+ backup_dir , 'node' , page_id , options = ['--note=hello' , '--ttl=20d' ])
2423+
2424+ page_meta = self .show_pb (backup_dir , 'node' , page_id )
2425+
2426+ self .merge_backup (backup_dir , 'node' , page_id )
2427+
2428+ print (self .show_pb (backup_dir , 'node' , page_id ))
2429+
2430+ self .assertEqual (
2431+ page_meta ['note' ],
2432+ self .show_pb (backup_dir , 'node' , page_id )['note' ])
2433+
2434+ self .assertEqual (
2435+ page_meta ['expire-time' ],
2436+ self .show_pb (backup_dir , 'node' , page_id )['expire-time' ])
2437+
2438+ self .del_test_dir (module_name , fname )
2439+
23872440# 1. Need new test with corrupted FULL backup
23882441# 2. different compression levels
0 commit comments