MCPcopy Create free account
hub / github.com/baidu/tera / CompareToDiff

Function CompareToDiff

src/admincli.cc:922–955  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

920}
921
922void CompareToDiff(std::map<std::string, std::pair<std::string, std::string>>& map_scan,
923 std::map<std::string, std::vector<std::string>>* map_diff) {
924 std::vector<std::string> keyrange_diff;
925 // input: <path,<startkey,endkey>> map_bak
926 // input: <startkey,<endkey,path>> map_scan
927 auto it_scan = map_scan.begin();
928
929 while (it_scan != map_scan.end()) {
930 auto it_bak = g_map_bak.find(it_scan->second.second);
931 if (it_bak != g_map_bak.end()) {
932 if (it_scan->first != it_bak->second.first ||
933 it_scan->second.first != it_bak->second.second) {
934 // output: keyrange err -- <path,<startkey_scan,endkey_scan,startkey_bak,endkey_bak>>
935 // map_diff
936 keyrange_diff.clear();
937 // scan keyrange
938 keyrange_diff.push_back(it_scan->first);
939 keyrange_diff.push_back(it_scan->second.first);
940 // bak keyrange
941 keyrange_diff.push_back(it_bak->second.first);
942 keyrange_diff.push_back(it_bak->second.second);
943
944 map_diff->insert(make_pair(it_scan->second.second, keyrange_diff));
945 }
946 } else {
947 // output: tablet err -- <path,<startkey_scan,endkey_scan>> map_diff
948 keyrange_diff.clear();
949 keyrange_diff.push_back(it_scan->first);
950 keyrange_diff.push_back(it_scan->second.first);
951 map_diff->insert(make_pair(it_scan->second.second, keyrange_diff));
952 }
953 ++it_scan;
954 }
955}
956
957void FixTabletOverlap(std::map<std::string, std::pair<std::string, std::string>>& map_scan) {
958 auto it = map_scan.begin();

Callers 1

ScanAndDiffFunction · 0.85

Calls 3

push_backMethod · 0.80
insertMethod · 0.80
clearMethod · 0.45

Tested by

no test coverage detected