You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by rn...@apache.org on 2015/06/25 13:45:16 UTC

[3/3] couch commit: updated refs/heads/master to c2ef372

Fix `active_size` format conversion in `get_db_info` function

In `active_size` conversion in `couch_db:get_db_info/1` old db reduction's size format assumed to be an integer representing active state, when it also could be a tuple of active and external sizes.

This handeled correctly, for example, in [couch_db_updater.erl](https://github.com/apache/couchdb-couch/blob/master/src/couch_db_updater.erl#L426).

This patch addresses conversion of both possible formats to CouchDB `size_info` record.

This closes issue COUCHDB-2701


Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch/commit/6dcbf935
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch/tree/6dcbf935
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch/diff/6dcbf935

Branch: refs/heads/master
Commit: 6dcbf935390485bc7f141e029451714b1652006d
Parents: 2c19dcd
Author: Eric Avdey <ei...@eiri.ca>
Authored: Tue May 26 09:59:24 2015 -0300
Committer: Eric Avdey <ei...@eiri.ca>
Committed: Wed Jun 24 13:02:49 2015 -0300

----------------------------------------------------------------------
 src/couch_db.erl | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-couch/blob/6dcbf935/src/couch_db.erl
----------------------------------------------------------------------
diff --git a/src/couch_db.erl b/src/couch_db.erl
index bbfbe0d..6b2dcc4 100644
--- a/src/couch_db.erl
+++ b/src/couch_db.erl
@@ -333,8 +333,13 @@ get_db_info(Db) ->
     {ok, FileSize} = couch_file:bytes(Fd),
     {ok, DbReduction} = couch_btree:full_reduce(IdBtree),
     SizeInfo0 = element(3, DbReduction),
-    SizeInfo = if is_record(SizeInfo0, size_info) -> SizeInfo0; true ->
-        #size_info{active=SizeInfo0}
+    SizeInfo = case SizeInfo0 of
+        SI when is_record(SI, size_info) ->
+            SI;
+        {AS, ES} ->
+            #size_info{active=AS, external=ES};
+        SI ->
+            #size_info{active=SI}
     end,
     ActiveSize = active_size(Db, SizeInfo),
     DiskVersion = couch_db_header:disk_version(Header),