Go to the source code of this file.
◆ SizeOfLogicalMessage
◆ XLOG_LOGICAL_MESSAGE
| #define XLOG_LOGICAL_MESSAGE 0x00 |
◆ xl_logical_message
◆ logicalmsg_desc()
Definition at line 19 of file logicalmsgdesc.c.
20{
23
25 {
28 char *message =
xlrec->message +
xlrec->prefix_size;
30
32
34 xlrec->transactional ?
"transactional" :
"non-transactional",
35 prefix,
xlrec->message_size);
36
37 for (
int cnt = 0; cnt <
xlrec->message_size; cnt++)
38 {
41 }
42 }
43}
#define Assert(condition)
#define XLOG_LOGICAL_MESSAGE
static char buf[DEFAULT_XLOG_SEG_SIZE]
void appendStringInfo(StringInfo str, const char *fmt,...)
char message[FLEXIBLE_ARRAY_MEMBER]
#define XLogRecGetInfo(decoder)
#define XLogRecGetData(decoder)
References appendStringInfo(), Assert, buf, fb(), xl_logical_message::message, XLOG_LOGICAL_MESSAGE, XLogRecGetData, and XLogRecGetInfo.
◆ logicalmsg_identify()
◆ logicalmsg_redo()
◆ LogLogicalMessage()
Definition at line 43 of file message.c.
45{
48
49
50
51
52 if (transactional)
53 {
56 }
57
59 xlrec.transactional = transactional;
60
62 xlrec.message_size = size;
63
68
69
71
73
74
75
76
77
78 if (!transactional && flush)
80 return lsn;
81}
#define SizeOfLogicalMessage
bool IsTransactionState(void)
TransactionId GetCurrentTransactionId(void)
void XLogFlush(XLogRecPtr record)
#define XLOG_INCLUDE_ORIGIN
XLogRecPtr XLogInsert(RmgrId rmid, uint8 info)
void XLogRegisterData(const void *data, uint32 len)
void XLogSetRecordFlags(uint8 flags)
void XLogBeginInsert(void)
References Assert, fb(), GetCurrentTransactionId(), IsTransactionState(), MyDatabaseId, SizeOfLogicalMessage, XLOG_INCLUDE_ORIGIN, XLOG_LOGICAL_MESSAGE, XLogBeginInsert(), XLogFlush(), XLogInsert(), XLogRegisterData(), and XLogSetRecordFlags().
Referenced by pg_logical_emit_message_bytea().