You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ga...@apache.org on 2020/04/02 12:39:30 UTC

[couchdb] 02/18: move all_doc view options to fabric2_util

This is an automated email from the ASF dual-hosted git repository.

garren pushed a commit to branch fdb-mango-indexes
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit 3179147448de78ad1a130ba9f6ef4c24044cad95
Author: Garren Smith <ga...@gmail.com>
AuthorDate: Wed Mar 18 09:40:24 2020 +0200

    move all_doc view options to fabric2_util
---
 src/chttpd/src/chttpd_db.erl    | 30 +-----------------------------
 src/fabric/src/fabric2_util.erl | 38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 39 insertions(+), 29 deletions(-)

diff --git a/src/chttpd/src/chttpd_db.erl b/src/chttpd/src/chttpd_db.erl
index 174d464..e9b33f0 100644
--- a/src/chttpd/src/chttpd_db.erl
+++ b/src/chttpd/src/chttpd_db.erl
@@ -867,7 +867,7 @@ all_docs_view(Req, Db, Keys, OP) ->
 
 
 send_all_docs(Db, #mrargs{keys = undefined} = Args, VAcc0) ->
-    Opts0 = all_docs_view_opts(Args),
+    Opts0 = fabric2_util:all_docs_view_opts(Args),
     Opts = Opts0 ++ [{restart_tx, true}],
     NS = couch_util:get_value(namespace, Opts),
     FoldFun = case NS of
@@ -939,34 +939,6 @@ send_all_docs_keys(Db, #mrargs{} = Args, VAcc0) ->
     end, VAcc1, Keys).
 
 
-all_docs_view_opts(Args) ->
-    NS = couch_util:get_value(namespace, Args#mrargs.extra),
-    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,
-    StartKeyOpts = case StartKey of
-        undefined -> [];
-        _ -> [{start_key, fabric2_util:encode_all_doc_key(StartKey)}]
-    end,
-    EndKeyOpts = case {EndKey, Args#mrargs.inclusive_end} of
-        {undefined, _} -> [];
-        {_, false} -> [{end_key_gt, fabric2_util:encode_all_doc_key(EndKey)}];
-        {_, true} -> [{end_key, fabric2_util:encode_all_doc_key(EndKey)}]
-    end,
-    [
-        {dir, Args#mrargs.direction},
-        {limit, Args#mrargs.limit},
-        {skip, Args#mrargs.skip},
-        {update_seq, Args#mrargs.update_seq},
-        {namespace, NS}
-    ] ++ StartKeyOpts ++ EndKeyOpts.
-
-
 apply_args_to_keylist(Args, Keys0) ->
     Keys1 = case Args#mrargs.direction of
         fwd -> Keys0;
diff --git a/src/fabric/src/fabric2_util.erl b/src/fabric/src/fabric2_util.erl
index d74ef27..97bfedc 100644
--- a/src/fabric/src/fabric2_util.erl
+++ b/src/fabric/src/fabric2_util.erl
@@ -38,6 +38,7 @@
     uuid/0,
 
     encode_all_doc_key/1,
+    all_docs_view_opts/1,
 
     pmap/2,
     pmap/3
@@ -45,6 +46,7 @@
 
 
 -include_lib("couch/include/couch_db.hrl").
+-include_lib("couch_mrview/include/couch_mrview.hrl").
 
 
 revinfo_to_revs(RevInfo) ->
@@ -299,6 +301,42 @@ encode_all_doc_key(Term) when Term < <<>> -> <<>>;
 encode_all_doc_key(_) -> <<255>>.
 
 
+all_docs_view_opts(#mrargs{} = Args) ->
+    NS = couch_util:get_value(namespace, Args#mrargs.extra),
+    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,
+    StartKeyOpts = case StartKey of
+        undefined -> [];
+        _ -> [{start_key, encode_all_doc_key(StartKey)}]
+    end,
+    EndKeyOpts = case {EndKey, Args#mrargs.inclusive_end} of
+        {undefined, _} -> [];
+        {_, false} -> [{end_key_gt, encode_all_doc_key(EndKey)}];
+        {_, true} -> [{end_key, encode_all_doc_key(EndKey)}]
+    end,
+
+    DocOpts = case Args#mrargs.conflicts of
+        true -> [conflicts | Args#mrargs.doc_options];
+        _ -> Args#mrargs.doc_options
+    end,
+
+    [
+        {dir, Args#mrargs.direction},
+        {limit, Args#mrargs.limit},
+        {skip, Args#mrargs.skip},
+        {update_seq, Args#mrargs.update_seq},
+        {namespace, NS},
+        {include_docs, Args#mrargs.include_docs},
+        {doc_opts, DocOpts}
+    ] ++ StartKeyOpts ++ EndKeyOpts.
+
+
 pmap(Fun, Args) ->
     pmap(Fun, Args, []).