summaryrefslogtreecommitdiff
path: root/src/couchdb/couch_db_updater.erl
diff options
context:
space:
mode:
authorJan Lehnardt <jan@apache.org>2009-11-30 19:10:08 +0000
committerJan Lehnardt <jan@apache.org>2009-11-30 19:10:08 +0000
commita6d71c3b4e8f4a5a59e66999bd504753f5810bb6 (patch)
tree78143fd08219870f4d583033013220f37ae50b88 /src/couchdb/couch_db_updater.erl
parentb232effb7b51c831c0eccfb553514bd2b0c41c0b (diff)
Fix two issues for databases upgraded from 0.9.x:
- Compaction would fail. - GET /db/doc?attachments=true would generate a 500. git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@885542 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/couchdb/couch_db_updater.erl')
-rw-r--r--src/couchdb/couch_db_updater.erl4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/couchdb/couch_db_updater.erl b/src/couchdb/couch_db_updater.erl
index db5c43bc..7292221a 100644
--- a/src/couchdb/couch_db_updater.erl
+++ b/src/couchdb/couch_db_updater.erl
@@ -704,6 +704,10 @@ copy_doc_attachments(#db{fd=SrcFd}=SrcDb, {Pos,_RevId}, SrcSp, DestFd) ->
% 09 UPGRADE CODE
{NewBinSp, Len, Md5} = couch_stream:copy_to_new_stream(SrcFd, BinSp, DestFd),
{Name, Type, NewBinSp, Len, Pos, Md5};
+ ({Name, Type, BinSp, Len, RevPos, <<>>}) when is_tuple(BinSp) orelse BinSp == null ->
+ % 09 UPGRADE CODE
+ {NewBinSp, Len, Md5} = couch_stream:old_copy_to_new_stream(SrcFd, BinSp, Len, DestFd),
+ {Name, Type, NewBinSp, Len, Len, Md5};
({Name, Type, BinSp, Len, RevPos, Md5}) ->
{NewBinSp, Len, Md5} = couch_stream:copy_to_new_stream(SrcFd, BinSp, DestFd),
{Name, Type, NewBinSp, Len, RevPos, Md5}