fix(dsstore): use correct comparison when walking over generations

This commit is contained in:
Andrew Mayorov 2024-06-17 16:13:53 +02:00
parent 22009bcc58
commit 05d97397d3
No known key found for this signature in database
GPG Key ID: 2837C62ACFBFED5D
1 changed files with 11 additions and 11 deletions

View File

@ -972,17 +972,17 @@ generation_get(Shard, GenId) ->
-spec generations_since(shard_id(), emqx_ds:time()) -> [gen_id()]. -spec generations_since(shard_id(), emqx_ds:time()) -> [gen_id()].
generations_since(Shard, Since) -> generations_since(Shard, Since) ->
Schema = get_schema_runtime(Shard), Schema = #{current_generation := Current} = get_schema_runtime(Shard),
maps:fold( list_generations_since(Schema, Current, Since).
fun
(?GEN_KEY(GenId), #{until := Until}, Acc) when Until >= Since -> list_generations_since(Schema, GenId, Since) ->
[GenId | Acc]; case Schema of
(_K, _V, Acc) -> #{?GEN_KEY(GenId) := #{until := Until}} when Until > Since ->
Acc [GenId | list_generations_since(Schema, GenId - 1, Since)];
end, #{} ->
[], %% No more live generations.
Schema []
). end.
format_state(#s{shard_id = ShardId, db = DB, cf_refs = CFRefs, schema = Schema, shard = Shard}) -> format_state(#s{shard_id = ShardId, db = DB, cf_refs = CFRefs, schema = Schema, shard = Shard}) ->
#{ #{