diff options
| author | chenzizhan <[email protected]> | 2024-08-12 17:02:25 +0800 |
|---|---|---|
| committer | chenzizhan <[email protected]> | 2024-08-12 17:02:25 +0800 |
| commit | 1f1dbd6510812caacbb9eb81af8db59a1b23a718 (patch) | |
| tree | 90a0d1999e0129e93c06c3b65ea10ebff9a145e4 /src | |
| parent | 7ccaafd2c6b2527ac9b98c4c376ce29a8c5e5cb9 (diff) | |
fix ci
Diffstat (limited to 'src')
| -rw-r--r-- | src/cells/heavy_keeper.c | 7 | ||||
| -rw-r--r-- | src/cells/heavy_keeper.h | 2 | ||||
| -rw-r--r-- | src/cube.c | 6 |
3 files changed, 8 insertions, 7 deletions
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 @@ -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; } |
