diff options
Diffstat (limited to 'src/fabric/src/fabric_db_info.erl')
-rw-r--r-- | src/fabric/src/fabric_db_info.erl | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/fabric/src/fabric_db_info.erl b/src/fabric/src/fabric_db_info.erl index 40da678e5..586f282c2 100644 --- a/src/fabric/src/fabric_db_info.erl +++ b/src/fabric/src/fabric_db_info.erl @@ -77,7 +77,7 @@ handle_message(Reason, Shard, {Counters, Resps, CInfo}) -> build_final_response(CInfo, DbName, Responses) -> AccF = fabric_dict:fold(fun(Shard, Info, {Seqs, PSeqs, Infos}) -> - Seq = couch_util:get_value(update_seq, Info), + Seq = build_seq(Shard, Info), PSeq = couch_util:get_value(purge_seq, Info), {[{Shard, Seq} | Seqs], [{Shard, PSeq} | PSeqs], [Info | Infos]} end, {[], [], []}, Responses), @@ -89,6 +89,13 @@ build_final_response(CInfo, DbName, Responses) -> [{db_name, DbName}] ++ Sequences ++ MergedInfos. +build_seq(#shard{node = Node}, Info) when is_list(Info) -> + Seq = couch_util:get_value(update_seq, Info), + Uuid = couch_util:get_value(uuid, Info), + PrefixLen = fabric_util:get_uuid_prefix_len(), + {Seq, binary:part(Uuid, {0, PrefixLen}), Node}. + + merge_results(Info) -> Dict = lists:foldl(fun({K,V},D0) -> orddict:append(K,V,D0) end, orddict:new(), Info), |