diff options
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/replication/basebackup.c | 10 | ||||
-rw-r--r-- | src/backend/storage/file/fd.c | 3 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/backend/replication/basebackup.c b/src/backend/replication/basebackup.c index e4c45c50256..654d0832da2 100644 --- a/src/backend/replication/basebackup.c +++ b/src/backend/replication/basebackup.c @@ -1072,6 +1072,16 @@ sendDir(const char *path, int basepathlen, bool sizeonly, List *tablespaces, } } + /* Exclude temporary relations */ + if (isDbDir && looks_like_temp_rel_name(de->d_name)) + { + elog(DEBUG2, + "temporary relation file \"%s\" excluded from backup", + de->d_name); + + continue; + } + snprintf(pathbuf, sizeof(pathbuf), "%s/%s", path, de->d_name); /* Skip pg_control here to back up it last */ diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c index 2a18e94ff49..d30a725f900 100644 --- a/src/backend/storage/file/fd.c +++ b/src/backend/storage/file/fd.c @@ -325,7 +325,6 @@ static void RemovePgTempFilesInDir(const char *tmpdirname, bool missing_ok, bool unlink_all); static void RemovePgTempRelationFiles(const char *tsdirname); static void RemovePgTempRelationFilesInDbspace(const char *dbspacedirname); -static bool looks_like_temp_rel_name(const char *name); static void walkdir(const char *path, void (*action) (const char *fname, bool isdir, int elevel), @@ -3192,7 +3191,7 @@ RemovePgTempRelationFilesInDbspace(const char *dbspacedirname) } /* t<digits>_<digits>, or t<digits>_<digits>_<forkname> */ -static bool +bool looks_like_temp_rel_name(const char *name) { int pos; |