1 | /*------------------------------------------------------------------------- |
2 | * |
3 | * replnodes.h |
4 | * definitions for replication grammar parse nodes |
5 | * |
6 | * |
7 | * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group |
8 | * Portions Copyright (c) 1994, Regents of the University of California |
9 | * |
10 | * src/include/nodes/replnodes.h |
11 | * |
12 | *------------------------------------------------------------------------- |
13 | */ |
14 | #ifndef REPLNODES_H |
15 | #define REPLNODES_H |
16 | |
17 | #include "access/xlogdefs.h" |
18 | #include "nodes/pg_list.h" |
19 | |
20 | typedef enum ReplicationKind |
21 | { |
22 | REPLICATION_KIND_PHYSICAL, |
23 | REPLICATION_KIND_LOGICAL |
24 | } ReplicationKind; |
25 | |
26 | |
27 | /* ---------------------- |
28 | * IDENTIFY_SYSTEM command |
29 | * ---------------------- |
30 | */ |
31 | typedef struct IdentifySystemCmd |
32 | { |
33 | NodeTag type; |
34 | } IdentifySystemCmd; |
35 | |
36 | |
37 | /* ---------------------- |
38 | * BASE_BACKUP command |
39 | * ---------------------- |
40 | */ |
41 | typedef struct BaseBackupCmd |
42 | { |
43 | NodeTag type; |
44 | List *options; |
45 | } BaseBackupCmd; |
46 | |
47 | |
48 | /* ---------------------- |
49 | * CREATE_REPLICATION_SLOT command |
50 | * ---------------------- |
51 | */ |
52 | typedef struct CreateReplicationSlotCmd |
53 | { |
54 | NodeTag type; |
55 | char *slotname; |
56 | ReplicationKind kind; |
57 | char *plugin; |
58 | bool temporary; |
59 | List *options; |
60 | } CreateReplicationSlotCmd; |
61 | |
62 | |
63 | /* ---------------------- |
64 | * DROP_REPLICATION_SLOT command |
65 | * ---------------------- |
66 | */ |
67 | typedef struct DropReplicationSlotCmd |
68 | { |
69 | NodeTag type; |
70 | char *slotname; |
71 | bool wait; |
72 | } DropReplicationSlotCmd; |
73 | |
74 | |
75 | /* ---------------------- |
76 | * START_REPLICATION command |
77 | * ---------------------- |
78 | */ |
79 | typedef struct StartReplicationCmd |
80 | { |
81 | NodeTag type; |
82 | ReplicationKind kind; |
83 | char *slotname; |
84 | TimeLineID timeline; |
85 | XLogRecPtr startpoint; |
86 | List *options; |
87 | } StartReplicationCmd; |
88 | |
89 | |
90 | /* ---------------------- |
91 | * TIMELINE_HISTORY command |
92 | * ---------------------- |
93 | */ |
94 | typedef struct TimeLineHistoryCmd |
95 | { |
96 | NodeTag type; |
97 | TimeLineID timeline; |
98 | } TimeLineHistoryCmd; |
99 | |
100 | /* ---------------------- |
101 | * SQL commands |
102 | * ---------------------- |
103 | */ |
104 | typedef struct SQLCmd |
105 | { |
106 | NodeTag type; |
107 | } SQLCmd; |
108 | |
109 | #endif /* REPLNODES_H */ |
110 | |