From 5a4da506cfb2cd78864f4dfe7320b94d8599f7f7 Mon Sep 17 00:00:00 2001 From: Robert Newson Date: Tue, 28 Jul 2020 22:18:08 +0100 Subject: Replace the 'true' clauses in visit with more explicit ones --- src/ebtree/src/ebtree.erl | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/ebtree/src/ebtree.erl b/src/ebtree/src/ebtree.erl index f08e1e9be..228e1df44 100644 --- a/src/ebtree/src/ebtree.erl +++ b/src/ebtree/src/ebtree.erl @@ -241,15 +241,16 @@ full_reduce(Db, #tree{} = Tree) -> reduce(Db, #tree{} = Tree, StartKey, EndKey) -> Fun = fun ({visit, Key, Value}, {MapAcc, ReduceAcc}) -> + BeforeStart = less_than(Tree, Key, StartKey), AfterEnd = greater_than(Tree, Key, EndKey), InRange = greater_than_or_equal(Tree, Key, StartKey) andalso less_than_or_equal(Tree, Key, EndKey), if + BeforeStart -> + {ok, {MapAcc, ReduceAcc}}; AfterEnd -> {stop, {MapAcc, ReduceAcc}}; InRange -> - {ok, {[{Key, Value} | MapAcc], ReduceAcc}}; - true -> - {ok, {MapAcc, ReduceAcc}} + {ok, {[{Key, Value} | MapAcc], ReduceAcc}} end; ({traverse, FirstKey, LastKey, Reduction}, {MapAcc, ReduceAcc}) -> BeforeStart = less_than(Tree, LastKey, StartKey), @@ -322,6 +323,10 @@ group_reduce(Db, #tree{} = Tree, StartKey, EndKey, GroupKeyFun, UserAccFun, User KeyGroup = GroupKeyFun(Key), SameGroup = CurrentGroup =:= KeyGroup, if + Dir == fwd andalso BeforeStart -> + {ok, {CurrentGroup, UserAcc, MapAcc, ReduceAcc}}; + Dir == rev andalso AfterEnd -> + {ok, {CurrentGroup, UserAcc, MapAcc, ReduceAcc}}; Dir == fwd andalso AfterEnd -> {stop, {CurrentGroup, UserAcc, MapAcc, ReduceAcc}}; Dir == rev andalso BeforeStart -> @@ -333,9 +338,7 @@ group_reduce(Db, #tree{} = Tree, StartKey, EndKey, GroupKeyFun, UserAccFun, User InRange -> %% implicit end of current group and start of a new one GroupValue = do_reduce(Tree, MapAcc, ReduceAcc), - {ok, {KeyGroup, UserAccFun({CurrentGroup, GroupValue}, UserAcc), [{Key, Value}], []}}; - true -> - {ok, {CurrentGroup, UserAcc, MapAcc, ReduceAcc}} + {ok, {KeyGroup, UserAccFun({CurrentGroup, GroupValue}, UserAcc), [{Key, Value}], []}} end; ({traverse, FirstKey, LastKey, Reduction}, {CurrentGroup, UserAcc, MapAcc, ReduceAcc}) -> BeforeStart = less_than(Tree, LastKey, StartKey), -- cgit v1.2.1