summaryrefslogtreecommitdiff
path: root/src/couchdb/couch_httpd_db.erl
diff options
context:
space:
mode:
authorJohn Christopher Anderson <jchris@apache.org>2009-01-09 19:03:22 +0000
committerJohn Christopher Anderson <jchris@apache.org>2009-01-09 19:03:22 +0000
commitfbabdb19583198cf77add0b9cff354d70c45ff5a (patch)
treeba576fc81dab8e98a550d25af621b045d3a989ef /src/couchdb/couch_httpd_db.erl
parente19b5124101f2ff5aa755df99b0fcbd0923aa01f (diff)
fixed _all_docs view to use the correct PassedEndFun for binary docid sorting
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@733116 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/couchdb/couch_httpd_db.erl')
-rw-r--r--src/couchdb/couch_httpd_db.erl16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/couchdb/couch_httpd_db.erl b/src/couchdb/couch_httpd_db.erl
index df8eba80..5366da1e 100644
--- a/src/couchdb/couch_httpd_db.erl
+++ b/src/couchdb/couch_httpd_db.erl
@@ -268,6 +268,8 @@ all_docs_view(Req, Db, Keys) ->
#view_query_args{
start_key = StartKey,
start_docid = StartDocId,
+ end_key = EndKey,
+ end_docid = EndDocId,
limit = Limit,
skip = SkipCount,
direction = Dir
@@ -279,10 +281,22 @@ all_docs_view(Req, Db, Keys) ->
end,
FoldAccInit = {Limit, SkipCount, undefined, []},
+ PassedEndFun =
+ case Dir of
+ fwd ->
+ fun(ViewKey, _ViewId) ->
+ couch_db_updater:less_docid(EndKey, ViewKey)
+ end;
+ rev->
+ fun(ViewKey, _ViewId) ->
+ couch_db_updater:less_docid(ViewKey, EndKey)
+ end
+ end,
+
case Keys of
nil ->
FoldlFun = couch_httpd_view:make_view_fold_fun(Req, QueryArgs, Db,
- TotalRowCount, fun couch_db:enum_docs_reduce_to_count/1),
+ TotalRowCount, fun couch_db:enum_docs_reduce_to_count/1, PassedEndFun),
AdapterFun = fun(#full_doc_info{id=Id}=FullDocInfo, Offset, Acc) ->
case couch_doc:to_doc_info(FullDocInfo) of
#doc_info{deleted=false, rev=Rev} ->