58 errmsg(
"could not create directory \"%s\": %m",
todir)));
143#define COPY_BUF_SIZE (8 * BLCKSZ)
151#if defined(__darwin__)
152#define FLUSH_DISTANCE (32 * 1024 * 1024)
154#define FLUSH_DISTANCE (1024 * 1024)
179 for (offset = 0;; offset += nbytes)
206 if ((
int)
write(
dstfd, buffer, nbytes) != nbytes)
240#if defined(HAVE_COPYFILE) && defined(COPYFILE_CLONE_FORCE)
244 errmsg(
"could not clone file \"%s\" to \"%s\": %m",
246#elif defined(HAVE_COPY_FILE_RANGE)
275 errmsg(
"could not clone file \"%s\" to \"%s\": %m",
static void clone_file(const char *fromfile, const char *tofile)
void copy_file(const char *fromfile, const char *tofile)
void copydir(const char *fromdir, const char *todir, bool recurse)
int errcode_for_file_access(void)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
int MakePGDirectory(const char *directoryName)
int CloseTransientFile(int fd)
void fsync_fname(const char *fname, bool isdir)
void pg_flush_data(int fd, pgoff_t offset, pgoff_t nbytes)
DIR * AllocateDir(const char *dirname)
struct dirent * ReadDir(DIR *dir, const char *dirname)
int OpenTransientFile(const char *fileName, int fileFlags)
PGFileType get_dirent_type(const char *path, const struct dirent *de, bool look_through_symlinks, int elevel)
void pfree(void *pointer)
#define CHECK_FOR_INTERRUPTS()
static void pgstat_report_wait_start(uint32 wait_event_info)
static void pgstat_report_wait_end(void)