summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorchenzizhan <[email protected]>2024-08-12 17:02:25 +0800
committerchenzizhan <[email protected]>2024-08-12 17:02:25 +0800
commit1f1dbd6510812caacbb9eb81af8db59a1b23a718 (patch)
tree90a0d1999e0129e93c06c3b65ea10ebff9a145e4 /src
parent7ccaafd2c6b2527ac9b98c4c376ce29a8c5e5cb9 (diff)
fix ci
Diffstat (limited to 'src')
-rw-r--r--src/cells/heavy_keeper.c7
-rw-r--r--src/cells/heavy_keeper.h2
-rw-r--r--src/cube.c6
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
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;
}