diff options
author | Robert Newson <rnewson@apache.org> | 2021-02-27 09:51:12 +0000 |
---|---|---|
committer | Robert Newson <rnewson@apache.org> | 2021-02-27 09:51:12 +0000 |
commit | 45d4039dbe2cbefe92d13105542596690d05b3be (patch) | |
tree | a1bfcda2a166e26ba920a42ae35be8467db5845b | |
parent | 3d4a827bda9ae60cf8d223e3d213c1852b32b4f1 (diff) | |
download | couchdb-45d4039dbe2cbefe92d13105542596690d05b3be.tar.gz |
Optimize lookup/3ebtree-lookup-opt
A tidier version of https://github.com/apache/couchdb/pull/3384 that
saves an unnecessary call to collate.
-rw-r--r-- | src/ebtree/src/ebtree.erl | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/ebtree/src/ebtree.erl b/src/ebtree/src/ebtree.erl index 8962b1502..a62074ca0 100644 --- a/src/ebtree/src/ebtree.erl +++ b/src/ebtree/src/ebtree.erl @@ -133,12 +133,12 @@ max() -> lookup(Db, #tree{} = Tree, Key) -> Fun = fun ({visit, K, V}, Acc) -> - case {collate(Tree, K, Key, [eq]), collate(Tree, K, Key, [gt])} of - {true, _} -> + case collate(Tree, K, Key) of + eq -> {stop, {K, V}}; - {false, true} -> + gt -> {stop, Acc}; - {false, false} -> + lt -> {ok, Acc} end; ({traverse, F, L, _R}, Acc) -> |