diff options
author | Nick Vatamaniuc <vatamane@apache.org> | 2019-11-04 15:53:58 -0500 |
---|---|---|
committer | Nick Vatamaniuc <nickva@users.noreply.github.com> | 2019-11-04 15:58:17 -0500 |
commit | 3db0ba7fae66bf4c817da38e9d508e5349a44b69 (patch) | |
tree | a9e32ecf59bd3dbfb00fa20061baab15c0d2be1b | |
parent | 8d28d851f46629858ee28e155af56f0b858cb721 (diff) | |
download | couchdb-3db0ba7fae66bf4c817da38e9d508e5349a44b69.tar.gz |
Ensure we can create partitioned design docs with FDB
Users should be able to replicate their partitioned dbs to the new environment.
-rw-r--r-- | src/couch_mrview/src/couch_mrview.erl | 14 | ||||
-rw-r--r-- | src/fabric/test/fabric2_doc_crud_tests.erl | 18 |
2 files changed, 20 insertions, 12 deletions
diff --git a/src/couch_mrview/src/couch_mrview.erl b/src/couch_mrview/src/couch_mrview.erl index cf6f27fde..083356fbc 100644 --- a/src/couch_mrview/src/couch_mrview.erl +++ b/src/couch_mrview/src/couch_mrview.erl @@ -184,7 +184,7 @@ validate(Db, DDoc) -> validate(DbName, IsPartitioned, DDoc). -validate(DbName, IsDbPartitioned, DDoc) -> +validate(DbName, _IsDbPartitioned, DDoc) -> ok = validate_ddoc_fields(DDoc#doc.body), GetName = fun (#mrview{map_names = [Name | _]}) -> Name; @@ -211,19 +211,9 @@ validate(DbName, IsDbPartitioned, DDoc) -> end, {ok, #mrst{ language = Lang, - views = Views, - partitioned = Partitioned + views = Views }} = couch_mrview_util:ddoc_to_mrst(DbName, DDoc), - case {IsDbPartitioned, Partitioned} of - {false, true} -> - throw({invalid_design_doc, - <<"partitioned option cannot be true in a " - "non-partitioned database.">>}); - {_, _} -> - ok - end, - try Views =/= [] andalso couch_query_servers:get_os_process(Lang) of false -> ok; diff --git a/src/fabric/test/fabric2_doc_crud_tests.erl b/src/fabric/test/fabric2_doc_crud_tests.erl index 255efefdc..a9085be77 100644 --- a/src/fabric/test/fabric2_doc_crud_tests.erl +++ b/src/fabric/test/fabric2_doc_crud_tests.erl @@ -33,6 +33,7 @@ doc_crud_test_() -> fun create_ddoc_requires_admin/1, fun create_ddoc_requires_validation/1, fun create_ddoc_requires_compilation/1, + fun can_create_a_partitioned_ddoc/1, fun update_doc_basic/1, fun update_ddoc_basic/1, fun update_doc_replicated/1, @@ -108,6 +109,23 @@ create_ddoc_basic({Db, _}) -> ?assertEqual({ok, NewDoc}, fabric2_db:open_doc(Db, Doc#doc.id)). +can_create_a_partitioned_ddoc({Db, _}) -> + UUID = fabric2_util:uuid(), + DDocId = <<"_design/", UUID/binary>>, + Doc = #doc{ + id = DDocId, + body = {[ + {<<"options">>, {[{<<"partitioned">>, true}]}}, + {<<"views">>, {[ + {<<"foo">>, {[ + {<<"map">>, <<"function(doc) {}">>} + ]}} + ]}} + ]} + }, + ?assertMatch({ok, {_, _}}, fabric2_db:update_doc(Db, Doc)). + + create_ddoc_requires_admin({Db, _}) -> Db2 = fabric2_db:set_user_ctx(Db, #user_ctx{}), UUID = fabric2_util:uuid(), |