diff options
author | Robert Newson <rnewson@apache.org> | 2021-12-20 17:07:37 +0000 |
---|---|---|
committer | Robert Newson <rnewson@apache.org> | 2021-12-23 15:00:38 +0000 |
commit | 0de7b755ab0d722feb0ae8e498509243937e1782 (patch) | |
tree | 4181a2e21783faaafa314a609e729946e2b8cb71 | |
parent | 349ae89b5484bb1f2e8ed4773905b1ad3122d812 (diff) | |
download | couchdb-0de7b755ab0d722feb0ae8e498509243937e1782.tar.gz |
Apply partition_query_limit and query_limit to _find
-rw-r--r-- | src/mango/src/mango_cursor_special.erl | 3 | ||||
-rw-r--r-- | src/mango/src/mango_cursor_view.erl | 3 | ||||
-rw-r--r-- | src/mango/src/mango_opts.erl | 9 |
3 files changed, 12 insertions, 3 deletions
diff --git a/src/mango/src/mango_cursor_special.erl b/src/mango/src/mango_cursor_special.erl index f20edebd1..6453e9539 100644 --- a/src/mango/src/mango_cursor_special.erl +++ b/src/mango/src/mango_cursor_special.erl @@ -36,7 +36,8 @@ create(Db, Indexes, Selector, Opts) -> 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 eb2271b01..0142d36c1 100644 --- a/src/mango/src/mango_cursor_view.erl +++ b/src/mango/src/mango_cursor_view.erl @@ -40,7 +40,8 @@ create(Db, Indexes, Selector, Opts) -> 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 04fe5bbf8..82c844a99 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 @@ validate_opt(Name, [{validator, Fun} | Rest], Value) -> 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). |