aboutsummaryrefslogtreecommitdiff
path: root/src/include/common/file_utils.h
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2022-10-27 14:39:42 +0900
committerMichael Paquier <michael@paquier.xyz>2022-10-27 14:39:42 +0900
commit4ab8c81bd90ae442dbd092df04a12dbb7e68f562 (patch)
treee2aaec175cf393ffd0b5fcfd406834165b120fe8 /src/include/common/file_utils.h
parent1b9cd69c5bdd1a331891f282106125e6f2524991 (diff)
downloadpostgresql-4ab8c81bd90ae442dbd092df04a12dbb7e68f562.tar.gz
postgresql-4ab8c81bd90ae442dbd092df04a12dbb7e68f562.zip
Move pg_pwritev_with_retry() to src/common/file_utils.c
This commit moves pg_pwritev_with_retry(), a convenience wrapper of pg_writev() able to handle partial writes, to common/file_utils.c so that the frontend code is able to use it. A first use-case targetted for this routine is pg_basebackup and pg_receivewal, for the zero-padding of a newly-initialized WAL segment. This is used currently in the backend when the GUC wal_init_zero is enabled (default). Author: Bharath Rupireddy Reviewed-by: Nathan Bossart, Thomas Munro Discussion: https://postgr.es/m/CALj2ACUq7nAb7=bJNbK3yYmp-SZhJcXFR_pLk8un6XgDzDF3OA@mail.gmail.com
Diffstat (limited to 'src/include/common/file_utils.h')
-rw-r--r--src/include/common/file_utils.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/include/common/file_utils.h b/src/include/common/file_utils.h
index 2811744c12f..2c5dbcb0b1e 100644
--- a/src/include/common/file_utils.h
+++ b/src/include/common/file_utils.h
@@ -24,6 +24,8 @@ typedef enum PGFileType
PGFILETYPE_LNK
} PGFileType;
+struct iovec; /* avoid including port/pg_iovec.h here */
+
#ifdef FRONTEND
extern int fsync_fname(const char *fname, bool isdir);
extern void fsync_pgdata(const char *pg_data, int serverVersion);
@@ -37,4 +39,9 @@ extern PGFileType get_dirent_type(const char *path,
bool look_through_symlinks,
int elevel);
+extern ssize_t pg_pwritev_with_retry(int fd,
+ const struct iovec *iov,
+ int iovcnt,
+ off_t offset);
+
#endif /* FILE_UTILS_H */