30 const char *stateDesc =
"unknown state";
38 stateDesc =
"building";
44 stateDesc =
"consistent";
69 if (sscanf(
filename,
"%X-%X.snap", &hi, &lo) != 2)
77 sprintf(tmpfname,
"%X-%X.snap", hi, lo);
81 lsn = ((
uint64) hi) << 32 | lo;
98#define PG_GET_LOGICAL_SNAPSHOT_META_COLS 3
110 elog(
ERROR,
"return type must be a row type");
127#undef PG_GET_LOGICAL_SNAPSHOT_META_COLS
133#define PG_GET_LOGICAL_SNAPSHOT_INFO_COLS 14
145 elog(
ERROR,
"return type must be a row type");
203#undef PG_GET_LOGICAL_SNAPSHOT_INFO_COLS
ArrayType * construct_array_builtin(Datum *elems, int nelems, Oid elmtype)
static Datum values[MAXATTR]
#define CStringGetTextDatum(s)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
Datum Int64GetDatum(int64 X)
#define PG_GETARG_TEXT_PP(n)
#define PG_RETURN_DATUM(x)
TypeFuncClass get_call_result_type(FunctionCallInfo fcinfo, Oid *resultTypeId, TupleDesc *resultTupleDesc)
static Datum HeapTupleGetDatum(const HeapTupleData *tuple)
Assert(PointerIsAligned(start, uint64))
HeapTuple heap_form_tuple(TupleDesc tupleDescriptor, const Datum *values, const bool *isnull)
MemoryContext CurrentMemoryContext
#define PG_GET_LOGICAL_SNAPSHOT_META_COLS
Datum pg_get_logical_snapshot_info(PG_FUNCTION_ARGS)
Datum pg_get_logical_snapshot_meta(PG_FUNCTION_ARGS)
static const char * get_snapbuild_state_desc(SnapBuildState state)
#define PG_GET_LOGICAL_SNAPSHOT_INFO_COLS
static XLogRecPtr parse_snapshot_filename(const char *filename)
PG_FUNCTION_INFO_V1(pg_get_logical_snapshot_meta)
static Datum LSNGetDatum(XLogRecPtr X)
static Datum PointerGetDatum(const void *X)
static Datum TransactionIdGetDatum(TransactionId X)
static Datum BoolGetDatum(bool X)
static Datum UInt32GetDatum(uint32 X)
bool SnapBuildRestoreSnapshot(SnapBuildOnDisk *ondisk, XLogRecPtr lsn, MemoryContext context, bool missing_ok)
@ SNAPBUILD_BUILDING_SNAPSHOT
@ SNAPBUILD_FULL_SNAPSHOT
XLogRecPtr start_decoding_at
TransactionId initial_xmin_horizon
struct SnapBuild::@117 committed
bool building_full_snapshot
TransactionId next_phase_at
XLogRecPtr last_serialized_snapshot
struct SnapBuild::@118 catchange
char * text_to_cstring(const text *t)
#define InvalidXLogRecPtr