summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Vatamaniuc <vatamane@apache.org>2019-08-29 16:22:49 -0400
committerNick Vatamaniuc <vatamane@apache.org>2019-08-29 16:22:49 -0400
commit923448c6f5ee27c7ac5cab0d48ecdd2782885d36 (patch)
tree4ac08faa2613a79d01bf858f4a0d7f22e74cba94
parent5aed0fddfbc9b197757e573a28dfc7ebada3aafd (diff)
downloadcouchdb-prototype/fdb-layer-fix-docid-keys-for-all-docs.tar.gz
Handle startkey_docid and endkey_docid for _all_docsprototype/fdb-layer-fix-docid-keys-for-all-docs
-rw-r--r--src/chttpd/src/chttpd_db.erl30
1 files changed, 21 insertions, 9 deletions
diff --git a/src/chttpd/src/chttpd_db.erl b/src/chttpd/src/chttpd_db.erl
index dbb92fa84..769aa1f7b 100644
--- a/src/chttpd/src/chttpd_db.erl
+++ b/src/chttpd/src/chttpd_db.erl
@@ -838,15 +838,7 @@ all_docs_view(Req, Db, Keys, OP) ->
},
case Args1#mrargs.keys of
undefined ->
- Options = [
- {user_ctx, Req#httpd.user_ctx},
- {dir, Args1#mrargs.direction},
- {start_key, Args1#mrargs.start_key},
- {end_key, Args1#mrargs.end_key},
- {limit, Args1#mrargs.limit},
- {skip, Args1#mrargs.skip},
- {update_seq, Args1#mrargs.update_seq}
- ],
+ Options = all_docs_view_opts(Args1, Req),
Acc = {iter, Db, Args1, VAcc0},
{ok, {iter, _, _, Resp}} =
fabric2_db:fold_docs(Db, fun view_cb/2, Acc, Options),
@@ -919,6 +911,26 @@ all_docs_view(Req, Db, Keys, OP) ->
end.
+all_docs_view_opts(Args, Req) ->
+ StartKey = case Args#mrargs.start_key of
+ undefined -> Args#mrargs.start_key_docid;
+ SKey -> SKey
+ end,
+ EndKey = case Args#mrargs.end_key of
+ undefined -> Args#mrargs.end_key_docid;
+ EKey -> EKey
+ end,
+ [
+ {user_ctx, Req#httpd.user_ctx},
+ {dir, Args#mrargs.direction},
+ {start_key, StartKey},
+ {end_key, EndKey},
+ {limit, Args#mrargs.limit},
+ {skip, Args#mrargs.skip},
+ {update_seq, Args#mrargs.update_seq}
+ ].
+
+
apply_args_to_keylist(Args, Keys0) ->
Keys1 = case Args#mrargs.direction of
fwd -> Keys0;