Return-Path: X-Original-To: apmail-couchdb-commits-archive@www.apache.org Delivered-To: apmail-couchdb-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8702A175A1 for ; Tue, 2 Jun 2015 19:35:33 +0000 (UTC) Received: (qmail 34725 invoked by uid 500); 2 Jun 2015 19:35:32 -0000 Delivered-To: apmail-couchdb-commits-archive@couchdb.apache.org Received: (qmail 34615 invoked by uid 500); 2 Jun 2015 19:35:32 -0000 Mailing-List: contact commits-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list commits@couchdb.apache.org Received: (qmail 34299 invoked by uid 99); 2 Jun 2015 19:35:32 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 02 Jun 2015 19:35:32 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 57612E0AFD; Tue, 2 Jun 2015 19:35:32 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: chewbranca@apache.org To: commits@couchdb.apache.org Date: Tue, 02 Jun 2015 19:35:37 -0000 Message-Id: <0c33fb8ffaf94224b25ca527f0e6c3c2@git.apache.org> In-Reply-To: <1b227edc773e4cbabd298c26188e5f92@git.apache.org> References: <1b227edc773e4cbabd298c26188e5f92@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [06/50] couch commit: updated refs/heads/2080-port-cors-to-chttpd to 529339b Fix bulk_delete_create Fix the case when document with the same id is deleted and created in a single bulk transaction. COUCHDB-2547 Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch/commit/3776aa3b Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch/tree/3776aa3b Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch/diff/3776aa3b Branch: refs/heads/2080-port-cors-to-chttpd Commit: 3776aa3bd55a5f39d402992c9a58ed5c06413c96 Parents: 51eec4a Author: ILYA Khlopotov Authored: Thu Feb 5 11:26:41 2015 -0800 Committer: ILYA Khlopotov Committed: Tue Feb 10 11:07:13 2015 -0800 ---------------------------------------------------------------------- src/couch_doc.erl | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb-couch/blob/3776aa3b/src/couch_doc.erl ---------------------------------------------------------------------- diff --git a/src/couch_doc.erl b/src/couch_doc.erl index 6fc9b09..d152a2a 100644 --- a/src/couch_doc.erl +++ b/src/couch_doc.erl @@ -273,12 +273,7 @@ max_seq(Tree, UpdateSeq) -> to_doc_info_path(#full_doc_info{id=Id,rev_tree=Tree,update_seq=FDISeq}) -> RevInfosAndPath = [ - {#rev_info{ - deleted = Leaf#leaf.deleted, - body_sp = Leaf#leaf.ptr, - seq = Leaf#leaf.seq, - rev = {Pos, RevId} - }, Path} || {Leaf, {Pos, [RevId | _]} = Path} <- + {rev_info(Node), Path} || {_Leaf, Path} = Node <- couch_key_tree:get_all_leafs(Tree) ], SortedRevInfosAndPath = lists:sort( @@ -291,6 +286,20 @@ to_doc_info_path(#full_doc_info{id=Id,rev_tree=Tree,update_seq=FDISeq}) -> RevInfos = [RevInfo || {RevInfo, _Path} <- SortedRevInfosAndPath], {#doc_info{id=Id, high_seq=max_seq(Tree, FDISeq), revs=RevInfos}, WinPath}. +rev_info({#leaf{} = Leaf, {Pos, [RevId | _]}}) -> + #rev_info{ + deleted = Leaf#leaf.deleted, + body_sp = Leaf#leaf.ptr, + seq = Leaf#leaf.seq, + rev = {Pos, RevId} + }; +rev_info({#doc{} = Doc, {Pos, [RevId | _]}}) -> + #rev_info{ + deleted = Doc#doc.deleted, + body_sp = undefined, + seq = undefined, + rev = {Pos, RevId} + }. is_deleted(#full_doc_info{rev_tree=Tree}) -> is_deleted(Tree);