62 &tmp[0], &tmp[1], &tmp[2], &tmp[3], &tmp[4]);
112 if (tli != 0 && tli !=
ws->tli)
211 XLOGDIR "/summaries/%08X%08X%08X%08X%08X.summary",
220 errmsg(
"could not open file \"%s\": %m", path)));
236 XLOGDIR "/summaries/%08X%08X%08X%08X%08X.summary",
247 errmsg(
"could not stat file \"%s\": %m", path)));
254 errmsg(
"could not stat file \"%s\": %m", path)));
283 errmsg(
"could not read file \"%s\": %m",
304 errmsg(
"could not write file \"%s\": %m",
306 if (nbytes != length)
309 errmsg(
"could not write file \"%s\": wrote only %d of %d bytes at offset %u",
311 length, (
unsigned) io->
filepos),
312 errhint(
"Check free disk space.")));
int errmsg_internal(const char *fmt,...)
int errcode_for_file_access(void)
int errhint(const char *fmt,...)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
char * FilePathName(File file)
File PathNameOpenFile(const char *fileName, int fileFlags)
DIR * AllocateDir(const char *dirname)
struct dirent * ReadDir(DIR *dir, const char *dirname)
static ssize_t FileRead(File file, void *buffer, size_t amount, pgoff_t offset, uint32 wait_event_info)
static ssize_t FileWrite(File file, const void *buffer, size_t amount, pgoff_t offset, uint32 wait_event_info)
#define palloc_object(type)
static int pg_cmp_u64(uint64 a, uint64 b)
List * lappend(List *list, void *datum)
void list_sort(List *list, list_sort_comparator cmp)
List * list_copy(const List *oldlist)
#define ERRCODE_DATA_CORRUPTED
static char buf[DEFAULT_XLOG_SEG_SIZE]
int appendStringInfoVA(StringInfo str, const char *fmt, va_list args)
void enlargeStringInfo(StringInfo str, int needed)
void initStringInfo(StringInfo str)
void RemoveWalSummaryIfOlderThan(WalSummaryFile *ws, time_t cutoff_time)
static bool IsWalSummaryFilename(char *filename)
File OpenWalSummaryFile(WalSummaryFile *ws, bool missing_ok)
static int ListComparatorForWalSummaryFiles(const ListCell *a, const ListCell *b)
bool WalSummariesAreComplete(List *wslist, XLogRecPtr start_lsn, XLogRecPtr end_lsn, XLogRecPtr *missing_lsn)
int ReadWalSummary(void *wal_summary_io, void *data, int length)
List * GetWalSummaries(TimeLineID tli, XLogRecPtr start_lsn, XLogRecPtr end_lsn)
void ReportWalSummaryError(void *callback_arg, char *fmt,...)
int WriteWalSummary(void *wal_summary_io, void *data, int length)
List * FilterWalSummaries(List *wslist, TimeLineID tli, XLogRecPtr start_lsn, XLogRecPtr end_lsn)
#define XLogRecPtrIsValid(r)
#define LSN_FORMAT_ARGS(lsn)
#define InvalidXLogRecPtr