static PGresult *c_psql_exec_query_params (c_psql_database_t *db,
udb_query_t *q, c_psql_user_data_t *data)
{
static PGresult *c_psql_exec_query_params (c_psql_database_t *db,
udb_query_t *q, c_psql_user_data_t *data)
{
if ((data == NULL) || (data->params_num == 0))
return (c_psql_exec_query_noparams (db, q));
assert (db->max_params_num >= data->params_num);
if ((data == NULL) || (data->params_num == 0))
return (c_psql_exec_query_noparams (db, q));
assert (db->max_params_num >= data->params_num);
/* The user data may hold parameter information, but may be NULL. */
data = udb_query_get_user_data (q);
/* The user data may hold parameter information, but may be NULL. */
data = udb_query_get_user_data (q);
/* Pointers returned by `PQfname' are freed by `PQclear' via
* `BAIL_OUT'. */
column_names[col] = PQfname (res, col);
/* Pointers returned by `PQfname' are freed by `PQclear' via
* `BAIL_OUT'. */
column_names[col] = PQfname (res, col);
for (col = 0; col < column_num; ++col) {
/* Pointers returned by `PQgetvalue' are freed by `PQclear' via
* `BAIL_OUT'. */
for (col = 0; col < column_num; ++col) {
/* Pointers returned by `PQgetvalue' are freed by `PQclear' via
* `BAIL_OUT'. */
int status = ssnprintf (str_ptr, str_len, ",'%s'", ds->ds[i].name);
if (status < 1)
int status = ssnprintf (str_ptr, str_len, ",'%s'", ds->ds[i].name);
if (status < 1)
- if (cdtime_to_iso8601 (time_str, sizeof (time_str), vl->time) == 0) {
- log_err ("c_psql_write: Failed to convert time to ISO 8601 format");
+ if (rfc3339nano (time_str, sizeof (time_str), vl->time) != 0) {
+ log_err ("c_psql_write: Failed to convert time to RFC 3339 format");
params[0], params[1], params[2], params[3], params[4], params[5], params[6] );
return 0;
}
params[0], params[1], params[2], params[3], params[4], params[5], params[6] );
return 0;
}
oconfig_item_t *c = ci->children + i;
if (strcasecmp ("Statement", c->key) == 0)
oconfig_item_t *c = ci->children + i;
if (strcasecmp ("Statement", c->key) == 0)
if ((1 != ci->values_num)
|| (OCONFIG_TYPE_STRING != ci->values[0].type)) {
log_err ("<Database> expects a single string argument.");
return 1;
}
if ((1 != ci->values_num)
|| (OCONFIG_TYPE_STRING != ci->values[0].type)) {
log_err ("<Database> expects a single string argument.");
return 1;
}
oconfig_item_t *c = ci->children + i;
if (0 == strcasecmp (c->key, "Host"))
oconfig_item_t *c = ci->children + i;
if (0 == strcasecmp (c->key, "Host"))
/* If no `Query' options were given, add the default queries.. */
if ((db->queries_num == 0) && (db->writers_num == 0)){
/* If no `Query' options were given, add the default queries.. */
if ((db->queries_num == 0) && (db->writers_num == 0)){
udb_query_pick_from_list_by_name (def_queries[i],
queries, queries_num,
&db->queries, &db->queries_num);
udb_query_pick_from_list_by_name (def_queries[i],
queries, queries_num,
&db->queries, &db->queries_num);
c_psql_user_data_t *data;
data = udb_query_get_user_data (db->queries[i]);
if ((data != NULL) && (data->params_num > db->max_params_num))
c_psql_user_data_t *data;
data = udb_query_get_user_data (db->queries[i]);
if ((data != NULL) && (data->params_num > db->max_params_num))
ssnprintf (cb_name, sizeof (cb_name), "postgresql-%s", db->instance);
ssnprintf (cb_name, sizeof (cb_name), "postgresql-%s", db->instance);
++db->ref_cnt;
plugin_register_complex_read ("postgresql", cb_name, c_psql_read,
++db->ref_cnt;
plugin_register_complex_read ("postgresql", cb_name, c_psql_read,
oconfig_item_t *c = ci->children + i;
if (0 == strcasecmp (c->key, "Query"))
oconfig_item_t *c = ci->children + i;
if (0 == strcasecmp (c->key, "Query"))