diff options
author | Jan Lehnardt <jan@apache.org> | 2017-11-15 22:09:59 +0100 |
---|---|---|
committer | Jan Lehnardt <jan@apache.org> | 2019-01-19 14:15:50 +0100 |
commit | a8460c0243e4201288c7b2b68b75d98a21427fdc (patch) | |
tree | 9411944c20e208e55780b81986f7bece066448f6 | |
parent | 71f788327fa2e84d2ebf4c80c4c0e8204463ff3c (diff) | |
download | couchdb-a8460c0243e4201288c7b2b68b75d98a21427fdc.tar.gz |
by-access-id: handle descending=true
-rw-r--r-- | src/couch_mrview/src/couch_mrview.erl | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/couch_mrview/src/couch_mrview.erl b/src/couch_mrview/src/couch_mrview.erl index 0ce46950d..697ec786e 100644 --- a/src/couch_mrview/src/couch_mrview.erl +++ b/src/couch_mrview/src/couch_mrview.erl @@ -243,11 +243,12 @@ query_all_docs_access(Db, Args0, Callback, Acc) -> UserName = UserCtx#user_ctx.name, couch_log:info("~n~n UserName:~p~n~n", [UserName]), % TODO: add roles - Args = prefix_startkey_endkey(UserName, Args0), + Args = prefix_startkey_endkey(UserName, Args0, Args0#mrargs.direction), query_view(Db, DDoc, VName, Args, Callback, Acc). -prefix_startkey_endkey(UserName, #mrargs{start_key=StartKey, end_key=EndKey} = Args0) -> - Args0#mrargs { +prefix_startkey_endkey(UserName, Args, fwd) -> + #mrargs{start_key=StartKey, end_key=EndKey} = Args, + Args#mrargs { start_key = case StartKey of undefined -> [UserName]; StartKey -> [UserName, StartKey] @@ -256,6 +257,18 @@ prefix_startkey_endkey(UserName, #mrargs{start_key=StartKey, end_key=EndKey} = A undefined -> [UserName, {}]; EndKey -> [UserName, EndKey, {}] end + }; +prefix_startkey_endkey(UserName, Args, rev) -> + #mrargs{start_key=StartKey, end_key=EndKey} = Args, + Args#mrargs { + end_key = case StartKey of + undefined -> [UserName]; + StartKey -> [UserName, StartKey] + end, + start_key = case EndKey of + undefined -> [UserName, {}]; + EndKey -> [UserName, EndKey, {}] + end }. query_all_docs_admin(Db, Args0, Callback, Acc) -> |