You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by da...@apache.org on 2020/08/05 20:08:55 UTC

[couchdb] 02/03: Handle empty reduce batches

This is an automated email from the ASF dual-hosted git repository.

davisp pushed a commit to branch prototype/fdb-layer
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit a32bc83084e8b927931fe23fb234f5c9fa3f8dbd
Author: Paul J. Davis <pa...@gmail.com>
AuthorDate: Wed Aug 5 13:19:52 2020 -0500

    Handle empty reduce batches
---
 src/ebtree/src/ebtree.erl | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/ebtree/src/ebtree.erl b/src/ebtree/src/ebtree.erl
index 566cf2a..cd08e75 100644
--- a/src/ebtree/src/ebtree.erl
+++ b/src/ebtree/src/ebtree.erl
@@ -283,6 +283,9 @@ reduce(Db, #tree{} = Tree, StartKey, EndKey, Options) ->
     do_reduce(Tree, MapValues, ReduceValues).
 
 
+do_reduce(#tree{} = Tree, [], []) ->
+    reduce_values(Tree, [], false);
+
 do_reduce(#tree{} = Tree, [], ReduceValues) when is_list(ReduceValues) ->
     reduce_values(Tree, ReduceValues, true);
 
@@ -1131,6 +1134,12 @@ range_after_delete_test() ->
     ?assertEqual(50, reverse_range(Db, Tree, 1, 100, fun(E, A) -> length(E) + A end, 0)).
 
 
+full_reduce_empty_test() ->
+    Db = erlfdb_util:get_test_db([empty]),
+    Tree = open(Db, <<1,2,3>>, 4, [{reduce_fun, fun reduce_sum/2}]),
+    ?assertEqual(0, full_reduce(Db, Tree)).
+
+
 full_reduce_test_() ->
     Db = erlfdb_util:get_test_db([empty]),
     Tree = open(Db, <<1,2,3>>, 4, [{reduce_fun, fun reduce_sum/2}]),