summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Newson <rnewson@apache.org>2021-02-26 20:59:15 +0000
committerGitHub <noreply@github.com>2021-02-26 20:59:15 +0000
commit3d4a827bda9ae60cf8d223e3d213c1852b32b4f1 (patch)
tree1e8d432fc91733e1a0729807089c926e97417ceb
parentec4b2132918338d893a800a823cf5f12d5b2efd5 (diff)
parent6f6db1ee27d8ac2879b4149378ea6b94dc5ddc42 (diff)
downloadcouchdb-3d4a827bda9ae60cf8d223e3d213c1852b32b4f1.tar.gz
Merge pull request #3384 from apache/ebtree-lookup-collate-eq
use collate in lookup
-rw-r--r--src/ebtree/src/ebtree.erl12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/ebtree/src/ebtree.erl b/src/ebtree/src/ebtree.erl
index 8c921d1a3..8962b1502 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) ->