summaryrefslogtreecommitdiff
path: root/src/mango/src/mango_cursor_text.erl
diff options
context:
space:
mode:
authorNick Vatamaniuc <vatamane@gmail.com>2021-11-20 01:00:08 -0500
committerNick Vatamaniuc <nickva@users.noreply.github.com>2021-11-22 17:31:31 -0500
commitb78ccf18cb4ed6e183ed0bf4e5cbe40d7a7dc493 (patch)
tree82158f0b6c7e97e6955bf0c558aac6eb0329b410 /src/mango/src/mango_cursor_text.erl
parent6e87e43fae23647b281ede250ad9f1a68a8f1cde (diff)
downloadcouchdb-b78ccf18cb4ed6e183ed0bf4e5cbe40d7a7dc493.tar.gz
Apply erlfmt formatting to source tree
These exceptions from main were ported over to 3.x ``` --- a/src/chttpd/src/chttpd.erl +++ b/src/chttpd/src/chttpd.erl @@ -491,6 +491,7 @@ extract_cookie(#httpd{mochi_req = MochiReq}) -> end. %%% end hack +%% erlfmt-ignore set_auth_handlers() -> AuthenticationDefault = "{chttpd_auth, cookie_authentication_handler}, ``` ``` --- a/src/couch/src/couch_debug.erl +++ b/src/couch/src/couch_debug.erl @@ -49,6 +49,7 @@ help() -> ]. -spec help(Function :: atom()) -> ok. +%% erlfmt-ignore help(opened_files) -> ```
Diffstat (limited to 'src/mango/src/mango_cursor_text.erl')
-rw-r--r--src/mango/src/mango_cursor_text.erl122
1 files changed, 57 insertions, 65 deletions
diff --git a/src/mango/src/mango_cursor_text.erl b/src/mango/src/mango_cursor_text.erl
index 43ef84e4c..53bf63edb 100644
--- a/src/mango/src/mango_cursor_text.erl
+++ b/src/mango/src/mango_cursor_text.erl
@@ -20,13 +20,11 @@
execute/3
]).
-
-include_lib("couch/include/couch_db.hrl").
-include_lib("dreyfus/include/dreyfus.hrl").
-include("mango_cursor.hrl").
-include("mango.hrl").
-
-record(cacc, {
selector,
dbname,
@@ -42,14 +40,14 @@
execution_stats
}).
-
create(Db, Indexes, Selector, Opts0) ->
- Index = case Indexes of
- [Index0] ->
- Index0;
- _ ->
- ?MANGO_ERROR(multiple_text_indexes)
- end,
+ Index =
+ case Indexes of
+ [Index0] ->
+ Index0;
+ _ ->
+ ?MANGO_ERROR(multiple_text_indexes)
+ end,
Opts = unpack_bookmark(couch_db:name(Db), Opts0),
@@ -69,7 +67,6 @@ create(Db, Indexes, Selector, Opts0) ->
fields = Fields
}}.
-
explain(Cursor) ->
#cursor{
selector = Selector,
@@ -81,7 +78,6 @@ explain(Cursor) ->
{sort, sort_query(Opts, Selector)}
].
-
execute(Cursor, UserFun, UserAcc) ->
#cursor{
db = Db,
@@ -131,12 +127,13 @@ execute(Cursor, UserFun, UserAcc) ->
JsonBM = dreyfus_bookmark:pack(FinalBM),
Arg = {add_key, bookmark, JsonBM},
{_Go, FinalUserAcc} = UserFun(Arg, LastUserAcc),
- FinalUserAcc0 = mango_execution_stats:maybe_add_stats(Opts, UserFun, Stats0, FinalUserAcc),
+ FinalUserAcc0 = mango_execution_stats:maybe_add_stats(
+ Opts, UserFun, Stats0, FinalUserAcc
+ ),
FinalUserAcc1 = mango_cursor:maybe_add_warning(UserFun, Cursor, Stats0, FinalUserAcc0),
{ok, FinalUserAcc1}
end.
-
execute(CAcc) ->
case search_docs(CAcc) of
{ok, Bookmark, []} ->
@@ -152,7 +149,6 @@ execute(CAcc) ->
execute(FinalCAcc)
end.
-
search_docs(CAcc) ->
#cacc{
dbname = DbName,
@@ -167,19 +163,15 @@ search_docs(CAcc) ->
?MANGO_ERROR({text_search_error, {error, Reason}})
end.
-
handle_hits(CAcc, []) ->
{ok, CAcc};
-
handle_hits(CAcc0, [{Sort, Doc} | Rest]) ->
CAcc1 = handle_hit(CAcc0, Sort, Doc),
handle_hits(CAcc1, Rest).
-
handle_hit(CAcc0, Sort, not_found) ->
CAcc1 = update_bookmark(CAcc0, Sort),
CAcc1;
-
handle_hit(CAcc0, Sort, Doc) ->
#cacc{
limit = Limit,
@@ -208,7 +200,6 @@ handle_hit(CAcc0, Sort, Doc) ->
CAcc2
end.
-
apply_user_fun(CAcc, Doc) ->
FinalDoc = mango_fields:extract(Doc, CAcc#cacc.fields),
#cacc{
@@ -224,39 +215,40 @@ apply_user_fun(CAcc, Doc) ->
throw({stop, CAcc#cacc{user_acc = NewUserAcc, execution_stats = Stats0}})
end.
-
%% Convert Query to Dreyfus sort specifications
%% Covert <<"Field">>, <<"desc">> to <<"-Field">>
%% and append to the dreyfus query
sort_query(Opts, Selector) ->
{sort, {Sort}} = lists:keyfind(sort, 1, Opts),
- SortList = lists:map(fun(SortField) ->
- {Dir, RawSortField} = case SortField of
- {Field, <<"asc">>} -> {asc, Field};
- {Field, <<"desc">>} -> {desc, Field};
- Field when is_binary(Field) -> {asc, Field}
+ SortList = lists:map(
+ fun(SortField) ->
+ {Dir, RawSortField} =
+ case SortField of
+ {Field, <<"asc">>} -> {asc, Field};
+ {Field, <<"desc">>} -> {desc, Field};
+ Field when is_binary(Field) -> {asc, Field}
+ end,
+ SField = mango_selector_text:append_sort_type(RawSortField, Selector),
+ case Dir of
+ asc ->
+ SField;
+ desc ->
+ <<"-", SField/binary>>
+ end
end,
- SField = mango_selector_text:append_sort_type(RawSortField, Selector),
- case Dir of
- asc ->
- SField;
- desc ->
- <<"-", SField/binary>>
- end
- end, Sort),
+ Sort
+ ),
case SortList of
[] -> relevance;
_ -> SortList
end.
-
get_partition(Opts, Default) ->
case couch_util:get_value(partition, Opts) of
<<>> -> Default;
Else -> Else
end.
-
get_bookmark(Opts) ->
case lists:keyfind(bookmark, 1, Opts) of
{_, BM} when is_list(BM), BM /= [] ->
@@ -265,7 +257,6 @@ get_bookmark(Opts) ->
nil
end.
-
update_bookmark(CAcc, Sortable) ->
BM = CAcc#cacc.bookmark,
QueryArgs = CAcc#cacc.query_args,
@@ -273,28 +264,27 @@ update_bookmark(CAcc, Sortable) ->
NewBM = dreyfus_bookmark:update(Sort, BM, [Sortable]),
CAcc#cacc{bookmark = NewBM}.
-
pack_bookmark(Bookmark) ->
case dreyfus_bookmark:pack(Bookmark) of
null -> nil;
Enc -> Enc
end.
-
unpack_bookmark(DbName, Opts) ->
- NewBM = case lists:keyfind(bookmark, 1, Opts) of
- {_, nil} ->
- [];
- {_, Bin} ->
- try
- dreyfus_bookmark:unpack(DbName, Bin)
- catch _:_ ->
- ?MANGO_ERROR({invalid_bookmark, Bin})
- end
- end,
+ NewBM =
+ case lists:keyfind(bookmark, 1, Opts) of
+ {_, nil} ->
+ [];
+ {_, Bin} ->
+ try
+ dreyfus_bookmark:unpack(DbName, Bin)
+ catch
+ _:_ ->
+ ?MANGO_ERROR({invalid_bookmark, Bin})
+ end
+ end,
lists:keystore(bookmark, 1, Opts, {bookmark, NewBM}).
-
ddocid(Idx) ->
case mango_idx:ddoc(Idx) of
<<"_design/", Rest/binary>> ->
@@ -303,7 +293,6 @@ ddocid(Idx) ->
Else
end.
-
update_query_args(CAcc) ->
#cacc{
bookmark = Bookmark,
@@ -314,29 +303,32 @@ update_query_args(CAcc) ->
limit = get_limit(CAcc)
}.
-
get_limit(CAcc) ->
erlang:min(get_dreyfus_limit(), CAcc#cacc.limit + CAcc#cacc.skip).
-
get_dreyfus_limit() ->
config:get_integer("dreyfus", "max_limit", 200).
-
get_json_docs(DbName, Hits) ->
- Ids = lists:map(fun(#sortable{item = Item}) ->
- couch_util:get_value(<<"_id">>, Item#hit.fields)
- end, Hits),
+ Ids = lists:map(
+ fun(#sortable{item = Item}) ->
+ couch_util:get_value(<<"_id">>, Item#hit.fields)
+ end,
+ Hits
+ ),
% TODO: respect R query parameter (same as json indexes)
{ok, IdDocs} = dreyfus_fabric:get_json_docs(DbName, Ids),
- lists:map(fun(#sortable{item = Item} = Sort) ->
- Id = couch_util:get_value(<<"_id">>, Item#hit.fields),
- case lists:keyfind(Id, 1, IdDocs) of
- {Id, {doc, Doc}} ->
- {Sort, Doc};
- false ->
- {Sort, not_found}
- end
- end, Hits).
+ lists:map(
+ fun(#sortable{item = Item} = Sort) ->
+ Id = couch_util:get_value(<<"_id">>, Item#hit.fields),
+ case lists:keyfind(Id, 1, IdDocs) of
+ {Id, {doc, Doc}} ->
+ {Sort, Doc};
+ false ->
+ {Sort, not_found}
+ end
+ end,
+ Hits
+ ).
-endif.