diff options
author | Jan Lehnardt <jan@apache.org> | 2009-11-30 19:10:08 +0000 |
---|---|---|
committer | Jan Lehnardt <jan@apache.org> | 2009-11-30 19:10:08 +0000 |
commit | a6d71c3b4e8f4a5a59e66999bd504753f5810bb6 (patch) | |
tree | 78143fd08219870f4d583033013220f37ae50b88 /src/couchdb/couch_db_updater.erl | |
parent | b232effb7b51c831c0eccfb553514bd2b0c41c0b (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.erl | 4 |
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} |