summaryrefslogtreecommitdiff
path: root/src/chttpd/src/chttpd_view.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/chttpd/src/chttpd_view.erl')
-rw-r--r--src/chttpd/src/chttpd_view.erl17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/chttpd/src/chttpd_view.erl b/src/chttpd/src/chttpd_view.erl
index 1fce165f9..26107d7c5 100644
--- a/src/chttpd/src/chttpd_view.erl
+++ b/src/chttpd/src/chttpd_view.erl
@@ -33,7 +33,7 @@ multi_query_view(Req, Db, DDoc, ViewName, Queries) ->
VAcc1 = VAcc0#vacc{resp=Resp0},
VAcc2 = lists:foldl(fun(Args, Acc0) ->
{ok, Acc1} = fabric:query_view(Db, Options, DDoc, ViewName,
- fun couch_mrview_http:view_cb/2, Acc0, Args),
+ fun view_cb/2, Acc0, Args),
Acc1
end, VAcc1, ArgQueries),
{ok, Resp1} = chttpd:send_delayed_chunk(VAcc2#vacc.resp, "\r\n]}"),
@@ -46,9 +46,22 @@ design_doc_view(Req, Db, DDoc, ViewName, Keys) ->
VAcc = #vacc{db=Db, req=Req, threshold=Max},
Options = [{user_ctx, Req#httpd.user_ctx}],
{ok, Resp} = fabric:query_view(Db, Options, DDoc, ViewName,
- fun couch_mrview_http:view_cb/2, VAcc, Args),
+ fun view_cb/2, VAcc, Args),
{ok, Resp#vacc.resp}.
+
+view_cb({row, Row} = Msg, Acc) ->
+ case lists:keymember(doc, 1, Row) of
+ true -> chttpd_stats:incr_reads();
+ false -> ok
+ end,
+ chttpd_stats:incr_rows(),
+ couch_mrview_http:view_cb(Msg, Acc);
+
+view_cb(Msg, Acc) ->
+ couch_mrview_http:view_cb(Msg, Acc).
+
+
handle_view_req(#httpd{method='POST',
path_parts=[_, _, _, _, ViewName, <<"queries">>]}=Req, Db, DDoc) ->
chttpd:validate_ctype(Req, "application/json"),