Make t_node_info generally available

And have it include all the fields from the repl_nodes table.
This commit is contained in:
Ian Barwick
2015-11-25 11:16:45 +09:00
parent 40354e1d62
commit ce2d4fb86f
3 changed files with 44 additions and 26 deletions

View File

@@ -20,10 +20,51 @@
#ifndef _REPMGR_DBUTILS_H_
#define _REPMGR_DBUTILS_H_
#include "access/xlogdefs.h"
#include "config.h"
#include "strutil.h"
typedef enum {
UNKNOWN = 0,
MASTER,
STANDBY,
WITNESS
} t_server_type;
/*
* Struct to store node information
*/
typedef struct s_node_info
{
int node_id;
int upstream_node_id;
t_server_type type;
char name[MAXLEN];
char conninfo_str[MAXLEN];
char slot_name[MAXLEN];
int priority;
bool active;
bool is_ready;
bool is_visible;
XLogRecPtr xlog_location;
} t_node_info;
#define T_NODE_INFO_INITIALIZER { \
NODE_NOT_FOUND, \
NO_UPSTREAM_NODE, \
UNKNOWN, \
"", \
"", \
"", \
DEFAULT_PRIORITY, \
true, \
false, \
false, \
InvalidXLogRecPtr \
}
PGconn *establish_db_connection(const char *conninfo,
const bool exit_on_error);