aboutsummaryrefslogtreecommitdiff
path: root/src/include/replication/basebackup.h
diff options
context:
space:
mode:
authorAndrew Dunstan <andrew@dunslane.net>2015-05-12 09:29:10 -0400
committerAndrew Dunstan <andrew@dunslane.net>2015-05-12 09:29:10 -0400
commit72d422a5227ef6f76f412486a395aba9f53bf3f0 (patch)
treec94ffeef53c5e4a4ce0c4b055a8256ee6af3b947 /src/include/replication/basebackup.h
parentd02f16470f117db3038dbfd87662d5f0eb5a2a9b (diff)
downloadpostgresql-72d422a5227ef6f76f412486a395aba9f53bf3f0.tar.gz
postgresql-72d422a5227ef6f76f412486a395aba9f53bf3f0.zip
Map basebackup tablespaces using a tablespace_map file
Windows can't reliably restore symbolic links from a tar format, so instead during backup start we create a tablespace_map file, which is used by the restoring postgres to create the correct links in pg_tblspc. The backup protocol also now has an option to request this file to be included in the backup stream, and this is used by pg_basebackup when operating in tar mode. This is done on all platforms, not just Windows. This means that pg_basebackup will not not work in tar mode against 9.4 and older servers, as this protocol option isn't implemented there. Amit Kapila, reviewed by Dilip Kumar, with a little editing from me.
Diffstat (limited to 'src/include/replication/basebackup.h')
-rw-r--r--src/include/replication/basebackup.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/include/replication/basebackup.h b/src/include/replication/basebackup.h
index 64f2bd510e7..7d3d09e9d63 100644
--- a/src/include/replication/basebackup.h
+++ b/src/include/replication/basebackup.h
@@ -21,6 +21,16 @@
#define MAX_RATE_UPPER 1048576
+typedef struct
+{
+ char *oid;
+ char *path;
+ char *rpath; /* relative path within PGDATA, or NULL */
+ int64 size;
+} tablespaceinfo;
+
extern void SendBaseBackup(BaseBackupCmd *cmd);
+extern int64 sendTablespace(char *path, bool sizeonly);
+
#endif /* _BASEBACKUP_H */