Apply partition_query_limit and query_limit to _find
diff --git a/src/mango/src/mango_cursor_special.erl b/src/mango/src/mango_cursor_special.erl
index f20edeb..6453e95 100644
--- a/src/mango/src/mango_cursor_special.erl
+++ b/src/mango/src/mango_cursor_special.erl
@@ -36,7 +36,8 @@
Composited = mango_cursor_view:composite_indexes(Indexes, FieldRanges),
{Index, IndexRanges} = mango_cursor_view:choose_best_index(Db, Composited),
- Limit = couch_util:get_value(limit, Opts, mango_opts:default_limit()),
+ MRLimit = mango_opts:mr_limit(couch_db:is_partitioned(Db)),
+ Limit = erlang:min(MRLimit, couch_util:get_value(limit, Opts, mango_opts:default_limit())),
Skip = couch_util:get_value(skip, Opts, 0),
Fields = couch_util:get_value(fields, Opts, all_fields),
Bookmark = couch_util:get_value(bookmark, Opts),
diff --git a/src/mango/src/mango_cursor_view.erl b/src/mango/src/mango_cursor_view.erl
index eb2271b..0142d36 100644
--- a/src/mango/src/mango_cursor_view.erl
+++ b/src/mango/src/mango_cursor_view.erl
@@ -40,7 +40,8 @@
Composited = composite_indexes(Indexes, FieldRanges),
{Index, IndexRanges} = choose_best_index(Db, Composited),
- Limit = couch_util:get_value(limit, Opts, mango_opts:default_limit()),
+ MRLimit = mango_opts:mr_limit(couch_db:is_partitioned(Db)),
+ Limit = erlang:min(MRLimit, couch_util:get_value(limit, Opts, mango_opts:default_limit())),
Skip = couch_util:get_value(skip, Opts, 0),
Fields = couch_util:get_value(fields, Opts, all_fields),
Bookmark = couch_util:get_value(bookmark, Opts),
diff --git a/src/mango/src/mango_opts.erl b/src/mango/src/mango_opts.erl
index 04fe5bb..82c844a 100644
--- a/src/mango/src/mango_opts.erl
+++ b/src/mango/src/mango_opts.erl
@@ -36,10 +36,12 @@
validate_bulk_delete/1,
validate_partitioned/1,
- default_limit/0
+ default_limit/0,
+ mr_limit/1
]).
-include("mango.hrl").
+-include_lib("couch_mrview/include/couch_mrview.hrl").
validate_idx_create({Props}) ->
Opts = [
@@ -356,3 +358,8 @@
default_limit() ->
config:get_integer("mango", "default_limit", 25).
+
+mr_limit(true) ->
+ config:get_integer("query_server_config", "partition_query_limit", ?MAX_VIEW_LIMIT);
+mr_limit(false) ->
+ config:get_integer("query_server_config", "query_limit", ?MAX_VIEW_LIMIT).