feat(ds): mix safe cutoff into keymapper filter during iteration

This commit is contained in:
Andrew Mayorov 2023-10-30 20:59:53 +07:00 committed by ieQu1
parent 7a94db25c3
commit 54951c273f
2 changed files with 6 additions and 3 deletions

View File

@ -154,7 +154,8 @@
-opaque keymapper() :: #keymapper{}. -opaque keymapper() :: #keymapper{}.
-type scalar_range() :: any | {'=', scalar() | infinity} | {'>=', scalar()}. -type scalar_range() ::
any | {'=', scalar() | infinity} | {'>=', scalar()} | {scalar(), '..', scalar()}.
-include("emqx_ds_bitmask.hrl"). -include("emqx_ds_bitmask.hrl").
@ -523,7 +524,9 @@ constraints_to_ranges(#keymapper{dim_sizeof = DimSizeof}, Filter) ->
({'=', Val}, _Bitsize) -> ({'=', Val}, _Bitsize) ->
{Val, Val}; {Val, Val};
({'>=', Val}, Bitsize) -> ({'>=', Val}, Bitsize) ->
{Val, ones(Bitsize)} {Val, ones(Bitsize)};
({Min, '..', Max}, _Bitsize) ->
{Min, Max}
end, end,
Filter, Filter,
DimSizeof DimSizeof

View File

@ -206,7 +206,7 @@ next_until(#s{db = DB, data = CF, keymappers = Keymappers}, It, SafeCutoffTime,
%% Make filter: %% Make filter:
Inequations = [ Inequations = [
{'=', TopicIndex}, {'=', TopicIndex},
{'>=', StartTime} {StartTime, '..', SafeCutoffTime - 1}
| lists:map( | lists:map(
fun fun
('+') -> ('+') ->