summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Kocoloski <adam@cloudant.com>2010-12-23 00:07:41 -0500
committerAdam Kocoloski <adam@cloudant.com>2011-02-25 13:03:16 -0500
commitf3457b227060940591ffb13868d218a4f4903ee6 (patch)
tree525865025598d17c18b05ac0b9f037d8e5125075
parent9607ad9984b1099cf8b57861af5ca5f0419d14b7 (diff)
Handle empty result set correctly in _stats
BugzID: 11498
-rw-r--r--apps/couch/src/couch_query_servers.erl3
1 files changed, 3 insertions, 0 deletions
diff --git a/apps/couch/src/couch_query_servers.erl b/apps/couch/src/couch_query_servers.erl
index 4e86dcf4..58540660 100644
--- a/apps/couch/src/couch_query_servers.erl
+++ b/apps/couch/src/couch_query_servers.erl
@@ -143,6 +143,9 @@ builtin_sum_rows(KVs) ->
throw({invalid_value, <<"builtin _sum function requires map values to be numbers">>})
end, 0, KVs).
+builtin_stats(_, []) ->
+ {[{sum,0}, {count,0}, {min,0}, {max,0}, {sumsqr,0}]};
+
builtin_stats(reduce, [[_,First]|Rest]) when is_number(First) ->
Stats = lists:foldl(fun([_K,V], {S,C,Mi,Ma,Sq}) when is_number(V) ->
{S+V, C+1, erlang:min(Mi,V), erlang:max(Ma,V), Sq+(V*V)};