From f174f9dd8616577d195a562ccf2d02c8aecb19b1 Mon Sep 17 00:00:00 2001 From: "Damien F. Katz" Date: Fri, 18 Jul 2008 12:57:07 +0000 Subject: Fix for problem when saving bulk documents with invalid ids git-svn-id: https://svn.apache.org/repos/asf/incubator/couchdb/trunk@677892 13f79535-47bb-0310-9956-ffa450edef68 --- src/couchdb/couch_doc.erl | 19 ++++++++++++------- src/couchdb/couch_rep.erl | 2 +- 2 files changed, 13 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/couchdb/couch_doc.erl b/src/couchdb/couch_doc.erl index 9b7d6db9..61685cfa 100644 --- a/src/couchdb/couch_doc.erl +++ b/src/couchdb/couch_doc.erl @@ -110,13 +110,18 @@ from_json_obj({obj, Props}) -> Revs0 -> Revs0 end, - #doc{ - id = proplists:get_value("_id", Props, ""), - revs = Revs, - deleted = proplists:get_value("_deleted", Props, false), - body = {obj, [{Key, Value} || {[FirstChar|_]=Key, Value} <- Props, FirstChar /= $_]}, - attachments = Bins - }. + case proplists:get_value("_id", Props, "") of + Id when is_list(Id) -> + #doc{ + id = Id, + revs = Revs, + deleted = proplists:get_value("_deleted", Props, false), + body = {obj, [{Key, Value} || {[FirstChar|_]=Key, Value} <- Props, FirstChar /= $_]}, + attachments = Bins + }; + _ -> + throw({invalid_document_id, "Document id is not a string"}) + end. to_doc_info(#full_doc_info{id=Id,update_seq=Seq,rev_tree=Tree}) -> diff --git a/src/couchdb/couch_rep.erl b/src/couchdb/couch_rep.erl index 452bb492..b2d46beb 100644 --- a/src/couchdb/couch_rep.erl +++ b/src/couchdb/couch_rep.erl @@ -241,7 +241,7 @@ open_db(DbName)-> enum_docs_since(DbUrl, StartSeq, InFun, InAcc) when is_list(DbUrl) -> - Url = DbUrl ++ "_all_docs_by_seq?count=4&startkey=" ++ integer_to_list(StartSeq), + Url = DbUrl ++ "_all_docs_by_seq?count=100&startkey=" ++ integer_to_list(StartSeq), {obj, Results} = do_http_request(Url, get), DocInfoList= lists:map(fun({obj, RowInfoList}) -> -- cgit v1.2.3