From 1f1dbd6510812caacbb9eb81af8db59a1b23a718 Mon Sep 17 00:00:00 2001 From: chenzizhan Date: Mon, 12 Aug 2024 17:02:25 +0800 Subject: fix ci --- src/cells/heavy_keeper.c | 7 ++++--- src/cells/heavy_keeper.h | 2 +- src/cube.c | 6 +++--- 3 files changed, 8 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/cells/heavy_keeper.c b/src/cells/heavy_keeper.c index c62e550..82fe4be 100644 --- a/src/cells/heavy_keeper.c +++ b/src/cells/heavy_keeper.c @@ -812,14 +812,15 @@ struct heavy_keeper *heavy_keeper_copy(const struct heavy_keeper *src) { return ret; } -void heavy_keeper_one_point_query(const struct heavy_keeper *hk, const char *key, size_t key_len, long long *count_out, void **exdata_out) { +int heavy_keeper_one_point_query(const struct heavy_keeper *hk, const char *key, size_t key_len, long long *count_out, void **exdata_out) { *count_out = 0; *exdata_out = NULL; const heap_entry *entry = sorted_set_find_entry(hk->top_K_heap, key, key_len); - if (entry == NULL) { - return; + if (entry == NULL || sorted_set_entry_dying(entry)) { + return -1; } *count_out = sorted_set_entry_get_score(entry); *exdata_out = sorted_set_entry_get_data(entry)->exdata; + return 0; } \ No newline at end of file diff --git a/src/cells/heavy_keeper.h b/src/cells/heavy_keeper.h index 3b09598..21c5b23 100644 --- a/src/cells/heavy_keeper.h +++ b/src/cells/heavy_keeper.h @@ -40,7 +40,7 @@ void heavy_keeper_merge(struct heavy_keeper *dest, const struct heavy_keeper *sr struct heavy_keeper *heavy_keeper_copy(const struct heavy_keeper *src); // for test -void heavy_keeper_one_point_query(const struct heavy_keeper *hk, const char *key, size_t key_len, long long *count_out, void **exdata_out); +int heavy_keeper_one_point_query(const struct heavy_keeper *hk, const char *key, size_t key_len, long long *count_out, void **exdata_out); #ifdef __cplusplus diff --git a/src/cube.c b/src/cube.c index 0c340f0..ffbe89b 100644 --- a/src/cube.c +++ b/src/cube.c @@ -1200,13 +1200,13 @@ int cube_counter_get(const struct cube *cube, int metric_id, const struct field_ long long count = 0; void *exdata_dummy = NULL; - heavy_keeper_one_point_query(cube->heavykeeper, dimension_in_string, dimension_string_len, &count, &exdata_dummy); + int tmp_ret = heavy_keeper_one_point_query(cube->heavykeeper, dimension_in_string, dimension_string_len, &count, &exdata_dummy); *value = count; free(dimension_in_string); - if (exdata_dummy == NULL) { + if (tmp_ret < 0) { return FS_ERR_INVALID_DIMENSION; - } + } if (count == 0) { return FS_ERR_INVALID_METRIC_ID; } -- cgit v1.2.3