summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Vatamaniuc <vatamane@apache.org>2020-04-06 17:46:45 -0400
committerNick Vatamaniuc <nickva@users.noreply.github.com>2020-04-07 12:18:29 -0400
commit1be2363b4dae31ab67d6bafd3f5a2620f5d784eb (patch)
treedf404c4a96cc69b2cbe679a2b4be6873ff10ee2b
parent2ba98a89cda88ccc9be2b4e4fb481086d1364e42 (diff)
downloadcouchdb-1be2363b4dae31ab67d6bafd3f5a2620f5d784eb.tar.gz
Fix POST _all_docs/queries endpoint
Call couch_views module instead of the old fabric:query_view also needed to call `view_cb(complete, ...)` when using keys similar to how `all_docs_view/4` does it.
-rw-r--r--src/chttpd/src/chttpd_db.erl4
-rw-r--r--src/chttpd/src/chttpd_view.erl5
2 files changed, 5 insertions, 4 deletions
diff --git a/src/chttpd/src/chttpd_db.erl b/src/chttpd/src/chttpd_db.erl
index deaca4855..16cfbd0df 100644
--- a/src/chttpd/src/chttpd_db.erl
+++ b/src/chttpd/src/chttpd_db.erl
@@ -831,7 +831,9 @@ multi_all_docs_view(Req, Db, OP, Queries) ->
(#mrargs{keys = undefined} = Args, Acc0) ->
send_all_docs(Db, Args, Acc0);
(#mrargs{keys = Keys} = Args, Acc0) when is_list(Keys) ->
- send_all_docs_keys(Db, Args, Acc0)
+ Acc1 = send_all_docs_keys(Db, Args, Acc0),
+ {ok, Acc2} = view_cb(complete, Acc1),
+ Acc2
end, VAcc0, ArgQueries),
{ok, Resp1} = chttpd:send_delayed_chunk(VAcc1#vacc.resp, "\r\n]}"),
chttpd:end_delayed_json_response(Resp1).
diff --git a/src/chttpd/src/chttpd_view.erl b/src/chttpd/src/chttpd_view.erl
index 84997e5a5..3ef9c2408 100644
--- a/src/chttpd/src/chttpd_view.erl
+++ b/src/chttpd/src/chttpd_view.erl
@@ -26,14 +26,13 @@ multi_query_view(Req, Db, DDoc, ViewName, Queries) ->
QueryArg1 = couch_mrview_util:set_view_type(QueryArg, ViewName, Views),
fabric_util:validate_args(Db, DDoc, QueryArg1)
end, Queries),
- Options = [{user_ctx, Req#httpd.user_ctx}],
VAcc0 = #vacc{db=Db, req=Req, prepend="\r\n"},
FirstChunk = "{\"results\":[",
{ok, Resp0} = chttpd:start_delayed_json_response(VAcc0#vacc.req, 200, [], FirstChunk),
VAcc1 = VAcc0#vacc{resp=Resp0},
VAcc2 = lists:foldl(fun(Args, Acc0) ->
- {ok, Acc1} = fabric:query_view(Db, Options, DDoc, ViewName,
- fun view_cb/2, Acc0, Args),
+ Fun = fun view_cb/2,
+ {ok, Acc1} = couch_views:query(Db, DDoc, ViewName, Fun, Acc0, Args),
Acc1
end, VAcc1, ArgQueries),
{ok, Resp1} = chttpd:send_delayed_chunk(VAcc2#vacc.resp, "\r\n]}"),