No title Revision 623631626365 (Mon Feb 27 2012 at 16:28) - Diff Link to this snippet: https://friendpaste.com/178nPFgfyyeGf2vtNRpL0w Embed: manni perldoc borland colorful default murphy trac fruity autumn bw emacs pastie friendly Show line numbers Wrap lines 1234567891011121314151617181920212223242526272829303132333435363738diff --git a/src/couchdb/couch_view_updater.erl b/src/couchdb/couch_view_updater.erlindex 51f06b4..73a61fc 100644--- a/src/couchdb/couch_view_updater.erl+++ b/src/couchdb/couch_view_updater.erl@@ -166,16 +166,17 @@ do_maps(#group{query_server = Qs} = Group, MapQueue, WriteQueue) -> couch_work_queue:close(WriteQueue), couch_query_servers:stop_doc_map(Group#group.query_server); {ok, Queue} ->- lists:foreach(- fun({Seq, #doc{id = Id, deleted = true}}) ->+ Items = lists:foldl(+ fun({Seq, #doc{id = Id, deleted = true}}, Acc) -> Item = {Seq, Id, []},- ok = couch_work_queue:queue(WriteQueue, Item);- ({Seq, #doc{id = Id, deleted = false} = Doc}) ->+ [Item | Acc];+ ({Seq, #doc{id = Id, deleted = false} = Doc}, Acc) -> {ok, Result} = couch_query_servers:map_doc_raw(Qs, Doc), Item = {Seq, Id, Result},- ok = couch_work_queue:queue(WriteQueue, Item)+ [Item | Acc] end,- Queue),+ [], Queue),+ ok = couch_work_queue:queue(WriteQueue, Items), do_maps(Group, MapQueue, WriteQueue) end. @@ -183,7 +184,8 @@ do_writes(Parent, Owner, Group, WriteQueue, InitialBuild, ViewEmptyKVs) -> case couch_work_queue:dequeue(WriteQueue) of closed -> Parent ! {new_group, Group};- {ok, Queue} ->+ {ok, Queue0} ->+ Queue = lists:flatten(Queue0), {ViewKVs, DocIdViewIdKeys} = lists:foldr( fun({_Seq, Id, []}, {ViewKVsAcc, DocIdViewIdKeysAcc}) -> {ViewKVsAcc, [{Id, []} | DocIdViewIdKeysAcc]};