fix(dsstore): use correct comparison when walking over generations
This commit is contained in:
parent
22009bcc58
commit
05d97397d3
|
@ -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}) ->
|
||||||
#{
|
#{
|
||||||
|
|
Loading…
Reference in New Issue