Files
openGauss-server/src/include/nodes/replnodes.h
2020-06-30 17:38:27 +08:00

111 lines
2.4 KiB
C
Executable File

/* -------------------------------------------------------------------------
*
* replnodes.h
* definitions for replication grammar parse nodes
*
*
* Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* src/include/nodes/replnodes.h
*
* -------------------------------------------------------------------------
*/
#ifndef REPLNODES_H
#define REPLNODES_H
#include "access/xlogdefs.h"
#include "nodes/pg_list.h"
typedef enum ReplicationKind { REPLICATION_KIND_PHYSICAL, REPLICATION_KIND_LOGICAL } ReplicationKind;
/* ----------------------
* IDENTIFY_SYSTEM command
* ----------------------
*/
typedef struct IdentifySystemCmd {
NodeTag type;
} IdentifySystemCmd;
typedef struct IdentifyVersionCmd {
NodeTag type;
} IdentifyVersionCmd;
typedef struct IdentifyModeCmd {
NodeTag type;
} IdentifyModeCmd;
typedef struct IdentifyMaxLsnCmd {
NodeTag type;
} IdentifyMaxLsnCmd;
typedef struct IdentifyConsistenceCmd {
NodeTag type;
XLogRecPtr recordptr;
} IdentifyConsistenceCmd;
typedef struct IdentifyChannelCmd {
NodeTag type;
int channel_identifier;
} IdentifyChannelCmd;
/* ----------------------
* BASE_BACKUP command
* ----------------------
*/
typedef struct BaseBackupCmd {
NodeTag type;
List* options;
} BaseBackupCmd;
/* ----------------------
* CREATE_REPLICATION_SLOT command
* ----------------------
*/
typedef struct CreateReplicationSlotCmd {
NodeTag type;
char* slotname;
ReplicationKind kind;
XLogRecPtr init_slot_lsn;
char* plugin;
} CreateReplicationSlotCmd;
/* ----------------------
* DROP_REPLICATION_SLOT command
* ----------------------
*/
typedef struct DropReplicationSlotCmd {
NodeTag type;
char* slotname;
} DropReplicationSlotCmd;
/* ----------------------
* START_REPLICATION command
* ----------------------
*/
typedef struct StartReplicationCmd {
NodeTag type;
ReplicationKind kind;
char* slotname;
XLogRecPtr startpoint;
List* options;
} StartReplicationCmd;
/* ----------------------
* START_REPLICATION(DATA) command
* ----------------------
*/
typedef struct StartDataReplicationCmd {
NodeTag type;
} StartDataReplicationCmd;
/* ----------------------
* FETCH_MOT_CHECKPOINT command
* ----------------------
*/
typedef struct FetchMotCheckpointCmd {
NodeTag type;
} FetchMotCheckpointCmd;
#endif /* REPLNODES_H */