Support pre-10 WAL functions

This commit is contained in:
Ian Barwick
2017-07-14 10:40:11 +09:00
parent dfcf85a62f
commit d653888c65
3 changed files with 18 additions and 3 deletions

View File

@@ -2775,8 +2775,15 @@ get_last_wal_receive_location(PGconn *conn)
PGresult *res;
XLogRecPtr ptr = InvalidXLogRecPtr;
// pre-10 !!!
res = PQexec(conn, "SELECT pg_catalog.pg_last_wal_receive_lsn()");
if (server_version_num >= 100000)
{
res = PQexec(conn, "SELECT pg_catalog.pg_last_wal_receive_lsn()");
}
else
{
res = PQexec(conn, "SELECT pg_catalog.pg_last_xlog_receive_location()");
}
if (PQresultStatus(res) == PGRES_TUPLES_OK)
{

View File

@@ -37,6 +37,7 @@ PGconn *local_conn = NULL;
/* Collate command line errors here for friendlier reporting */
static ItemList cli_errors = { NULL, NULL };
int server_version_num = 0;
bool startup_event_logged = false;
MonitoringState monitoring_state = MS_NORMAL;
@@ -286,6 +287,12 @@ main(int argc, char **argv)
/* abort if local node not available at startup */
local_conn = establish_db_connection(config_file_options.conninfo, true);
/*
* store the server version number - we'll need this to generate
* version-dependent queries etc.
*/
server_version_num = get_server_version(local_conn, NULL);
/*
* sanity checks
*

View File

@@ -26,7 +26,8 @@ extern instr_time degraded_monitoring_start;
extern t_configuration_options config_file_options;
extern t_node_info local_node_info;
extern PGconn *local_conn;
extern bool startup_event_logged;
extern bool startup_event_logged;
extern int server_version_num;
PGconn *try_reconnect(const char *conninfo, NodeStatus *node_status);