From 4b691efb97cbbe3b0150c59c25d97882260a4984 Mon Sep 17 00:00:00 2001 From: John Christopher Anderson Date: Fri, 13 Feb 2009 20:52:28 +0000 Subject: apply COUCHDB-252. Allow _list functions to signal that iteration of the view should cease. Thanks davisp. git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@744240 13f79535-47bb-0310-9956-ffa450edef68 --- src/couchdb/couch_httpd_view.erl | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/couchdb/couch_httpd_view.erl') diff --git a/src/couchdb/couch_httpd_view.erl b/src/couchdb/couch_httpd_view.erl index 7696bb0d..2674754e 100644 --- a/src/couchdb/couch_httpd_view.erl +++ b/src/couchdb/couch_httpd_view.erl @@ -416,13 +416,17 @@ make_view_fold_fun(Req, QueryArgs, Db, Offset = ReduceCountFun(OffsetReds), {ok, Resp2, BeginBody} = StartRespFun(Req, 200, TotalViewCount, Offset), - SendRowFun(Resp2, Db, - {{Key, DocId}, Value}, BeginBody, IncludeDocs), - {ok, {AccLimit - 1, 0, Resp2, AccRevRows}}; + case SendRowFun(Resp2, Db, + {{Key, DocId}, Value}, BeginBody, IncludeDocs) of + stop -> {stop, {AccLimit - 1, 0, Resp2, AccRevRows}}; + _ -> {ok, {AccLimit - 1, 0, Resp2, AccRevRows}} + end; {_, AccLimit, _, Resp} when (AccLimit > 0) -> - SendRowFun(Resp, Db, - {{Key, DocId}, Value}, nil, IncludeDocs), - {ok, {AccLimit - 1, 0, Resp, AccRevRows}} + case SendRowFun(Resp, Db, + {{Key, DocId}, Value}, nil, IncludeDocs) of + stop -> {stop, {AccLimit - 1, 0, Resp, AccRevRows}}; + _ -> {ok, {AccLimit - 1, 0, Resp, AccRevRows}} + end end end. -- cgit v1.2.3