mirror of
https://github.com/postgres/postgres.git
synced 2026-06-04 14:55:34 -04:00
858ec11858
Replication slots are a crash-safe data structure which can be created on either a master or a standby to prevent premature removal of write-ahead log segments needed by a standby, as well as (with hot_standby_feedback=on) pruning of tuples whose removal would cause replication conflicts. Slots have some advantages over existing techniques, as explained in the documentation. In a few places, we refer to the type of replication slots introduced by this patch as "physical" slots, because forthcoming patches for logical decoding will also have slots, but with somewhat different properties. Andres Freund and Robert Haas
97 lines
1.8 KiB
C
97 lines
1.8 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* replnodes.h
|
|
* definitions for replication grammar parse nodes
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2014, 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;
|
|
} 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;
|
|
TimeLineID timeline;
|
|
XLogRecPtr startpoint;
|
|
List *options;
|
|
} StartReplicationCmd;
|
|
|
|
|
|
/* ----------------------
|
|
* TIMELINE_HISTORY command
|
|
* ----------------------
|
|
*/
|
|
typedef struct TimeLineHistoryCmd
|
|
{
|
|
NodeTag type;
|
|
TimeLineID timeline;
|
|
} TimeLineHistoryCmd;
|
|
|
|
#endif /* REPLNODES_H */
|