You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by rn...@apache.org on 2021/12/20 17:08:15 UTC

[couchdb] 01/02: rename ignore_partition_query_limit to is_mango_query for clarity

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

rnewson pushed a commit to branch enforce_rowlimit_mango
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit 57050578d3ff2bc8b08e1f4451183c46f182605c
Author: Robert Newson <rn...@apache.org>
AuthorDate: Mon Dec 20 16:05:15 2021 +0000

    rename ignore_partition_query_limit to is_mango_query for clarity
---
 src/couch_mrview/src/couch_mrview_util.erl | 38 ++++++++++++++++--------------
 src/mango/src/mango_cursor_view.erl        |  2 +-
 2 files changed, 21 insertions(+), 19 deletions(-)

diff --git a/src/couch_mrview/src/couch_mrview_util.erl b/src/couch_mrview/src/couch_mrview_util.erl
index b7220f7..41594ff 100644
--- a/src/couch_mrview/src/couch_mrview_util.erl
+++ b/src/couch_mrview/src/couch_mrview_util.erl
@@ -439,28 +439,30 @@ validate_args(#mrst{} = State, Args0) ->
             mrverror(Msg2)
     end.
 
-apply_limit(ViewPartitioned, Args) ->
-    Options = Args#mrargs.extra,
-    IgnorePQLimit = lists:keyfind(ignore_partition_query_limit, 1, Options),
-    LimitType =
-        case {ViewPartitioned, IgnorePQLimit} of
-            {true, false} -> "partition_query_limit";
-            {true, _} -> "query_limit";
-            {false, _} -> "query_limit"
-        end,
+apply_limit(ViewPartitioned, #mrargs{} = Args) ->
+    LimitType = case ViewPartitioned of
+        true -> "partition_query_limit";
+        false -> "query_limit"
+    end,
 
-    MaxLimit = config:get_integer(
-        "query_server_config",
-        LimitType,
-        ?MAX_VIEW_LIMIT
-    ),
+    IsMangoQuery = lists:keyfind(is_mango_query, 1, Args#mrargs.extra),
+    MaxLimit = case IsMangoQuery of
+        {is_mango_query, true} ->
+            ?MAX_VIEW_LIMIT;
+        false ->
+            config:get_integer(
+                "query_server_config",
+                LimitType,
+                ?MAX_VIEW_LIMIT)
+    end,
 
     % Set the highest limit possible if a user has not
-    % specified a limit
+    % specified a limit or if this is a mango query
     Args1 =
-        case Args#mrargs.limit == ?MAX_VIEW_LIMIT of
-            true -> Args#mrargs{limit = MaxLimit};
-            false -> Args
+        case {Args#mrargs.limit == ?MAX_VIEW_LIMIT, IsMangoQuery} of
+            {_, {is_mango_query, true}} -> Args#mrargs{limit = ?MAX_VIEW_LIMIT};
+            {true, false} -> Args#mrargs{limit = MaxLimit};
+            {false, false} -> Args
         end,
 
     if
diff --git a/src/mango/src/mango_cursor_view.erl b/src/mango/src/mango_cursor_view.erl
index 5656ffc..eb2271b 100644
--- a/src/mango/src/mango_cursor_view.erl
+++ b/src/mango/src/mango_cursor_view.erl
@@ -120,7 +120,7 @@ base_args(#cursor{index = Idx, selector = Selector} = Cursor) ->
         extra = [
             {callback, {?MODULE, view_cb}},
             {selector, Selector},
-            {ignore_partition_query_limit, true}
+            {is_mango_query, true}
         ]
     }.