diff options
author | Robert Newson <rnewson@apache.org> | 2020-07-29 21:15:01 +0100 |
---|---|---|
committer | Robert Newson <rnewson@apache.org> | 2020-07-29 21:15:01 +0100 |
commit | f8fdf9721e2ac932022065bc075301641568d67c (patch) | |
tree | 57f73cae27463df6487524a60236ccf14e8da008 | |
parent | 46cff24e68524caccf0a96ba02ace9b6b9767663 (diff) | |
download | couchdb-f8fdf9721e2ac932022065bc075301641568d67c.tar.gz |
Call collate for group equalityprototype/fdb-layer-ebtree-group-reduce-fix
-rw-r--r-- | src/ebtree/src/ebtree.erl | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/ebtree/src/ebtree.erl b/src/ebtree/src/ebtree.erl index ceb78fbf5..bae0ff310 100644 --- a/src/ebtree/src/ebtree.erl +++ b/src/ebtree/src/ebtree.erl @@ -339,7 +339,7 @@ group_reduce(Db, #tree{} = Tree, StartKey, EndKey, GroupKeyFun, UserAccFun, User collate(Tree, Key, StartKey, if InclusiveStart -> [gt, eq]; true -> [gt] end) andalso collate(Tree, Key, EndKey, if InclusiveEnd -> [lt, eq]; true -> [lt] end), KeyGroup = GroupKeyFun(Key), - SameGroup = CurrentGroup =:= KeyGroup, + SameGroup = collate(Tree, CurrentGroup, KeyGroup, [eq]), if Dir == fwd andalso BeforeStart -> {ok, {CurrentGroup, UserAcc, MapAcc, ReduceAcc}}; @@ -361,7 +361,9 @@ group_reduce(Db, #tree{} = Tree, StartKey, EndKey, GroupKeyFun, UserAccFun, User ({traverse, FirstKey, LastKey, Reduction}, {CurrentGroup, UserAcc, MapAcc, ReduceAcc}) -> BeforeStart = collate(Tree, LastKey, StartKey, if InclusiveStart -> [lt]; true -> [lt, eq] end), AfterEnd = collate(Tree, FirstKey, EndKey, if InclusiveEnd -> [gt]; true -> [gt, eq] end), - Whole = CurrentGroup =:= GroupKeyFun(FirstKey) andalso CurrentGroup =:= GroupKeyFun(LastKey), + Whole = + collate(Tree, CurrentGroup, GroupKeyFun(FirstKey), [eq]) andalso + collate(Tree, CurrentGroup, GroupKeyFun(LastKey), [eq]), FirstInRange = collate(Tree, FirstKey, StartKey, if InclusiveStart -> [gt, eq]; true -> [gt] end) andalso collate(Tree, FirstKey, EndKey, if InclusiveEnd -> [lt, eq]; true -> [lt] end), |