else \
{ \
uv_close((uv_handle_t *) handle, (uv_close_cb) free); \
- handle = (uv_async_t *) malloc(sizeof(uv_async_t)); \
+ handle = malloc(sizeof(uv_async_t)); \
if (handle == NULL) \
{ \
ERR_ALLOC \
static void enter_access_expr(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
/* bind ACCESS_EXPR children to query */
query->data = query->nodes->node->children;
static void enter_alter_group(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_alter_t * q_alter = (query_alter_t *) query->data;
static void enter_alter_server(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_alter_t * q_alter = (query_alter_t *) query->data;
siridb_server_t * server = siridb_server_from_node(
static void enter_alter_servers(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
((query_alter_t *) query->data)->alter_tp = QUERY_ALTER_SERVERS;
SIRIPARSER_NEXT_NODE
static void enter_alter_stmt(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_user_t * db_user = query->client->origin;
SIRIPARSER_MASTER_CHECK_ACCESS(db_user, SIRIDB_ACCESS_ALTER)
static void enter_alter_user(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
MASTER_CHECK_ACCESSIBLE(siridb)
static void enter_count_stmt(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_user_t * db_user = query->client->origin;
SIRIPARSER_MASTER_CHECK_ACCESS(db_user, SIRIDB_ACCESS_COUNT)
static void enter_create_stmt(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_user_t * db_user = query->client->origin;
SIRIPARSER_MASTER_CHECK_ACCESS(db_user, SIRIDB_ACCESS_CREATE)
static void enter_create_user(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
/* bind user object to data and set correct free call */
query_alter_t * q_alter = query_alter_new();
static void enter_drop_stmt(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_user_t * db_user = query->client->origin;
assert (query->packer == NULL);
static void enter_grant_user(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
siridb_user_t * db_user = query->client->origin;
SIRIPARSER_MASTER_CHECK_ACCESS(db_user, SIRIDB_ACCESS_GRANT)
}
static void enter_group_match(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
cleri_node_t * node = query->nodes->node;
- query_wrapper_t * q_wrapper = (query_wrapper_t *) query->data;
+ query_wrapper_t * q_wrapper = query->data;
/* we must send this query to all pools */
if (q_wrapper->pmap != NULL)
size_t i;
q_wrapper->series_tmp = (q_wrapper->update_cb == NULL) ?
- *q_wrapper->series_mapp : imap_new();
+ q_wrapper->series_map : imap_new();
if (q_wrapper->series_tmp == NULL)
{
if (q_wrapper->update_cb != NULL)
{
(*q_wrapper->update_cb)(
- *q_wrapper->series_mapp,
+ q_wrapper->series_map,
q_wrapper->series_tmp,
(imap_free_cb) &siridb__series_decref);
}
static void enter_help(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
cleri_node_t * node = query->nodes->node;
static void enter_limit_expr(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_list_t * qlist = (query_list_t *) query->data;
int64_t limit = query->nodes->node->children->next->node->result;
static void enter_list_stmt(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_user_t * db_user = query->client->origin;
SIRIPARSER_MASTER_CHECK_ACCESS(db_user, SIRIDB_ACCESS_LIST)
static void enter_merge_as(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
- query_select_t * q_select = (query_select_t *) query->data;
+ siridb_query_t * query = handle->data;
+ query_select_t * q_select = query->data;
cleri_node_t * node = query->nodes->node->children->next->next->node;
- q_select->merge_as = (char *) malloc(node->len - 1);
+ q_select->merge_as = malloc(node->len - 1);
if (q_select->merge_as == NULL)
{
static void enter_revoke_user(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
siridb_user_t * db_user = query->client->origin;
SIRIPARSER_MASTER_CHECK_ACCESS(db_user, SIRIDB_ACCESS_REVOKE)
static void enter_select_stmt(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_select_t * q_select;
cleri_children_t * child;
static void enter_set_expression(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
cleri_node_t * node = query->nodes->node->children->next->next->node;
query_alter_t * q_alter = (query_alter_t *) query->data;
static void enter_set_ignore_threshold(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
query_drop_t * q_drop = (query_drop_t *) query->data;
if ( query->nodes->node->children->next->next->node->children->node->
static void enter_set_name(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
cleri_node_t * name_node =
query->nodes->node->children->next->next->node;
static void enter_set_password(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_user_t * user = ((query_alter_t *) query->data)->via.user;
cleri_node_t * pw_node =
static void enter_series_name(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
cleri_node_t * node = query->nodes->node;
siridb_t * siridb = query->client->siridb;
- query_wrapper_t * q_wrapper = (query_wrapper_t *) query->data;
+ query_wrapper_t * q_wrapper = query->data;
siridb_series_t * series = NULL;
uint16_t pool;
char series_name[node->len - 1];
if (q_wrapper->update_cb == &imap_intersection_ref)
{
imap_free(
- *q_wrapper->series_mapp,
+ q_wrapper->series_map,
(imap_free_cb) &siridb__series_decref);
- *q_wrapper->series_mapp = imap_new();
+ q_wrapper->series_map = imap_new();
- if (*q_wrapper->series_mapp == NULL)
+ if (q_wrapper->series_map == NULL)
{
MEM_ERR_RET
}
if ( q_wrapper->update_cb == NULL ||
q_wrapper->update_cb == &imap_union_ref)
{
- if (imap_set(*q_wrapper->series_mapp, series->id, series) == 1)
+ if (imap_set(q_wrapper->series_map, series->id, series) == 1)
{
siridb_series_incref(series);
}
else if (q_wrapper->update_cb == &imap_difference_ref)
{
series = (siridb_series_t *) imap_pop(
- *q_wrapper->series_mapp,
+ q_wrapper->series_map,
series->id);
if (series != NULL)
{
else if (q_wrapper->update_cb == &imap_intersection_ref)
{
series = (siridb_series_t *) imap_get(
- *q_wrapper->series_mapp,
+ q_wrapper->series_map,
series->id);
if (series != NULL)
}
imap_free(
- *q_wrapper->series_mapp,
+ q_wrapper->series_map,
(imap_free_cb) &siridb__series_decref);
- *q_wrapper->series_mapp = imap_new();
+ q_wrapper->series_map = imap_new();
- if (*q_wrapper->series_mapp == NULL)
+ if (q_wrapper->series_map == NULL)
{
if (series != NULL)
{
if (series != NULL)
{
- if (imap_set(*q_wrapper->series_mapp, series->id, series) != 1)
+ if (imap_set(q_wrapper->series_map, series->id, series) != 1)
{
siridb_series_decref(series);
MEM_ERR_RET
}
else if (q_wrapper->update_cb == &imap_symmetric_difference_ref)
{
- switch (imap_set(*q_wrapper->series_mapp, series->id, series))
+ switch (imap_set(q_wrapper->series_map, series->id, series))
{
case 0:
series = (siridb_series_t *) imap_pop(
- *q_wrapper->series_mapp,
+ q_wrapper->series_map,
series->id);
siridb_series_decref(series);
break;
static void enter_series_match(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
query_wrapper_t * q_wrapper = query->data;
- siridb_sset_t * sset;
- if ((q_wrapper->series_vec = vec_new(1)) == NULL ||
- (sset = siridb_sset_new()) == NULL)
+ if ((q_wrapper->series_map = imap_new()) == NULL)
{
MEM_ERR_RET
}
- vec_append(q_wrapper->series_vec, sset);
-
- q_wrapper->series_mapp = &sset->series_map;
-
SIRIPARSER_NEXT_NODE
}
static void enter_series_parenthesis(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
+ query_wrapper_t * q_wrapper = query->data;
+ siridb_sset_t * sset;
+
+ assert (q_wrapper->series_map != NULL);
+
+ if (q_wrapper->sset_vec == NULL)
+ {
+ if ((q_wrapper->sset_vec = vec_new(1)) == NULL)
+ {
+ MEM_ERR_RET
+ }
+ }
+
+ if (q_wrapper->update_cb != NULL)
+ {
+ sset = siridb_sset_new(q_wrapper->series_map, q_wrapper->update_cb);
+ if (sset == NULL ||
+ vec_append_safe(&q_wrapper->sset_vec, sset) ||
+ (q_wrapper->series_map = imap_new()) == NULL)
+ {
+ MEM_ERR_RET
+ }
+
+ q_wrapper->update_cb = NULL;
+ }
+ else
+ {
+ sset = siridb_sset_new(NULL, NULL);
+ if (sset == NULL || vec_append_safe(&q_wrapper->sset_vec, sset))
+ {
+ MEM_ERR_RET
+ }
+ }
SIRIPARSER_ASYNC_NEXT_NODE
}
static void enter_series_all(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
siridb_series_t * series;
- query_wrapper_t * q_wrapper = (query_wrapper_t *) query->data;
+ query_wrapper_t * q_wrapper = query->data;
/* we must send this query to all pools */
if (q_wrapper->pmap != NULL)
( q_wrapper->update_cb == NULL ||
q_wrapper->update_cb == &imap_union_ref ||
q_wrapper->update_cb == &imap_symmetric_difference_ref) ?
- siridb->series_map : *q_wrapper->series_mapp);
+ siridb->series_map : q_wrapper->series_map);
uv_mutex_unlock(&siridb->series_mutex);
q_wrapper->series_tmp = (q_wrapper->update_cb == NULL) ?
- *q_wrapper->series_mapp : imap_new();
+ q_wrapper->series_map : imap_new();
if (q_wrapper->vec == NULL || q_wrapper->series_tmp == NULL)
{
if (q_wrapper->update_cb != NULL)
{
(*q_wrapper->update_cb)(
- *q_wrapper->series_mapp,
+ q_wrapper->series_map,
q_wrapper->series_tmp,
(imap_free_cb) &siridb__series_decref);
}
static void enter_series_re(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
cleri_node_t * node = query->nodes->node;
- query_wrapper_t * q_wrapper = (query_wrapper_t *) query->data;
+ query_wrapper_t * q_wrapper = query->data;
/* we must send this query to all pools */
if (q_wrapper->pmap != NULL)
( q_wrapper->update_cb == NULL ||
q_wrapper->update_cb == &imap_union_ref ||
q_wrapper->update_cb == &imap_symmetric_difference_ref) ?
- siridb->series_map : *q_wrapper->series_mapp);
+ siridb->series_map : q_wrapper->series_map);
uv_mutex_unlock(&siridb->series_mutex);
q_wrapper->series_tmp = (q_wrapper->update_cb == NULL) ?
- *q_wrapper->series_mapp : imap_new();
+ q_wrapper->series_map : imap_new();
if (q_wrapper->vec == NULL || q_wrapper->series_tmp == NULL)
{
MEM_ERR_RET
}
- uv_async_t * next =
- (uv_async_t *) malloc(sizeof(uv_async_t));
+ uv_async_t * next = malloc(sizeof(uv_async_t));
if (next == NULL)
{
static void enter_series_setopr(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
- query_wrapper_t * q_wrapper = (query_wrapper_t *) query->data;
+ siridb_query_t * query = handle->data;
+ query_wrapper_t * q_wrapper = query->data;
switch (query->nodes->node->children->node->cl_obj->gid)
{
static void enter_timeit_stmt(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
query->timeit = qp_packer_new(512);
if (query->timeit == NULL)
static void enter_where_xxx(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
cexpr_t * cexpr =
cexpr_from_node(query->nodes->node->children->next->node);
static void enter_xxx_columns(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
cleri_children_t * columns = query->nodes->node->children;
query_list_t * qlist = (query_list_t *) query->data;
static void exit_after_expr(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
((query_select_t *) query->data)->start_ts =
(uint64_t *) &query->nodes->node->children->next->node->result;
static void exit_alter_group(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
if (siridb_groups_save(siridb->groups))
static void exit_alter_user(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
if (siridb_users_save(siridb))
static void exit_before_expr(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
((query_select_t *) query->data)->end_ts =
(uint64_t *) &query->nodes->node->children->next->node->result;
static void exit_between_expr(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
- query_select_t * q_select = (query_select_t *) query->data;
+ siridb_query_t * query = handle->data;
+ query_select_t * q_select = query->data;
q_select->start_ts = (uint64_t *)
&query->nodes->node->children->next->node->result;
static void exit_calc_stmt(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
cleri_node_t * calc_node = query->nodes->node;
assert (query->packer == NULL);
static void exit_count_groups(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_count_t * q_count = (query_count_t *) query->data;
static void exit_count_pools(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_count_t * q_count = (query_count_t *) query->data;
siridb_pool_t * pool = siridb->pools->pool + siridb->server->pool;
static void exit_count_series(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_count_t * q_count = (query_count_t *) query->data;
if (q_count->where_expr == NULL)
{
- q_count->n = (q_count->series_mapp == NULL) ?
- siridb->series_map->len : (*q_count->series_mapp)->len;
+ q_count->n = (q_count->series_map == NULL) ?
+ siridb->series_map->len : q_count->series_map->len;
if (IS_MASTER)
{
uv_mutex_lock(&siridb->series_mutex);
q_count->vec = imap_2vec_ref(
- (q_count->series_mapp == NULL) ?
- siridb->series_map : *q_count->series_mapp);
+ (q_count->series_map == NULL) ?
+ siridb->series_map : q_count->series_map);
uv_mutex_unlock(&siridb->series_mutex);
MEM_ERR_RET
}
- uv_async_t * next =
- (uv_async_t *) malloc(sizeof(uv_async_t));
+ uv_async_t * next = malloc(sizeof(uv_async_t));
if (next == NULL)
{
MEM_ERR_RET
static void exit_count_series_length(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_count_t * q_count = (query_count_t *) query->data;
uv_mutex_lock(&siridb->series_mutex);
- vec = imap_2vec((q_count->series_mapp == NULL) ?
- siridb->series_map : *q_count->series_mapp);
+ vec = imap_2vec((q_count->series_map == NULL) ?
+ siridb->series_map : q_count->series_map);
uv_mutex_unlock(&siridb->series_mutex);
uv_mutex_lock(&siridb->series_mutex);
q_count->vec = imap_2vec_ref(
- (q_count->series_mapp == NULL) ?
- siridb->series_map : *q_count->series_mapp);
+ (q_count->series_map == NULL) ?
+ siridb->series_map : q_count->series_map);
uv_mutex_unlock(&siridb->series_mutex);
MEM_ERR_RET
}
- next = (uv_async_t *) malloc(sizeof(uv_async_t));
+ next = malloc(sizeof(uv_async_t));
if (next == NULL)
{
static void exit_count_servers(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_count_t * q_count = (query_count_t *) query->data;
cexpr_t * where_expr = q_count->where_expr;
static void exit_count_servers_received(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_count_t * q_count = (query_count_t *) query->data;
cexpr_t * where_expr = q_count->where_expr;
static void exit_count_servers_selected(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_count_t * q_count = (query_count_t *) query->data;
cexpr_t * where_expr = q_count->where_expr;
static void exit_count_shards(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_count_t * q_count = (query_count_t *) query->data;
static void exit_count_shards_size(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_count_t * q_count = (query_count_t *) query->data;
uint64_t duration;
static void exit_count_users(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
llist_node_t * node = siridb->users->first;
cexpr_t * where_expr = ((query_count_t *) query->data)->where_expr;
static void exit_create_group(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
cleri_node_t * name_nd =
query->nodes->node->children->next->node;
static void exit_create_user(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
siridb_user_t * user = ((query_alter_t *) query->data)->via.user;
cleri_node_t * user_node =
static void exit_drop_group(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
MASTER_CHECK_ACCESSIBLE(siridb)
static void exit_drop_series(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_drop_t * q_drop = (query_drop_t *) query->data;
*/
uv_mutex_lock(&siridb->series_mutex);
- q_drop->vec = q_drop->series_tmp != NULL
- ? imap_vec_pop(q_drop->series_tmp)
- : q_drop->series_mapp != NULL
- ? imap_vec_pop(*q_drop->series_mapp)
- : imap_2vec_ref(siridb->series_map);
+ q_drop->vec = (q_drop->series_map == NULL) ?
+ imap_2vec_ref(siridb->series_map) :
+ imap_vec_pop(q_drop->series_map);
uv_mutex_unlock(&siridb->series_mutex);
MEM_ERR_RET
}
- if (q_drop->series_mapp != NULL)
+ if (q_drop->series_map != NULL)
{
/* now we can simply destroy the imap in case we had one */
- imap_free(*q_drop->series_mapp, NULL);
- *q_drop->series_mapp = NULL;
+ imap_free(q_drop->series_map, NULL);
+ q_drop->series_map = NULL;
}
/*
if (q_drop->where_expr != NULL)
{
/* create a new one */
+ q_drop->series_map = imap_new();
- /* TODO: Re-write using tmp instead of map */
- q_drop->series_tmp = imap_new();
-
- if (q_drop->series_tmp == NULL)
+ if (q_drop->series_map == NULL)
{
MEM_ERR_RET
}
- uv_async_t * next = (uv_async_t *) malloc(sizeof(uv_async_t));
+ uv_async_t * next = malloc(sizeof(uv_async_t));
if (next == NULL)
{
q_drop->n = q_drop->vec->len;
- uv_async_t * next = (uv_async_t *) malloc(sizeof(uv_async_t));
+ uv_async_t * next = malloc(sizeof(uv_async_t));
if (next == NULL)
{
static void exit_drop_server(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
siridb_server_t * server = siridb_server_from_node(
siridb,
static void exit_drop_shards(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_drop_t * q_drop = (query_drop_t *) query->data;
q_drop->n = q_drop->shards_list->len;
- next = (uv_async_t *) malloc(sizeof(uv_async_t));
+ next = malloc(sizeof(uv_async_t));
if (next == NULL)
{
static void exit_drop_user(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
MASTER_CHECK_ACCESSIBLE(siridb)
static void exit_grant_user(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
if (siridb_users_save(siridb))
static void exit_help_xxx(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
if (query->data != NULL)
{
static void exit_list_groups(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_list_t * q_list = (query_list_t *) query->data;
static void exit_list_pools(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_list_t * q_list = (query_list_t *) query->data;
siridb_pool_t * pool = siridb->pools->pool + siridb->server->pool;
static void exit_list_series(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
query_list_t * q_list = (query_list_t *) query->data;
siridb_t * siridb = query->client->siridb;
uv_mutex_lock(&siridb->series_mutex);
- q_list->vec = imap_2vec_ref((q_list->series_mapp == NULL) ?
- siridb->series_map : *q_list->series_mapp);
+ q_list->vec = imap_2vec_ref((q_list->series_map == NULL) ?
+ siridb->series_map : q_list->series_map);
uv_mutex_unlock(&siridb->series_mutex);
MEM_ERR_RET;
}
- uv_async_t * next = (uv_async_t *) malloc(sizeof(uv_async_t));
+ uv_async_t * next = malloc(sizeof(uv_async_t));
if (next == NULL)
{
static void exit_list_servers(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_list_t * q_list = (query_list_t *) query->data;
static void exit_list_shards(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
query_list_t * q_list = (query_list_t *) query->data;
static void exit_list_users(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
llist_node_t * node = siridb->users->first;
static void exit_revoke_user(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
if (siridb_users_save(siridb))
static void exit_series_match(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
- query_wrapper_t * q_wrapper = (query_wrapper_t *) query->data;
+ siridb_query_t * query = handle->data;
+ query_wrapper_t * q_wrapper = query->data;
if (q_wrapper->tp == QUERIES_SELECT)
{
static void exit_series_parenthesis(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
+ query_wrapper_t * q_wrapper = query->data;
+
+ assert (q_wrapper->sset_vec);
+ assert (q_wrapper->sset_vec->len);
+
+ siridb_sset_t * sset = vec_pop(q_wrapper->sset_vec);
+
+ if (sset->update_cb != NULL)
+ {
+ assert (sset->series_map != NULL);
+ (*sset->update_cb)(
+ sset->series_map,
+ q_wrapper->series_map,
+ (imap_free_cb) &siridb__series_decref);
+ q_wrapper->series_map = sset->series_map;
+ }
+ else
+ {
+ assert (sset->series_map == NULL);
+ }
+
+ /* simple free to prevent cleaning sset->series_map */
+ free (sset);
SIRIPARSER_ASYNC_NEXT_NODE
}
static void exit_select_aggregate(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
- query_select_t * q_select = (query_select_t *) query->data;
+ siridb_query_t * query = handle->data;
+ query_select_t * q_select = query->data;
if (q_select->where_expr != NULL)
{
/* we transform the references from imap to vec */
- q_select->vec = imap_vec_pop(*q_select->series_mapp);
+ q_select->vec = imap_vec_pop(q_select->series_map);
if (q_select->vec == NULL)
{
}
/* now we can simply destroy the imap */
- imap_free(*q_select->series_mapp, NULL);
- *q_select->series_mapp = NULL;
+ imap_free(q_select->series_map, NULL);
/* create a new one */
- q_select->series_tmp = imap_new();
+ q_select->series_map = imap_new();
- if (q_select->series_tmp == NULL)
+ if (q_select->series_map == NULL)
{
MEM_ERR_RET
}
- uv_async_t * next =
- (uv_async_t *) malloc(sizeof(uv_async_t));
+ uv_async_t * next = malloc(sizeof(uv_async_t));
if (next == NULL)
{
MEM_ERR_RET
}
- uv_async_t * next =
- (uv_async_t *) malloc(sizeof(uv_async_t));
+ uv_async_t * next = malloc(sizeof(uv_async_t));
if (next == NULL)
{
static void exit_select_stmt(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
- query_select_t * q_select = (query_select_t *) query->data;
+ siridb_query_t * query = handle->data;
+ query_select_t * q_select = query->data;
if (IS_MASTER)
{
}
else
{
- uv_work_t * work = (uv_work_t *) malloc(sizeof(uv_work_t));
+ uv_work_t * work = malloc(sizeof(uv_work_t));
if (work == NULL)
{
MEM_ERR_RET
}
- uv_async_t * next = (uv_async_t *) malloc(sizeof(uv_async_t));
+ uv_async_t * next = malloc(sizeof(uv_async_t));
if (next == NULL)
{
free(work);
static void exit_set_address(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_server_t * server = ((query_alter_t *) query->data)->via.server;
cleri_node_t * node = query->nodes->node->children->next->next->node;
siridb_t * siridb = query->client->siridb;
static void exit_set_backup_mode(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
assert (query->data != NULL);
static void exit_set_drop_threshold(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
MASTER_CHECK_ACCESSIBLE(siridb)
static void exit_set_list_limit(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
MASTER_CHECK_ACCESSIBLE(siridb)
static void exit_set_log_level(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
query_alter_t * q_alter = (query_alter_t *) query->data;
siridb_t * siridb = query->client->siridb;
static void exit_set_port(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_server_t * server = ((query_alter_t *) query->data)->via.server;
cleri_node_t * node = query->nodes->node->children->next->next->node;
siridb_t * siridb = query->client->siridb;
static void exit_set_select_points_limit(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
MASTER_CHECK_ACCESSIBLE(siridb)
static void exit_set_tee_pipe_name(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
query_alter_t * q_alter = (query_alter_t *) query->data;
siridb_t * siridb = query->client->siridb;
static void exit_set_timezone(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
cleri_node_t * node = query->nodes->node->children->next->next->node;
siridb_t * siridb = query->client->siridb;
static void exit_show_stmt(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
siridb_user_t * db_user = query->client->origin;
SIRIPARSER_MASTER_CHECK_ACCESS(db_user, SIRIDB_ACCESS_SHOW)
static void exit_timeit_stmt(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
struct timespec end;
static void async_count_series(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_series_t * series;
query_count_t * q_count = (query_count_t *) query->data;
uint8_t async_more = 0;
static void async_count_series_length(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_series_t * series;
query_count_t * q_count = (query_count_t *) query->data;
uint8_t async_more = 0;
static void async_drop_series(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
query_drop_t * q_drop = (query_drop_t *) query->data;
siridb_t * siridb = query->client->siridb;
static void async_drop_shards(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
query_drop_t * q_drop = (query_drop_t *) query->data;
siridb_t * siridb = query->client->siridb;
static void async_filter_series(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
- query_wrapper_t * q_wrapper = (query_wrapper_t *) query->data;
+ siridb_query_t * query = handle->data;
+ query_wrapper_t * q_wrapper = query->data;
cexpr_t * where_expr = q_wrapper->where_expr;
uint8_t async_more = 0;
siridb_series_t * series;
(cexpr_cb_t) siridb_series_cexpr_cb,
series))
{
- if (imap_add(q_wrapper->series_tmp, series->id, series))
+ if (imap_add(q_wrapper->series_map, series->id, series))
{
log_critical("Cannot add filtered series to internal map.");
siridb_series_decref(series);
static void async_list_series(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
query_list_t * q_list = (query_list_t *) query->data;
vec_t * props = q_list->props;
cexpr_t * where_expr = q_list->where_expr;
static void async_no_points_aggregate(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
- query_select_t * q_select = (query_select_t *) query->data;
+ siridb_query_t * query = handle->data;
+ query_select_t * q_select = query->data;
siridb_t * siridb = query->client->siridb;
uint8_t async_more = 0;
siridb_series_t * series;
static void async_select_aggregate(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
- query_select_t * q_select = (query_select_t *) query->data;
+ siridb_query_t * query = handle->data;
+ query_select_t * q_select = query->data;
siridb_t * siridb = query->client->siridb;
uint8_t async_more = 0;
siridb_series_t * series;
static void async_series_re(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
- query_wrapper_t * q_wrapper = (query_wrapper_t *) query->data;
+ siridb_query_t * query = handle->data;
+ query_wrapper_t * q_wrapper = query->data;
uint8_t async_more = 0;
siridb_series_t * series;
size_t index_end = q_wrapper->vec_index + MAX_ITERATE_COUNT;
if (q_wrapper->update_cb != NULL)
{
(*q_wrapper->update_cb)(
- *q_wrapper->series_mapp,
+ q_wrapper->series_map,
q_wrapper->series_tmp,
(imap_free_cb) &siridb__series_decref);
}
if (handle != NULL)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
if (status == PROMISE_SUCCESS)
{
{
ON_PROMISES
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
sirinet_pkg_t * pkg;
sirinet_promise_t * promise;
qp_unpacker_t unpacker;
ON_PROMISES
uint8_t error_tp = 0;
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
sirinet_pkg_t * pkg;
sirinet_promise_t * promise;
qp_unpacker_t unpacker;
{
ON_PROMISES
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
sirinet_pkg_t * pkg;
sirinet_promise_t * promise;
qp_unpacker_t unpacker;
{
ON_PROMISES
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
sirinet_pkg_t * pkg;
sirinet_promise_t * promise;
qp_unpacker_t unpacker;
sirinet_pkg_t * pkg;
sirinet_promise_t * promise;
qp_unpacker_t unpacker;
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
siridb_group_t * group;
qp_obj_t qp_name;
sirinet_pkg_t * pkg;
sirinet_promise_t * promise;
qp_unpacker_t unpacker;
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
query_list_t * q_list = (query_list_t *) query->data;
size_t i;
sirinet_pkg_t * pkg;
sirinet_promise_t * promise;
qp_unpacker_t unpacker;
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
siridb_t * siridb = query->client->siridb;
size_t err_count = 0;
- query_select_t * q_select = (query_select_t *) query->data;
+ query_select_t * q_select = query->data;
qp_obj_t qp_name;
qp_obj_t qp_tp;
qp_obj_t qp_len;
else
{
uv_async_t * next;
- uv_work_t * work = (uv_work_t *) malloc(sizeof(uv_work_t));
+ uv_work_t * work = malloc(sizeof(uv_work_t));
if (work == NULL)
{
MEM_ERR_RET
}
- next = (uv_async_t *) malloc(sizeof(uv_async_t));
+ next = malloc(sizeof(uv_async_t));
if (next == NULL)
{
free(work);
sirinet_pkg_t * pkg;
sirinet_promise_t * promise;
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
size_t err_count = 0;
size_t i;
static void master_select_work(uv_work_t * work)
{
uv_async_t * handle = (uv_async_t *) work->data;
- siridb_query_t * query = (siridb_query_t *) handle->data;
- query_select_t * q_select = (query_select_t *) query->data;
+ siridb_query_t * query = handle->data;
+ query_select_t * q_select = query->data;
siridb_t * siridb = query->client->siridb;
siridb->selected_points += q_select->n;
int rc = ct_items(
*/
uv_async_t * handle = (uv_async_t *) work->data;
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
if (query->flags & SIRIDB_QUERY_FLAG_ERR)
{
siridb_points_t * points,
uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
if (query->factor)
{
vec_t * plist,
uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
- query_select_t * q_select = (query_select_t *) query->data;
+ siridb_query_t * query = handle->data;
+ query_select_t * q_select = query->data;
siridb_points_t * points;
if (qp_add_raw(query->packer, (const unsigned char *) name, len))
siridb_points_t * points,
uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
return -(qp_add_raw_term(
query->packer, (const unsigned char *) name, len) ||
uv_async_t * handle)
{
size_t i;
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
int rc = qp_add_raw_term(
query->packer, (const unsigned char *) name, len) ||
qp_add_type(query->packer, QP_ARRAY_OPEN);
static int values_list_groups(siridb_group_t * group, uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
cexpr_t * where_expr = ((query_list_t *) query->data)->where_expr;
cexpr_cb_t cb = (cexpr_cb_t) siridb_group_cexpr_cb;
vec_t * props = ((query_list_t *) query->data)->props;
static int values_count_groups(siridb_group_t * group, uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
return cexpr_run(
((query_list_t *) query->data)->where_expr,
static void finish_list_groups(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
query_list_t * q_list = (query_list_t *) query->data;
siridb_t * siridb = query->client->siridb;
static void finish_count_groups(uv_async_t * handle)
{
- siridb_query_t * query = (siridb_query_t *) handle->data;
+ siridb_query_t * query = handle->data;
query_count_t * q_count = (query_count_t *) query->data;
siridb_t * siridb = query->client->siridb;