X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Futils_db_query.c;h=7d594d812a4e0bf2f0f1b9c3e936ec762f917e5a;hb=552e81eebd54e4dc7a5d290a1ec4be769bef4a24;hp=13cdf9e57871226f69991c90652d457f895cf5f3;hpb=f18c3057ac834fdc62246289659b6a9518a147f3;p=collectd.git diff --git a/src/utils_db_query.c b/src/utils_db_query.c index 13cdf9e5..7d594d81 100644 --- a/src/utils_db_query.c +++ b/src/utils_db_query.c @@ -84,6 +84,8 @@ struct udb_query_preparation_area_s /* {{{ */ char *plugin; char *db_name; + int interval; + udb_result_preparation_area_t *result_prep_areas; }; /* }}} */ @@ -228,6 +230,9 @@ static int udb_legacy_result_handle_result (udb_result_t *r, /* {{{ */ return (-1); } + if (q_area->interval > 0) + vl.interval = q_area->interval; + sstrncpy (vl.host, q_area->host, sizeof (vl.host)); sstrncpy (vl.plugin, q_area->plugin, sizeof (vl.plugin)); sstrncpy (vl.plugin_instance, q_area->db_name, sizeof (vl.type_instance)); @@ -388,6 +393,9 @@ static int udb_result_submit (udb_result_t *r, /* {{{ */ } } + if (q_area->interval > 0) + vl.interval = q_area->interval; + sstrncpy (vl.host, q_area->host, sizeof (vl.host)); sstrncpy (vl.plugin, q_area->plugin, sizeof (vl.plugin)); sstrncpy (vl.plugin_instance, q_area->db_name, sizeof (vl.type_instance)); @@ -1071,6 +1079,8 @@ void udb_query_finish_result (const udb_query_t const *q, /* {{{ */ sfree (prep_area->plugin); sfree (prep_area->db_name); + prep_area->interval = -1; + for (r = q->results, r_area = prep_area->result_prep_areas; r != NULL; r = r->next, r_area = r_area->next) { @@ -1137,7 +1147,7 @@ int udb_query_handle_result (const udb_query_t const *q, /* {{{ */ int udb_query_prepare_result (const udb_query_t const *q, /* {{{ */ udb_query_preparation_area_t *prep_area, const char *host, const char *plugin, const char *db_name, - char **column_names, size_t column_num) + char **column_names, size_t column_num, int interval) { udb_result_preparation_area_t *r_area; udb_result_t *r; @@ -1153,6 +1163,8 @@ int udb_query_prepare_result (const udb_query_t const *q, /* {{{ */ prep_area->plugin = strdup (plugin); prep_area->db_name = strdup (db_name); + prep_area->interval = interval; + if ((prep_area->host == NULL) || (prep_area->plugin == NULL) || (prep_area->db_name == NULL)) {