diff options
author | Will Holley <willholley@gmail.com> | 2017-11-03 14:08:50 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-03 14:08:50 +0000 |
commit | 436b402721b26575e989f04db61c9edbcfb168f5 (patch) | |
tree | 7cd676e28cea9db2f905a7468e38c52530665cf2 | |
parent | 01658a0cc889cffce0ca73b1d06525d708398af8 (diff) | |
download | couchdb-436b402721b26575e989f04db61c9edbcfb168f5.tar.gz |
Fix user-specified ddoc name in Mango (#961)
When creating a Mango index, we allow the user to specify
a design document name. This can be of the form "_design/foo"
or just "foo", with the expectation that Mango would
automatically add the "_design" prefix.
This fixes a bug whereby if the user specified "_design/foo",
Mango was prefixing this again, creating a design document called
"_design/_design/foo".
-rw-r--r-- | src/mango/src/mango_idx.erl | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/mango/src/mango_idx.erl b/src/mango/src/mango_idx.erl index 4dd2e180d..8e19ebff8 100644 --- a/src/mango/src/mango_idx.erl +++ b/src/mango/src/mango_idx.erl @@ -333,7 +333,7 @@ get_idx_type(Opts) -> get_idx_ddoc(Idx, Opts) -> case proplists:get_value(ddoc, Opts) of - <<"_design/", _Rest>> = Name -> + <<"_design/", _Rest/binary>> = Name -> Name; Name when is_binary(Name) -> <<"_design/", Name/binary>>; @@ -437,4 +437,13 @@ get_partial_filter_selector_with_legacy_default_selector_test() -> Idx = index(<<"selector">>, []), ?assertEqual(undefined, get_partial_filter_selector(Idx)). + +get_idx_ddoc_name_only_test() -> + Opts = [{ddoc, <<"foo">>}], + ?assertEqual(<<"_design/foo">>, get_idx_ddoc({}, Opts)). + +get_idx_ddoc_design_slash_name_test() -> + Opts = [{ddoc, <<"_design/foo">>}], + ?assertEqual(<<"_design/foo">>, get_idx_ddoc({}, Opts)). + -endif. |