projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
stats plugin: Link with libm (-lm).
[collectd.git]
/
src
/
postgresql.c
diff --git
a/src/postgresql.c
b/src/postgresql.c
index
e7b247e
..
c240e54
100644
(file)
--- a/
src/postgresql.c
+++ b/
src/postgresql.c
@@
-381,9
+381,6
@@
static int c_psql_check_connection (c_psql_database_t *db)
c_psql_connect (db);
}
c_psql_connect (db);
}
- /* "ping" */
- PQclear (PQexec (db->conn, "SELECT 42;"));
-
if (CONNECTION_OK != PQstatus (db->conn)) {
PQreset (db->conn);
if (CONNECTION_OK != PQstatus (db->conn)) {
PQreset (db->conn);
@@
-524,6
+521,12
@@
static int c_psql_exec_query (c_psql_database_t *db, udb_query_t *q,
if (PGRES_TUPLES_OK != PQresultStatus (res)) {
pthread_mutex_lock (&db->db_lock);
if (PGRES_TUPLES_OK != PQresultStatus (res)) {
pthread_mutex_lock (&db->db_lock);
+ if ((CONNECTION_OK != PQstatus (db->conn))
+ && (0 == c_psql_check_connection (db))) {
+ PQclear (res);
+ return c_psql_exec_query (db, q, prep_area);
+ }
+
log_err ("Failed to execute SQL query: %s",
PQerrorMessage (db->conn));
log_info ("SQL query was: %s",
log_err ("Failed to execute SQL query: %s",
PQerrorMessage (db->conn));
log_info ("SQL query was: %s",
@@
-772,7
+775,7
@@
static char *values_to_sqlarray (const data_set_t *ds, const value_list_t *vl,
if (ds->ds[i].type == DS_TYPE_GAUGE)
status = ssnprintf (str_ptr, str_len,
if (ds->ds[i].type == DS_TYPE_GAUGE)
status = ssnprintf (str_ptr, str_len,
- ",
%f"
, vl->values[i].gauge);
+ ",
"GAUGE_FORMAT
, vl->values[i].gauge);
else if (store_rates) {
if (rates == NULL)
rates = uc_get_rate (ds, vl);
else if (store_rates) {
if (rates == NULL)
rates = uc_get_rate (ds, vl);
@@
-971,7
+974,7
@@
static int c_psql_flush (cdtime_t timeout,
size_t i;
if ((ud != NULL) && (ud->data != NULL)) {
size_t i;
if ((ud != NULL) && (ud->data != NULL)) {
- dbs = (
c_psql_database_t *
*)&ud->data;
+ dbs = (
void
*)&ud->data;
dbs_num = 1;
}
dbs_num = 1;
}