From dbefb6bc9c675e7b155c171ef88a1a5fc97f40b7 Mon Sep 17 00:00:00 2001 From: Filipe David Borba Manana Date: Mon, 14 Feb 2011 20:00:25 +0000 Subject: Merged revision 1070625 from trunk: _all_docs rows must not deleted include documents After COUCHDB-1061, when POSTing to _all_docs?include_docs=true with the body "keys" option, deleted documents were part part of the output. The "doc" property of each _all_docs row should have the value 'null' for all deleted documents (when ?include_docs=true). A test was added to help prevent this from happening again. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1070631 13f79535-47bb-0310-9956-ffa450edef68 --- src/couchdb/couch_httpd_db.erl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/couchdb/couch_httpd_db.erl b/src/couchdb/couch_httpd_db.erl index 9aa91277..82e9b989 100644 --- a/src/couchdb/couch_httpd_db.erl +++ b/src/couchdb/couch_httpd_db.erl @@ -559,7 +559,12 @@ all_docs_send_json_view_row(Resp, Db, KV, IncludeDocs, RowFront) -> all_docs_view_row_obj(_Db, {{DocId, error}, Value}, _IncludeDocs) -> {[{key, DocId}, {error, Value}]}; all_docs_view_row_obj(Db, {_KeyDocId, DocInfo}, true) -> - {all_docs_row(DocInfo) ++ couch_httpd_view:doc_member(Db, DocInfo)}; + case DocInfo of + #doc_info{revs = [#rev_info{deleted = true} | _]} -> + {all_docs_row(DocInfo) ++ [{doc, null}]}; + _ -> + {all_docs_row(DocInfo) ++ couch_httpd_view:doc_member(Db, DocInfo)} + end; all_docs_view_row_obj(_Db, {_KeyDocId, DocInfo}, _IncludeDocs) -> {all_docs_row(DocInfo)}. -- cgit v1.2.3