PostgreSQL Source Code: src/backend/backup/walsummaryfuncs.c Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

14

20#include "utils/fmgrprotos.h"

22

23#define NUM_WS_ATTS 3

24#define NUM_SUMMARY_ATTS 6

25#define NUM_STATE_ATTS 4

26#define MAX_BLOCKS_PER_CALL 256

27

28

29

30

33{

39

42

43 memset(nulls, 0, sizeof(nulls));

44

46 foreach(lc, wslist)

47 {

50

52

56

59 }

60

62}

63

64

65

66

67

70{

81

84 memset(nulls, 0, sizeof(nulls));

85

86

87

88

89

90

94 errcode(ERRCODE_INVALID_PARAMETER_VALUE),

95 errmsg("invalid timeline %" PRId64, raw_tli));

96

97

106

107

109 &limit_block))

110 {

113

115

120

121

122

123

124

125

126

127

128

130 {

133

136 }

137

138

139 while (1)

140 {

141 unsigned nblocks;

142 unsigned i;

143

145

148 if (nblocks == 0)

149 break;

150

151

152

153

154

156 for (i = 0; i < nblocks; ++i)

157 {

159

162 }

163 }

164 }

165

166

169

170 return (Datum) 0;

171}

172

173

174

175

178{

184 int summarizer_pid;

187

189 &summarizer_pid);

190

192 elog(ERROR, "return type must be a row type");

193

194 memset(nulls, 0, sizeof(nulls));

195

199

200 if (summarizer_pid < 0)

201 nulls[3] = true;

202 else

204

206

208}

bool BlockRefTableReaderNextRelation(BlockRefTableReader *reader, RelFileLocator *rlocator, ForkNumber *forknum, BlockNumber *limit_block)

BlockRefTableReader * CreateBlockRefTableReader(io_callback_fn read_callback, void *read_callback_arg, char *error_filename, report_error_fn error_callback, void *error_callback_arg)

unsigned BlockRefTableReaderGetBlocks(BlockRefTableReader *reader, BlockNumber *blocks, int nblocks)

void DestroyBlockRefTableReader(BlockRefTableReader *reader)

static bool BlockNumberIsValid(BlockNumber blockNumber)

static Datum values[MAXATTR]

int errcode(int sqlerrcode)

int errmsg(const char *fmt,...)

#define ereport(elevel,...)

char * FilePathName(File file)

void FileClose(File file)

Datum Int64GetDatum(int64 X)

#define PG_GETARG_INT64(n)

#define PG_RETURN_DATUM(x)

void InitMaterializedSRF(FunctionCallInfo fcinfo, bits32 flags)

TypeFuncClass get_call_result_type(FunctionCallInfo fcinfo, Oid *resultTypeId, TupleDesc *resultTupleDesc)

static Datum HeapTupleGetDatum(const HeapTupleData *tuple)

HeapTuple heap_form_tuple(TupleDesc tupleDescriptor, const Datum *values, const bool *isnull)

#define CHECK_FOR_INTERRUPTS()

static Datum LSNGetDatum(XLogRecPtr X)

static Datum Int16GetDatum(int16 X)

static Datum BoolGetDatum(bool X)

static Datum ObjectIdGetDatum(Oid X)

static Datum Int32GetDatum(int32 X)

Tuplestorestate * setResult

void tuplestore_puttuple(Tuplestorestate *state, HeapTuple tuple)

void GetWalSummarizerState(TimeLineID *summarized_tli, XLogRecPtr *summarized_lsn, XLogRecPtr *pending_lsn, int *summarizer_pid)

File OpenWalSummaryFile(WalSummaryFile *ws, bool missing_ok)

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,...)

Datum pg_get_wal_summarizer_state(PG_FUNCTION_ARGS)

Datum pg_available_wal_summaries(PG_FUNCTION_ARGS)

#define MAX_BLOCKS_PER_CALL

Datum pg_wal_summary_contents(PG_FUNCTION_ARGS)

#define InvalidXLogRecPtr