| a | b | |
|---|
| 0 | + | diff --git a/src/couchdb/couch_view_updater.erl b/src/couchdb/couch_view_updater.erl |
|---|
| 0 | + | index 51f06b4..73a61fc 100644 |
|---|
| 0 | + | --- a/src/couchdb/couch_view_updater.erl |
|---|
| 0 | + | +++ b/src/couchdb/couch_view_updater.erl |
|---|
| 0 | + | @@ -166,16 +166,17 @@ do_maps(#group{query_server = Qs} = Group, MapQueue, WriteQueue) -> |
|---|
| 0 | + | couch_work_queue:close(WriteQueue), |
|---|
| 0 | + | couch_query_servers:stop_doc_map(Group#group.query_server); |
|---|
| 0 | + | {ok, Queue} -> |
|---|
| 0 | + | - lists:foreach( |
|---|
| 0 | + | - fun({Seq, #doc{id = Id, deleted = true}}) -> |
|---|
| 0 | + | + Items = lists:foldl( |
|---|
| 0 | + | + fun({Seq, #doc{id = Id, deleted = true}}, Acc) -> |
|---|
| 0 | + | Item = {Seq, Id, []}, |
|---|
| 0 | + | - ok = couch_work_queue:queue(WriteQueue, Item); |
|---|
| 0 | + | - ({Seq, #doc{id = Id, deleted = false} = Doc}) -> |
|---|
| 0 | + | + [Item | Acc]; |
|---|
| 0 | + | + ({Seq, #doc{id = Id, deleted = false} = Doc}, Acc) -> |
|---|
| 0 | + | {ok, Result} = couch_query_servers:map_doc_raw(Qs, Doc), |
|---|
| 0 | + | Item = {Seq, Id, Result}, |
|---|
| 0 | + | - ok = couch_work_queue:queue(WriteQueue, Item) |
|---|
| 0 | + | + [Item | Acc] |
|---|
| 0 | + | end, |
|---|
| 0 | + | - Queue), |
|---|
| 0 | + | + [], Queue), |
|---|
| 0 | + | + ok = couch_work_queue:queue(WriteQueue, Items), |
|---|
| 0 | + | do_maps(Group, MapQueue, WriteQueue) |
|---|
| 0 | + | end. |
|---|
| 0 | + | |
|---|
| 0 | + | @@ -183,7 +184,8 @@ do_writes(Parent, Owner, Group, WriteQueue, InitialBuild, ViewEmptyKVs) -> |
|---|
| 0 | + | case couch_work_queue:dequeue(WriteQueue) of |
|---|
| 0 | + | closed -> |
|---|
| 0 | + | Parent ! {new_group, Group}; |
|---|
| 0 | + | - {ok, Queue} -> |
|---|
| 0 | + | + {ok, Queue0} -> |
|---|
| 0 | + | + Queue = lists:flatten(Queue0), |
|---|
| 0 | + | {ViewKVs, DocIdViewIdKeys} = lists:foldr( |
|---|
| 0 | + | fun({_Seq, Id, []}, {ViewKVsAcc, DocIdViewIdKeysAcc}) -> |
|---|
| 0 | + | {ViewKVsAcc, [{Id, []} | DocIdViewIdKeysAcc]}; |
|---|
| ... | |
|---|