diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2015-03-23 19:47:52 +0200 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2015-03-23 19:47:52 +0200 |
commit | 61081e75c6741024f7717ade0450090590e96c85 (patch) | |
tree | 9b4fde1d8bae566036df68eecdfd84b896e14b57 /src/bin/pg_rewind/fetch.h | |
parent | 87cec51d3ad1107f6f224ed7d773e70c8896e4c0 (diff) | |
download | postgresql-61081e75c6741024f7717ade0450090590e96c85.tar.gz |
Add pg_rewind, for re-synchronizing a master server after failback.
Earlier versions of this tool were available (and still are) on github.
Thanks to Michael Paquier, Alvaro Herrera, Peter Eisentraut, Amit Kapila,
and Satoshi Nagayasu for review.
Diffstat (limited to 'src/bin/pg_rewind/fetch.h')
-rw-r--r-- | src/bin/pg_rewind/fetch.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/bin/pg_rewind/fetch.h b/src/bin/pg_rewind/fetch.h new file mode 100644 index 0000000000..d0e7dd3d15 --- /dev/null +++ b/src/bin/pg_rewind/fetch.h @@ -0,0 +1,46 @@ +/*------------------------------------------------------------------------- + * + * fetch.h + * Fetching data from a local or remote data directory. + * + * This file includes the prototypes for functions used to copy files from + * one data directory to another. The source to copy from can be a local + * directory (copy method), or a remote PostgreSQL server (libpq fetch + * method). + * + * Copyright (c) 2013-2015, PostgreSQL Global Development Group + * + *------------------------------------------------------------------------- + */ +#ifndef FETCH_H +#define FETCH_H + +#include "c.h" + +#include "access/xlogdefs.h" + +#include "filemap.h" + +/* + * Common interface. Calls the copy or libpq method depending on global + * config options. + */ +extern void fetchRemoteFileList(void); +extern char *fetchFile(char *filename, size_t *filesize); +extern void executeFileMap(void); + +/* in libpq_fetch.c */ +extern void libpqProcessFileList(void); +extern char *libpqGetFile(const char *filename, size_t *filesize); +extern void libpq_executeFileMap(filemap_t *map); + +extern void libpqConnect(const char *connstr); +extern XLogRecPtr libpqGetCurrentXlogInsertLocation(void); + +/* in copy_fetch.c */ +extern void copy_executeFileMap(filemap_t *map); + +typedef void (*process_file_callback_t) (const char *path, file_type_t type, size_t size, const char *link_target); +extern void traverse_datadir(const char *datadir, process_file_callback_t callback); + +#endif /* FETCH_H */ |