summaryrefslogtreecommitdiff
path: root/src/couchdb/couch_btree.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/couchdb/couch_btree.erl')
-rw-r--r--src/couchdb/couch_btree.erl7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/couchdb/couch_btree.erl b/src/couchdb/couch_btree.erl
index 6fd9b0c8..57013ee9 100644
--- a/src/couchdb/couch_btree.erl
+++ b/src/couchdb/couch_btree.erl
@@ -419,7 +419,7 @@ collect_node(Bt, {P, R}, KeyStart, KeyEnd) ->
true -> % got full node, return the already calculated reduction
{[], [{nil, {P, R}}]};
false -> % otherwise return the keyvalues for later reduction
- {KVs2, []}
+ {[assemble(Bt,K,V) || {K,V} <- KVs2], []}
end
end.
@@ -568,9 +568,10 @@ stream_kv_node(Bt, Reds, KVs, StartKey, Dir, Fun, Acc) ->
stream_kv_node2(_Bt, _Reds, _PrevKVs, [], _Dir, _Fun, Acc) ->
{ok, Acc};
stream_kv_node2(Bt, Reds, PrevKVs, [{K,V} | RestKVs], Dir, Fun, Acc) ->
- case Fun(assemble(Bt, K, V), {PrevKVs, Reds}, Acc) of
+ AssembledKV = assemble(Bt, K, V),
+ case Fun(AssembledKV, {PrevKVs, Reds}, Acc) of
{ok, Acc2} ->
- stream_kv_node2(Bt, Reds, [{K,V} | PrevKVs], RestKVs, Dir, Fun, Acc2);
+ stream_kv_node2(Bt, Reds, [AssembledKV | PrevKVs], RestKVs, Dir, Fun, Acc2);
{stop, Acc2} ->
{stop, Acc2}
end.