From 2b2b26abb332b3c7125e26b4eaba3525a5fba1af Mon Sep 17 00:00:00 2001 From: Bob Dionne Date: Wed, 19 Oct 2011 15:47:05 -0400 Subject: [PATCH 1/2] Add shard info (q,n) to db_info BugzID:11171 --- src/fabric_db_info.erl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/fabric_db_info.erl b/src/fabric_db_info.erl index 63fb44a..2eed4a7 100644 --- a/src/fabric_db_info.erl +++ b/src/fabric_db_info.erl @@ -62,7 +62,8 @@ handle_message({ok, Info}, #shard{dbname=Name} = Shard, {Counters, Acc}) -> false -> {stop, [ {db_name,Name}, - {update_seq, fabric_view_changes:pack_seqs(C2)} | + {update_seq, fabric_view_changes:pack_seqs(C2)}, + {shard_info, {mem3_util:shard_info(Name)}} | merge_results(lists:flatten([Info|Acc])) ]} end From b9b56c36fc81807cb9ab3ab61e4f177b394c126b Mon Sep 17 00:00:00 2001 From: Bob Dionne Date: Thu, 20 Oct 2011 11:33:55 -0400 Subject: [PATCH 2/2] Change name of shard_info to db_topology and move inside the tuple in order to maintain compatibility with earlier versions of couchdb. BugzID:11171 --- src/fabric_db_info.erl | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/fabric_db_info.erl b/src/fabric_db_info.erl index 2eed4a7..baf5ac6 100644 --- a/src/fabric_db_info.erl +++ b/src/fabric_db_info.erl @@ -60,12 +60,12 @@ handle_message({ok, Info}, #shard{dbname=Name} = Shard, {Counters, Acc}) -> true -> {ok, {C2, [Info|Acc]}}; false -> + MergedRes = merge_results(lists:flatten([Info|Acc])), {stop, [ {db_name,Name}, - {update_seq, fabric_view_changes:pack_seqs(C2)}, - {shard_info, {mem3_util:shard_info(Name)}} | - merge_results(lists:flatten([Info|Acc])) - ]} + {update_seq, fabric_view_changes:pack_seqs(C2)} | + add_to_other([{db_topology, {mem3_util:shard_info(Name)}}], MergedRes) + ]} end end; handle_message(_, _, Acc) -> @@ -103,3 +103,9 @@ merge_other_results(Results) -> (_, _, Acc) -> Acc end, [], Dict). + +add_to_other(Other, MergedResult) -> + {other, {Val}} = lists:keyfind(other, 1, MergedResult), + NewVal = Val ++ Other, + lists:keyreplace(other, 1, MergedResult, {other, {NewVal}}). +