22 .
name =
"pg_logicalinspect",
33 const char *stateDesc =
"unknown state";
41 stateDesc =
"building";
47 stateDesc =
"consistent";
72 if (sscanf(
filename,
"%X-%X.snap", &hi, &lo) != 2)
80 sprintf(tmpfname,
"%X-%X.snap", hi, lo);
84 lsn = ((
uint64) hi) << 32 | lo;
101#define PG_GET_LOGICAL_SNAPSHOT_META_COLS 3
113 elog(
ERROR,
"return type must be a row type");
130#undef PG_GET_LOGICAL_SNAPSHOT_META_COLS
136#define PG_GET_LOGICAL_SNAPSHOT_INFO_COLS 14
148 elog(
ERROR,
"return type must be a row type");
206#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)
PG_MODULE_MAGIC_EXT(.name="pg_logicalinspect",.version=PG_VERSION)
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