diff --git a/src/zabbix_server/housekeeper/housekeeper.c b/src/zabbix_server/housekeeper/housekeeper.c index 7e666999b1..ce4c42406c 100644 --- a/src/zabbix_server/housekeeper/housekeeper.c +++ b/src/zabbix_server/housekeeper/housekeeper.c @@ -677,10 +677,10 @@ static int housekeeping_process_rule(int now, zbx_hk_rule_t *rule) char buffer[MAX_STRING_LEN]; char *sql = NULL; size_t sql_alloc = 0, sql_offset; - zbx_vector_uint64_t ids; + zbx_vector_str_t ids; int ret; - zbx_vector_uint64_create(&ids); + zbx_vector_str_create(&ids); rule->min_clock = MIN(keep_from, rule->min_clock + HK_MAX_DELETE_PERIODS * hk_period); @@ -703,10 +703,7 @@ static int housekeeping_process_rule(int now, zbx_hk_rule_t *rule) while (NULL != (row = DBfetch(result))) { - zbx_uint64_t id; - - ZBX_STR2UINT64(id, row[0]); - zbx_vector_uint64_append(&ids, id); + zbx_vector_str_append(&ids, row[0]); } DBfree_result(result); @@ -715,18 +712,18 @@ static int housekeeping_process_rule(int now, zbx_hk_rule_t *rule) sql_offset = 0; zbx_snprintf_alloc(&sql, &sql_alloc, &sql_offset, "delete from %s where", rule->table); - DBadd_condition_alloc(&sql, &sql_alloc, &sql_offset, rule->field_name, ids.values, + DBadd_str_condition_alloc(&sql, &sql_alloc, &sql_offset, rule->field_name, ids.values, ids.values_num); if (ZBX_DB_OK > (ret = DBexecute("%s", sql))) break; deleted += ret; - zbx_vector_uint64_clear(&ids); + zbx_vector_str_clear(&ids); } zbx_free(sql); - zbx_vector_uint64_destroy(&ids); + zbx_vector_str_destroy(&ids); } zabbix_log(LOG_LEVEL_DEBUG, "End of %s():%d", __func__, deleted);