PostgreSQL Source Code  git master
streamutil.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * streamutil.h
4  *
5  * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
6  *
7  * IDENTIFICATION
8  * src/bin/pg_basebackup/streamutil.h
9  *-------------------------------------------------------------------------
10  */
11 
12 #ifndef STREAMUTIL_H
13 #define STREAMUTIL_H
14 
15 #include "access/xlogdefs.h"
16 #include "datatype/timestamp.h"
17 #include "libpq-fe.h"
18 #include "pqexpbuffer.h"
19 
20 extern const char *progname;
21 extern char *connection_string;
22 extern char *dbhost;
23 extern char *dbuser;
24 extern char *dbport;
25 extern char *dbname;
26 extern int dbgetpassword;
27 extern int WalSegSz;
28 
29 /* Connection kept global so we can disconnect easily */
30 extern PGconn *conn;
31 
32 extern PGconn *GetConnection(void);
33 
34 extern char *GetDbnameFromConnectionOptions(void);
35 
36 /* Replication commands */
37 extern bool CreateReplicationSlot(PGconn *conn, const char *slot_name,
38  const char *plugin, bool is_temporary,
39  bool is_physical, bool reserve_wal,
40  bool slot_exists_ok, bool two_phase);
41 extern bool DropReplicationSlot(PGconn *conn, const char *slot_name);
42 extern bool RunIdentifySystem(PGconn *conn, char **sysid,
43  TimeLineID *starttli,
45  char **db_name);
46 
48  bool use_new_option_syntax,
49  char *option_name);
51  bool use_new_option_syntax,
52  char *option_name, char *option_value);
54  bool use_new_option_syntax,
55  char *option_name, int32 option_value);
56 
57 extern bool GetSlotInformation(PGconn *conn, const char *slot_name,
58  XLogRecPtr *restart_lsn,
59  TimeLineID *restart_tli);
60 extern bool RetrieveWalSegSize(PGconn *conn);
63  long *secs, int *microsecs);
64 
66  int msec);
67 extern void fe_sendint64(int64 i, char *buf);
68 extern int64 fe_recvint64(char *buf);
69 
70 #endif /* STREAMUTIL_H */
signed int int32
Definition: c.h:497
int64 TimestampTz
Definition: timestamp.h:39
int i
Definition: isn.c:73
static time_t start_time
Definition: pg_ctl.c:95
static bool slot_exists_ok
Definition: pg_receivewal.c:50
static bool two_phase
static const char * plugin
static XLogRecPtr startpos
static char * buf
Definition: pg_test_fsync.c:73
void AppendIntegerCommandOption(PQExpBuffer buf, bool use_new_option_syntax, char *option_name, int32 option_value)
Definition: streamutil.c:853
int dbgetpassword
Definition: streamutil.c:53
bool RetrieveWalSegSize(PGconn *conn)
Definition: streamutil.c:344
int WalSegSz
Definition: streamutil.c:34
char * dbhost
Definition: streamutil.c:49
int64 fe_recvint64(char *buf)
Definition: streamutil.c:931
char * GetDbnameFromConnectionOptions(void)
Definition: streamutil.c:305
bool CreateReplicationSlot(PGconn *conn, const char *slot_name, const char *plugin, bool is_temporary, bool is_physical, bool reserve_wal, bool slot_exists_ok, bool two_phase)
Definition: streamutil.c:652
TimestampTz feGetCurrentTimestamp(void)
Definition: streamutil.c:866
char * dbport
Definition: streamutil.c:51
void feTimestampDifference(TimestampTz start_time, TimestampTz stop_time, long *secs, int *microsecs)
Definition: streamutil.c:885
void AppendPlainCommandOption(PQExpBuffer buf, bool use_new_option_syntax, char *option_name)
Definition: streamutil.c:809
void AppendStringCommandOption(PQExpBuffer buf, bool use_new_option_syntax, char *option_name, char *option_value)
Definition: streamutil.c:830
void fe_sendint64(int64 i, char *buf)
Definition: streamutil.c:920
char * connection_string
Definition: streamutil.c:48
PGconn * GetConnection(void)
Definition: streamutil.c:63
bool feTimestampDifferenceExceeds(TimestampTz start_time, TimestampTz stop_time, int msec)
Definition: streamutil.c:907
bool GetSlotInformation(PGconn *conn, const char *slot_name, XLogRecPtr *restart_lsn, TimeLineID *restart_tli)
Definition: streamutil.c:558
const char * progname
Definition: main.c:44
bool DropReplicationSlot(PGconn *conn, const char *slot_name)
Definition: streamutil.c:760
char * dbname
Definition: streamutil.c:52
PGconn * conn
Definition: streamutil.c:55
bool RunIdentifySystem(PGconn *conn, char **sysid, TimeLineID *starttli, XLogRecPtr *startpos, char **db_name)
Definition: streamutil.c:477
char * dbuser
Definition: streamutil.c:50
uint64 XLogRecPtr
Definition: xlogdefs.h:21
uint32 TimeLineID
Definition: xlogdefs.h:59