Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit6974eb8

Browse files
committed
Remove external directories files from previous backups
1 parent26cb867 commit6974eb8

File tree

7 files changed

+145
-57
lines changed

7 files changed

+145
-57
lines changed

‎src/backup.c‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,8 @@ do_backup_instance(void)
504504
elog(LOG,"Database backup start");
505505
if(current.external_dir_str)
506506
{
507-
external_dirs=make_external_directory_list(current.external_dir_str);
507+
external_dirs=make_external_directory_list(current.external_dir_str,
508+
false);
508509
check_external_for_tablespaces(external_dirs);
509510
}
510511

‎src/catalog.c‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,8 @@ pgBackupCreateDir(pgBackup *backup)
477477
{
478478
parray*external_list;
479479

480-
external_list=make_external_directory_list(backup->external_dir_str);
480+
external_list=make_external_directory_list(backup->external_dir_str,
481+
false);
481482
for (i=0;i<parray_num(external_list);i++)
482483
{
483484
chartemp[MAXPGPATH];

‎src/dir.c‎

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1311,7 +1311,9 @@ check_external_dir_mapping(pgBackup *backup)
13111311
return;
13121312
}
13131313

1314-
external_dirs_to_restore=make_external_directory_list(backup->external_dir_str);
1314+
external_dirs_to_restore=make_external_directory_list(
1315+
backup->external_dir_str,
1316+
false);
13151317
/* 1 - each OLDDIR must have an entry in external_dirs_to_restore */
13161318
for (cell=external_remap_list.head;cell;cell=cell->next)
13171319
{
@@ -1707,11 +1709,11 @@ pgFileSize(const char *path)
17071709
}
17081710

17091711
/*
1710-
* Construct parray containing external directories paths
1712+
* Construct parray containingremmapedexternal directories paths
17111713
* from string like /path1:/path2
17121714
*/
17131715
parray*
1714-
make_external_directory_list(constchar*colon_separated_dirs)
1716+
make_external_directory_list(constchar*colon_separated_dirs,boolremap)
17151717
{
17161718
char*p;
17171719
parray*list=parray_new();
@@ -1730,7 +1732,20 @@ make_external_directory_list(const char *colon_separated_dirs)
17301732

17311733
canonicalize_path(external_path);
17321734
if (is_absolute_path(external_path))
1735+
{
1736+
if (remap)
1737+
{
1738+
char*full_path=get_external_remap(external_path);
1739+
1740+
if (full_path!=external_path)
1741+
{
1742+
full_path=pg_strdup(full_path);
1743+
pfree(external_path);
1744+
external_path=full_path;
1745+
}
1746+
}
17331747
parray_append(list,external_path);
1748+
}
17341749
else
17351750
elog(ERROR,"External directory \"%s\" is not an absolute path",
17361751
external_path);

‎src/merge.c‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,9 +262,11 @@ merge_backups(pgBackup *to_backup, pgBackup *from_backup)
262262

263263
/* Create external directories lists */
264264
if (to_backup->external_dir_str)
265-
to_external=make_external_directory_list(to_backup->external_dir_str);
265+
to_external=make_external_directory_list(to_backup->external_dir_str,
266+
false);
266267
if (from_backup->external_dir_str)
267-
from_external=make_external_directory_list(from_backup->external_dir_str);
268+
from_external=make_external_directory_list(from_backup->external_dir_str,
269+
false);
268270

269271
/*
270272
* Rename external directoties in to_backup (if exists)

‎src/pg_probackup.h‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,8 @@ extern void print_file_list(FILE *out, const parray *files, const char *root,
585585
constchar*external_prefix,parray*external_list);
586586
externparray*dir_read_file_list(constchar*root,constchar*external_prefix,
587587
constchar*file_txt,fio_locationlocation);
588-
externparray*make_external_directory_list(constchar*colon_separated_dirs);
588+
externparray*make_external_directory_list(constchar*colon_separated_dirs,
589+
boolremap);
589590
externvoidfree_dir_list(parray*list);
590591
externvoidmakeExternalDirPathByNum(char*ret_path,constchar*pattern_path,
591592
constintdir_num);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp