X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=src%2Fparser%2Fast.c;h=1db342cadf6e6b796fafd8ed05c39d985efce23b;hp=81a4c343e37e4d2edf5e80e2f9398c510d6da1c1;hb=HEAD;hpb=85fa98410c3ef44c2b4ce4e5b2902a70b5932689 diff --git a/src/parser/ast.c b/src/parser/ast.c index 81a4c34..1db342c 100644 --- a/src/parser/ast.c +++ b/src/parser/ast.c @@ -85,6 +85,8 @@ fetch_destroy(sdb_object_t *obj) sdb_ast_fetch_t *fetch = SDB_AST_FETCH(obj); if (fetch->hostname) free(fetch->hostname); + if (fetch->parent) + free(fetch->parent); if (fetch->name) free(fetch->name); fetch->hostname = fetch->name = NULL; @@ -139,6 +141,13 @@ timeseries_destroy(sdb_object_t *obj) free(timeseries->hostname); if (timeseries->metric) free(timeseries->metric); + if (timeseries->data_names) { + size_t i; + for (i = 0; i < timeseries->data_names_len; i++) + free(timeseries->data_names[i]); + free(timeseries->data_names); + timeseries->data_names = NULL; + } timeseries->hostname = timeseries->metric = NULL; } /* timeseries_destroy */ @@ -289,8 +298,9 @@ sdb_ast_value_create(int type, char *name) } /* sdb_ast_value_create */ sdb_ast_node_t * -sdb_ast_fetch_create(int obj_type, char *hostname, char *name, - sdb_ast_node_t *filter) +sdb_ast_fetch_create(int obj_type, char *hostname, + int parent_type, char *parent, char *name, + bool full, sdb_ast_node_t *filter) { sdb_ast_fetch_t *fetch; fetch = SDB_AST_FETCH(sdb_object_create("FETCH", fetch_type)); @@ -301,7 +311,10 @@ sdb_ast_fetch_create(int obj_type, char *hostname, char *name, fetch->obj_type = obj_type; fetch->hostname = hostname; + fetch->parent_type = parent_type; + fetch->parent = parent; fetch->name = name; + fetch->full = full; fetch->filter = filter; return SDB_AST_NODE(fetch); } /* sdb_ast_fetch_create */ @@ -341,7 +354,8 @@ sdb_ast_lookup_create(int obj_type, sdb_ast_node_t *matcher, sdb_ast_node_t * sdb_ast_store_create(int obj_type, char *hostname, int parent_type, char *parent, char *name, sdb_time_t last_update, - char *store_type, char *store_id, sdb_data_t value) + char *store_type, char *store_id, sdb_time_t store_last_update, + sdb_data_t value) { sdb_ast_store_t *store; store = SDB_AST_STORE(sdb_object_create("STORE", st_type)); @@ -358,12 +372,14 @@ sdb_ast_store_create(int obj_type, char *hostname, store->last_update = last_update; store->store_type = store_type; store->store_id = store_id; + store->store_last_update = store_last_update; store->value = value; return SDB_AST_NODE(store); } /* sdb_ast_store_create */ sdb_ast_node_t * sdb_ast_timeseries_create(char *hostname, char *metric, + char **data_names, size_t data_names_len, sdb_time_t start, sdb_time_t end) { sdb_ast_timeseries_t *timeseries; @@ -375,6 +391,8 @@ sdb_ast_timeseries_create(char *hostname, char *metric, timeseries->hostname = hostname; timeseries->metric = metric; + timeseries->data_names = data_names; + timeseries->data_names_len = data_names_len; timeseries->start = start; timeseries->end = end; return SDB_AST_NODE(timeseries);