*
* 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;
typedef struct IdentifyAZCmd {
NodeTag type;
} IdentifyAZCmd;
* 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;
bool useSnapshot;
} CreateReplicationSlotCmd;
* DROP_REPLICATION_SLOT command
* ----------------------
*/
typedef struct DropReplicationSlotCmd {
NodeTag type;
char* slotname;
bool wait;
} DropReplicationSlotCmd;
* START_REPLICATION command
* ----------------------
*/
typedef struct StartReplicationCmd {
NodeTag type;
ReplicationKind kind;
char* slotname;
XLogRecPtr startpoint;
List* options;
} StartReplicationCmd;
* ADVANCE_REPLICATION command
* ----------------------
*/
typedef struct AdvanceReplicationCmd {
NodeTag type;
ReplicationKind kind;
char* slotname;
XLogRecPtr restart_lsn;
XLogRecPtr confirmed_flush;
} AdvanceReplicationCmd;
* START_REPLICATION(DATA) command
* ----------------------
*/
typedef struct StartDataReplicationCmd {
NodeTag type;
} StartDataReplicationCmd;
* FETCH_MOT_CHECKPOINT command
* ----------------------
*/
typedef struct FetchMotCheckpointCmd {
NodeTag type;
} FetchMotCheckpointCmd;
* SQL commands
* ----------------------
*/
typedef struct SQLCmd
{
NodeTag type;
} SQLCmd;
* ADVANCE_CATALOG_XMIN command
* ----------------------
*/
typedef struct AdvanceCatalogXminCmd {
NodeTag type;
char* slotname;
TransactionId catalogXmin;
} AdvanceCatalogXminCmd;
#endif