diff options
author | Robert Newson <rnewson@apache.org> | 2020-08-04 21:40:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-04 21:40:59 +0100 |
commit | e0bcb2a5ebbe23f4c04c9c19dbdbde692bef8fde (patch) | |
tree | 42f5c76666cbd434b9e06f521364cb91d9d7150c | |
parent | 22d857d77b24adc989dc53b5554d95b926277401 (diff) | |
parent | 683335cb4f5b50fe0af0ea12317d501e995922f7 (diff) | |
download | couchdb-e0bcb2a5ebbe23f4c04c9c19dbdbde692bef8fde.tar.gz |
Merge pull request #3055 from apache/prototype/fdb-layer-ebtree-collate-validate
Validate the result from collate_fun
-rw-r--r-- | src/ebtree/src/ebtree.erl | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/ebtree/src/ebtree.erl b/src/ebtree/src/ebtree.erl index bae0ff310..c28693dbc 100644 --- a/src/ebtree/src/ebtree.erl +++ b/src/ebtree/src/ebtree.erl @@ -918,7 +918,12 @@ collate(#tree{} = _Tree, _A, ?MAX) -> collate(#tree{} = Tree, A, B) -> #tree{collate_fun = CollateFun} = Tree, - CollateFun(A, B). + case CollateFun(A, B) of + lt -> lt; + eq -> eq; + gt -> gt; + _ -> error(invalid_collation_result) + end. collate(#tree{} = Tree, A, B, Allowed) -> @@ -1090,6 +1095,11 @@ collation_fun_test_() -> ]. +collate_validation_test() -> + Tree = #tree{collate_fun = fun(_A, _B) -> foo end}, + ?assertError(invalid_collation_result, collate(Tree, 1, 2)). + + lookup_test() -> Db = erlfdb_util:get_test_db([empty]), Tree = open(Db, <<1,2,3>>, 4), |