diff options
author | Robert Newson <rnewson@apache.org> | 2021-02-26 20:59:15 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-26 20:59:15 +0000 |
commit | 3d4a827bda9ae60cf8d223e3d213c1852b32b4f1 (patch) | |
tree | 1e8d432fc91733e1a0729807089c926e97417ceb | |
parent | ec4b2132918338d893a800a823cf5f12d5b2efd5 (diff) | |
parent | 6f6db1ee27d8ac2879b4149378ea6b94dc5ddc42 (diff) | |
download | couchdb-3d4a827bda9ae60cf8d223e3d213c1852b32b4f1.tar.gz |
Merge pull request #3384 from apache/ebtree-lookup-collate-eq
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 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) -> |