diff options
author | Robert Newson <rnewson@apache.org> | 2021-02-26 19:05:05 +0000 |
---|---|---|
committer | Robert Newson <rnewson@apache.org> | 2021-02-26 19:05:05 +0000 |
commit | 6f6db1ee27d8ac2879b4149378ea6b94dc5ddc42 (patch) | |
tree | 8fb85d1b047d75fe168a671af9c62885481ae287 | |
parent | a9f2a5ea4ca6229d4db46c05d9922e5a838dd493 (diff) | |
download | couchdb-6f6db1ee27d8ac2879b4149378ea6b94dc5ddc42.tar.gz |
use collate in lookup
-rw-r--r-- | src/ebtree/src/ebtree.erl | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/ebtree/src/ebtree.erl b/src/ebtree/src/ebtree.erl index 1a65c9a5e..1aa149438 100644 --- a/src/ebtree/src/ebtree.erl +++ b/src/ebtree/src/ebtree.erl @@ -132,13 +132,13 @@ max() -> {Key :: term(), Value :: term()} | false. lookup(Db, #tree{} = Tree, Key) -> Fun = fun - ({visit, K, V}, _Acc) when K =:= Key -> - {stop, {K, V}}; - ({visit, K, _V}, Acc) -> - case collate(Tree, K, Key, [gt]) of - true -> + ({visit, K, V}, Acc) -> + case {collate(Tree, K, Key, [eq]), collate(Tree, K, Key, [gt])} of + {true, _} -> + {stop, {K, V}}; + {false, true} -> {stop, Acc}; - false -> + {false, false} -> {ok, Acc} end; ({traverse, F, L, _R}, Acc) -> |