#include "collectd.h"
-#include "common.h"
#include "plugin.h"
-#include "utils_db_query.h"
+#include "utils/common/common.h"
+#include "utils/db_query/db_query.h"
#include <dbi/dbi.h>
char *select_db;
char *plugin_name;
- cdtime_t interval;
-
char *driver;
char *host;
cdbi_driver_option_t *driver_options;
static int cdbi_config_add_database(oconfig_item_t *ci) /* {{{ */
{
+ cdtime_t interval = 0;
cdbi_database_t *db;
int status;
else if (strcasecmp("Host", child->key) == 0)
status = cf_util_get_string(child, &db->host);
else if (strcasecmp("Interval", child->key) == 0)
- status = cf_util_get_cdtime(child, &db->interval);
+ status = cf_util_get_cdtime(child, &interval);
else if (strcasecmp("Plugin", child->key) == 0)
status = cf_util_get_string(child, &db->plugin_name);
else {
/* group = */ NULL,
/* name = */ name ? name : db->name,
/* callback = */ cdbi_read_database,
- /* interval = */ (db->interval > 0) ? db->interval : 0,
+ /* interval = */ interval,
&(user_data_t){
.data = db,
});
status = udb_query_prepare_result(
q, prep_area, (db->host ? db->host : hostname_g),
/* plugin = */ (db->plugin_name != NULL) ? db->plugin_name : "dbi",
- db->name, column_names, column_num,
- /* interval = */ (db->interval > 0) ? db->interval : 0);
+ db->name, column_names, column_num);
- if (status != 0)
- {
- ERROR("dbi plugin: udb_query_prepare_result failed with status %i.", status);
- BAIL_OUT (-1);
+ if (status != 0) {
+ ERROR("dbi plugin: udb_query_prepare_result failed with status %i.",
+ status);
+ BAIL_OUT(-1);
}
/* 0 = error; 1 = success; */
} /* }}} */
/* Get the next row from the database. */
+ if (!dbi_result_has_next_row(res))
+ break;
+
status = dbi_result_next_row(res); /* {{{ */
if (status != 1) {
- if (dbi_conn_error(db->connection, NULL) != 0) {
- char errbuf[1024];
- WARNING("dbi plugin: cdbi_read_database_query (%s, %s): "
- "dbi_result_next_row failed: %s.",
- db->name, udb_query_get_name(q),
- cdbi_strerror(db->connection, errbuf, sizeof(errbuf)));
- }
+ char errbuf[1024];
+ WARNING("dbi plugin: cdbi_read_database_query (%s, %s): "
+ "dbi_result_next_row failed: %s.",
+ db->name, udb_query_get_name(q),
+ cdbi_strerror(db->connection, errbuf, sizeof(errbuf)));
break;
} /* }}} */
} /* }}} while (42) */