diff options
author | Tony Sun <tony.sun@cloudant.com> | 2017-06-21 08:55:56 -0700 |
---|---|---|
committer | Tony Sun <tony.sun@cloudant.com> | 2017-06-21 08:55:56 -0700 |
commit | 90db262d00ee9066f94ac842fe6a043adbb1eeaf (patch) | |
tree | 757d4dbe697274a31daaf76611b993dff07a0af0 | |
parent | f1a1d7f1c855d1196317c837e775d4b05d3ba9d0 (diff) | |
parent | 4e5e84ecc20808df056163f6a147c154cdf75ee3 (diff) | |
download | couchdb-90db262d00ee9066f94ac842fe6a043adbb1eeaf.tar.gz |
Merge branch '3358-use-efficient-set'
COUCHDB-3358
-rw-r--r-- | src/mango/src/mango_native_proc.erl | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/mango/src/mango_native_proc.erl b/src/mango/src/mango_native_proc.erl index 6d0fb2400..ba17c4867 100644 --- a/src/mango/src/mango_native_proc.erl +++ b/src/mango/src/mango_native_proc.erl @@ -175,7 +175,7 @@ get_text_entries0(IdxProps, Doc) -> Fields = if not DefaultEnabled -> Fields0; true -> add_default_text_field(Fields0) end, - FieldNames = get_field_names(Fields, []), + FieldNames = get_field_names(Fields), Converted = convert_text_fields(Fields), FieldNames ++ Converted. @@ -257,15 +257,11 @@ add_default_text_field([_ | Rest], Acc) -> %% index of all field names -get_field_names([], FAcc) -> - FAcc; -get_field_names([{Name, _Type, _Value} | Rest], FAcc) -> - case lists:member([<<"$fieldnames">>, Name, []], FAcc) of - true -> - get_field_names(Rest, FAcc); - false -> - get_field_names(Rest, [[<<"$fieldnames">>, Name, []] | FAcc]) - end. +get_field_names(Fields) -> + FieldNameSet = lists:foldl(fun({Name, _, _}, Set) -> + gb_sets:add([<<"$fieldnames">>, Name, []], Set) + end, gb_sets:new(), Fields), + gb_sets:to_list(FieldNameSet). convert_text_fields([]) -> |