/*------------------------------------------------------------------------- * * replnodes.h * definitions for replication grammar parse nodes * * * Portions Copyright (c) 1996-2021, 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; /* ---------------------- * BASE_BACKUP command * ---------------------- */ typedef struct BaseBackupCmd { NodeTag type; List *options; } BaseBackupCmd; /* ---------------------- * CREATE_REPLICATION_SLOT command * ---------------------- */ typedef struct CreateReplicationSlotCmd { NodeTag type; char *slotname; ReplicationKind kind; char *plugin; bool temporary; List *options; } 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; TimeLineID timeline; XLogRecPtr startpoint; List *options; } StartReplicationCmd; /* ---------------------- * TIMELINE_HISTORY command * ---------------------- */ typedef struct TimeLineHistoryCmd { NodeTag type; TimeLineID timeline; } TimeLineHistoryCmd; /* ---------------------- * SQL commands * ---------------------- */ typedef struct SQLCmd { NodeTag type; } SQLCmd; #endif /* REPLNODES_H */