77 #define FILE_POSSIBLY_DELETED(err) ((err) == ENOENT)
79 #define FILE_POSSIBLY_DELETED(err) ((err) == ENOENT || (err) == EACCES)
90 #define PG_O_DIRECT O_DIRECT
91 #elif defined(F_NOCACHE)
92 #define PG_O_DIRECT 0x80000000
93 #define PG_O_DIRECT_USE_F_NOCACHE
108 extern int FileRead(
File file,
char *buffer,
int amount, off_t offset,
uint32 wait_event_info);
109 extern int FileWrite(
File file,
char *buffer,
int amount, off_t offset,
uint32 wait_event_info);
148 extern int BasicOpenFile(
const char *fileName,
int fileFlags);
149 extern int BasicOpenFilePerm(
const char *fileName,
int fileFlags, mode_t fileMode);
182 const struct iovec *iov,
185 extern int pg_truncate(
const char *path, off_t length);
186 extern void fsync_fname(
const char *fname,
bool isdir);
187 extern int fsync_fname_ext(
const char *fname,
bool isdir,
bool ignore_perm,
int elevel);
188 extern int durable_rename(
const char *oldfile,
const char *newfile,
int loglevel);
195 #define PG_TEMP_FILES_DIR "pgsql_tmp"
196 #define PG_TEMP_FILE_PREFIX "pgsql_tmp"
struct dirent * ReadDir(DIR *dir, const char *dirname)
PGDLLIMPORT int max_safe_fds
int FileGetRawDesc(File file)
int MakePGDirectory(const char *directoryName)
void FileWriteback(File file, off_t offset, off_t nbytes, uint32 wait_event_info)
int durable_rename_excl(const char *oldfile, const char *newfile, int loglevel)
int pg_fsync_no_writethrough(int fd)
FILE * AllocateFile(const char *name, const char *mode)
int BasicOpenFilePerm(const char *fileName, int fileFlags, mode_t fileMode)
int GetTempTablespaces(Oid *tableSpaces, int numSpaces)
File PathNameOpenTemporaryFile(const char *path, int mode)
int durable_rename(const char *oldfile, const char *newfile, int loglevel)
int FilePrefetch(File file, off_t offset, int amount, uint32 wait_event_info)
int FileSync(File file, uint32 wait_event_info)
int CloseTransientFile(int fd)
void PathNameCreateTemporaryDir(const char *base, const char *name)
int BasicOpenFile(const char *fileName, int fileFlags)
int ClosePipeStream(FILE *file)
bool PathNameDeleteTemporaryFile(const char *name, bool error_on_failure)
PGDLLIMPORT bool data_sync_retry
void AtEOXact_Files(bool isCommit)
int FileGetRawFlags(File file)
int fsync_fname_ext(const char *fname, bool isdir, bool ignore_perm, int elevel)
PGDLLIMPORT int recovery_init_sync_method
mode_t FileGetRawMode(File file)
int pg_fsync_writethrough(int fd)
void FileClose(File file)
FILE * OpenPipeStream(const char *command, const char *mode)
void ReleaseExternalFD(void)
void PathNameDeleteTemporaryDir(const char *name)
void RemovePgTempFilesInDir(const char *tmpdirname, bool missing_ok, bool unlink_all)
void RemovePgTempFiles(void)
bool TempTablespacesAreSet(void)
void fsync_fname(const char *fname, bool isdir)
int data_sync_elevel(int elevel)
File PathNameOpenFile(const char *fileName, int fileFlags)
Oid GetNextTempTableSpace(void)
File PathNameOpenFilePerm(const char *fileName, int fileFlags, mode_t fileMode)
bool AcquireExternalFD(void)
struct dirent * ReadDirExtended(DIR *dir, const char *dirname, int elevel)
int FileWrite(File file, char *buffer, int amount, off_t offset, uint32 wait_event_info)
void InitFileAccess(void)
File OpenTemporaryFile(bool interXact)
PGDLLIMPORT int max_files_per_process
void ReserveExternalFD(void)
char * FilePathName(File file)
bool looks_like_temp_rel_name(const char *name)
void set_max_safe_fds(void)
void pg_flush_data(int fd, off_t offset, off_t amount)
void AtEOSubXact_Files(bool isCommit, SubTransactionId mySubid, SubTransactionId parentSubid)
int FileRead(File file, char *buffer, int amount, off_t offset, uint32 wait_event_info)
ssize_t pg_pwritev_with_retry(int fd, const struct iovec *iov, int iovcnt, off_t offset)
int OpenTransientFile(const char *fileName, int fileFlags)
void InitTemporaryFileAccess(void)
int OpenTransientFilePerm(const char *fileName, int fileFlags, mode_t fileMode)
@ RECOVERY_INIT_SYNC_METHOD_SYNCFS
@ RECOVERY_INIT_SYNC_METHOD_FSYNC
void SyncDataDirectory(void)
File PathNameCreateTemporaryFile(const char *name, bool error_on_failure)
int durable_unlink(const char *fname, int loglevel)
off_t FileSize(File file)
int FileTruncate(File file, off_t offset, uint32 wait_event_info)
int pg_truncate(const char *path, off_t length)
void SetTempTablespaces(Oid *tableSpaces, int numSpaces)
DIR * AllocateDir(const char *dirname)
void TempTablespacePath(char *path, Oid tablespace)
static PgChecksumMode mode
static int fd(const char *x, int i)