Merge remote-tracking branch 'cloudant/3318-bypass-vhosts'
diff --git a/src/couch_btree.erl b/src/couch_btree.erl
index e9ff7f5..adbc92b 100644
--- a/src/couch_btree.erl
+++ b/src/couch_btree.erl
@@ -342,11 +342,9 @@
% it's probably really inefficient.
chunkify(InList) ->
- BaseChunkSize = get_chunk_size(),
+ ChunkThreshold = get_chunk_size(),
case ?term_size(InList) of
- Size when Size > BaseChunkSize ->
- NumberOfChunksLikely = ((Size div BaseChunkSize) + 1),
- ChunkThreshold = Size div NumberOfChunksLikely,
+ Size when Size > ChunkThreshold ->
chunkify(InList, ChunkThreshold, [], 0, []);
_Else ->
[InList]
@@ -354,6 +352,9 @@
chunkify([], _ChunkThreshold, [], 0, OutputChunks) ->
lists:reverse(OutputChunks);
+chunkify([], _ChunkThreshold, [Item], _OutListSize, [PrevChunk | RestChunks]) ->
+ NewPrevChunk = PrevChunk ++ [Item],
+ lists:reverse(RestChunks, [NewPrevChunk]);
chunkify([], _ChunkThreshold, OutList, _OutListSize, OutputChunks) ->
lists:reverse([lists:reverse(OutList) | OutputChunks]);
chunkify([InElement | RestInList], ChunkThreshold, OutList, OutListSize, OutputChunks) ->
diff --git a/src/couch_db.erl b/src/couch_db.erl
index 8005e6d..d01a3e0 100644
--- a/src/couch_db.erl
+++ b/src/couch_db.erl
@@ -391,7 +391,7 @@
case couch_btree:size(T) of
_ when Acc == null ->
null;
- undefined ->
+ nil ->
null;
Size ->
Acc + Size