diff options
author | Robert Newson <rnewson@apache.org> | 2018-09-12 19:10:50 +0100 |
---|---|---|
committer | Robert Newson <rnewson@apache.org> | 2018-09-13 21:10:20 +0100 |
commit | 44a65272bd540aba8f94c3cb4e108b68391e6ea1 (patch) | |
tree | 8b51de7e208771039cae04d4c572eaac46030392 | |
parent | 400632ea943b71da0a7864732e0918f7e9c891fb (diff) | |
download | couchdb-44a65272bd540aba8f94c3cb4e108b68391e6ea1.tar.gz |
fix local (5986) doc creation
-rw-r--r-- | src/chttpd/src/chttpd_db.erl | 10 | ||||
-rw-r--r-- | src/couch/src/couch_doc.erl | 7 |
2 files changed, 8 insertions, 9 deletions
diff --git a/src/chttpd/src/chttpd_db.erl b/src/chttpd/src/chttpd_db.erl index 0bfe0404e..9dab4b5bd 100644 --- a/src/chttpd/src/chttpd_db.erl +++ b/src/chttpd/src/chttpd_db.erl @@ -470,17 +470,19 @@ db_req(#httpd{method='POST',path_parts=[_,<<"_bulk_docs">>], user_ctx=Ctx}=Req, _ -> Options = [{user_ctx,Ctx}, {w,W}] end, + DbName = couch_db:name(Db), + VOpts = [{partitioned, mem3:is_partitioned(DbName)}], case couch_util:get_value(<<"new_edits">>, JsonProps, true) of true -> Docs = lists:map( fun(JsonObj) -> - DbName = couch_db:name(Db), Doc = couch_doc:from_json_obj_validate(JsonObj, DbName), validate_attachment_names(Doc), Id = case Doc#doc.id of <<>> -> couch_uuids:new(); Id0 -> Id0 end, + couch_doc:validate_docid(Id, DbName, VOpts), Doc#doc{id=Id} end, DocsArray), @@ -506,7 +508,11 @@ db_req(#httpd{method='POST',path_parts=[_,<<"_bulk_docs">>], user_ctx=Ctx}=Req, send_json(Req, 417, ErrorsJson) end; false -> - Docs = [couch_doc:from_json_obj_validate(JsonObj) || JsonObj <- DocsArray], + Docs = [begin + couch_doc:from_json_obj_validate(JsonObj) + end + || JsonObj <- DocsArray], + [couch_doc:validate_docid(D#doc.id, DbName, VOpts) || D <- Docs], [validate_attachment_names(D) || D <- Docs], case fabric:update_docs(Db, Docs, [replicated_changes|Options]) of {ok, Errors} -> diff --git a/src/couch/src/couch_doc.erl b/src/couch/src/couch_doc.erl index 135effddf..2c92a9a06 100644 --- a/src/couch/src/couch_doc.erl +++ b/src/couch/src/couch_doc.erl @@ -133,13 +133,6 @@ from_json_obj_validate(EJson) -> from_json_obj_validate(EJson, DbName) -> MaxSize = config:get_integer("couchdb", "max_document_size", 4294967296), Doc = from_json_obj(EJson, DbName), - case is_binary(DbName) andalso mem3:is_partitioned(DbName) of - true -> - Options = [{partitioned, true}], - couch_doc:validate_docid(Doc#doc.id, DbName, Options); - false -> - ok - end, case couch_ejson_size:encoded_size(Doc#doc.body) =< MaxSize of true -> validate_attachment_sizes(Doc#doc.atts), |