42 if (
buf->data[
buf->len - 1] ==
' ')
47 buf->data[
buf->len] =
'\0';
63 if (
buf->data[
buf->len - 1] ==
' ')
68 buf->data[
buf->len] =
'\0';
115 *nplans = freeze_plans->
nplans;
117 *plans = freeze_plans->
plans;
134 *redirected = &subrecord->
data[0];
151 *nowdead = subrecord->
data;
168 *nowunused = subrecord->
data;
301 &nplans, &plans, &frz_offsets,
302 &nredirected, &redirected,
304 &nunused, &nowunused);
307 nplans, nredirected, ndead, nunused);
387 const char *
id = NULL;
410 id =
"HOT_UPDATE+INIT";
432 const char *
id = NULL;
437 id =
"PRUNE_ON_ACCESS";
440 id =
"PRUNE_VACUUM_SCAN";
443 id =
"PRUNE_VACUUM_CLEANUP";
452 id =
"MULTI_INSERT+INIT";
#define Assert(condition)
struct xlhp_freeze_plan xlhp_freeze_plan
#define XLOG_HEAP2_MULTI_INSERT
#define XLOG_HEAP_HOT_UPDATE
#define XLHP_HAS_CONFLICT_HORIZON
#define XLOG_HEAP2_REWRITE
#define XLHP_HAS_FREEZE_PLANS
#define XLOG_HEAP_TRUNCATE
#define XLH_TRUNCATE_RESTART_SEQS
#define XLHL_XMAX_KEYSHR_LOCK
#define XLHP_HAS_NOW_UNUSED_ITEMS
#define XLHL_XMAX_IS_MULTI
#define XLHP_HAS_REDIRECTIONS
#define XLOG_HEAP2_PRUNE_VACUUM_SCAN
#define XLHL_XMAX_LOCK_ONLY
#define XLOG_HEAP_INPLACE
#define XLOG_HEAP2_LOCK_UPDATED
#define XLHL_XMAX_EXCL_LOCK
#define XLOG_HEAP2_PRUNE_ON_ACCESS
#define XLOG_HEAP2_NEW_CID
#define XLHP_HAS_DEAD_ITEMS
#define XLOG_HEAP2_PRUNE_VACUUM_CLEANUP
#define XLH_TRUNCATE_CASCADE
#define XLHL_KEYS_UPDATED
#define XLOG_HEAP2_VISIBLE
#define XLHP_IS_CATALOG_REL
#define XLOG_HEAP_INIT_PAGE
#define XLOG_HEAP_CONFIRM
void heap_desc(StringInfo buf, XLogReaderState *record)
const char * heap_identify(uint8 info)
void heap2_desc(StringInfo buf, XLogReaderState *record)
void heap_xlog_deserialize_prune_and_freeze(char *cursor, uint8 flags, int *nplans, xlhp_freeze_plan **plans, OffsetNumber **frz_offsets, int *nredirected, OffsetNumber **redirected, int *ndead, OffsetNumber **nowdead, int *nunused, OffsetNumber **nowunused)
static void plan_elem_desc(StringInfo buf, void *plan, void *data)
const char * heap2_identify(uint8 info)
static void truncate_flags_desc(StringInfo buf, uint8 flags)
static void infobits_desc(StringInfo buf, uint8 infobits, const char *keyname)
static OffsetNumber ItemPointerGetOffsetNumber(const ItemPointerData *pointer)
static BlockNumber ItemPointerGetBlockNumber(const ItemPointerData *pointer)
void oid_elem_desc(StringInfo buf, void *relid, void *data)
void redirect_elem_desc(StringInfo buf, void *offset, void *data)
void array_desc(StringInfo buf, void *array, size_t elem_size, int count, void(*elem_desc)(StringInfo buf, void *elem, void *data), void *data)
void offset_elem_desc(StringInfo buf, void *offset, void *data)
void appendStringInfo(StringInfo str, const char *fmt,...)
void appendStringInfoString(StringInfo str, const char *s)
void appendStringInfoChar(StringInfo str, char ch)
OffsetNumber offsets[FLEXIBLE_ARRAY_MEMBER]
ItemPointerData target_tid
RelFileLocator target_locator
Oid relids[FLEXIBLE_ARRAY_MEMBER]
TransactionId snapshotConflictHorizon
xlhp_freeze_plan plans[FLEXIBLE_ARRAY_MEMBER]
OffsetNumber data[FLEXIBLE_ARRAY_MEMBER]
char * XLogRecGetBlockData(XLogReaderState *record, uint8 block_id, Size *len)
#define XLogRecHasBlockData(decoder, block_id)
#define XLogRecGetInfo(decoder)
#define XLogRecGetData(decoder)