PostgreSQL Source Code  git master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
replorigindesc.c
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * replorigindesc.c
4  * rmgr descriptor routines for replication/logical/origin.c
5  *
6  * Portions Copyright (c) 2015-2017, PostgreSQL Global Development Group
7  *
8  *
9  * IDENTIFICATION
10  * src/backend/access/rmgrdesc/replorigindesc.c
11  *
12  *-------------------------------------------------------------------------
13  */
14 #include "postgres.h"
15 
16 #include "replication/origin.h"
17 
18 void
20 {
21  char *rec = XLogRecGetData(record);
22  uint8 info = XLogRecGetInfo(record) & ~XLR_INFO_MASK;
23 
24  switch (info)
25  {
27  {
28  xl_replorigin_set *xlrec;
29 
30  xlrec = (xl_replorigin_set *) rec;
31 
32  appendStringInfo(buf, "set %u; lsn %X/%X; force: %d",
33  xlrec->node_id,
34  (uint32) (xlrec->remote_lsn >> 32),
35  (uint32) xlrec->remote_lsn,
36  xlrec->force);
37  break;
38  }
40  {
41  xl_replorigin_drop *xlrec;
42 
43  xlrec = (xl_replorigin_drop *) rec;
44 
45  appendStringInfo(buf, "drop %u", xlrec->node_id);
46  break;
47  }
48  }
49 }
50 
51 const char *
53 {
54  switch (info)
55  {
57  return "SET";
59  return "DROP";
60  default:
61  return NULL;
62  }
63 }
unsigned char uint8
Definition: c.h:263
#define XLogRecGetData(decoder)
Definition: xlogreader.h:202
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:110
static char * buf
Definition: pg_test_fsync.c:65
#define XLOG_REPLORIGIN_SET
Definition: origin.h:31
unsigned int uint32
Definition: c.h:265
#define XLogRecGetInfo(decoder)
Definition: xlogreader.h:198
#define XLOG_REPLORIGIN_DROP
Definition: origin.h:32
void replorigin_desc(StringInfo buf, XLogReaderState *record)
RepOriginId node_id
Definition: origin.h:28
#define NULL
Definition: c.h:226
#define XLR_INFO_MASK
Definition: xlogrecord.h:62
RepOriginId node_id
Definition: origin.h:22
XLogRecPtr remote_lsn
Definition: origin.h:21
const char * replorigin_identify(uint8 info)