dbms: development [#CONV-2944].

This commit is contained in:
Alexey Milovidov 2012-08-07 20:37:45 +00:00
parent 6d2f2a62d6
commit 788ea2a552

View File

@ -978,37 +978,40 @@ void StorageMergeTree::loadDataParts()
* Удаление файлов будет произведено потом в методе clearOldParts. * Удаление файлов будет произведено потом в методе clearOldParts.
*/ */
DataParts::iterator prev_jt = new_data_parts->begin(); if (new_data_parts->size() >= 2)
DataParts::iterator curr_jt = prev_jt;
++curr_jt;
while (curr_jt != new_data_parts->end())
{ {
/// Куски данных за разные месяцы рассматривать не будем DataParts::iterator prev_jt = new_data_parts->begin();
if ((*curr_jt)->left_month != (*curr_jt)->right_month DataParts::iterator curr_jt = prev_jt;
|| (*curr_jt)->right_month != (*prev_jt)->left_month ++curr_jt;
|| (*prev_jt)->left_month != (*prev_jt)->right_month) while (curr_jt != new_data_parts->end())
{ {
++prev_jt; /// Куски данных за разные месяцы рассматривать не будем
++curr_jt; if ((*curr_jt)->left_month != (*curr_jt)->right_month
continue; || (*curr_jt)->right_month != (*prev_jt)->left_month
} || (*prev_jt)->left_month != (*prev_jt)->right_month)
{
++prev_jt;
++curr_jt;
continue;
}
if ((*curr_jt)->contains(**prev_jt)) if ((*curr_jt)->contains(**prev_jt))
{ {
LOG_WARNING(log, "Part " << (*curr_jt)->name << " contains " << (*prev_jt)->name); LOG_WARNING(log, "Part " << (*curr_jt)->name << " contains " << (*prev_jt)->name);
new_data_parts->erase(prev_jt); new_data_parts->erase(prev_jt);
prev_jt = curr_jt; prev_jt = curr_jt;
++curr_jt; ++curr_jt;
} }
else if ((*prev_jt)->contains(**curr_jt)) else if ((*prev_jt)->contains(**curr_jt))
{ {
LOG_WARNING(log, "Part " << (*prev_jt)->name << " contains " << (*curr_jt)->name); LOG_WARNING(log, "Part " << (*prev_jt)->name << " contains " << (*curr_jt)->name);
new_data_parts->erase(curr_jt++); new_data_parts->erase(curr_jt++);
} }
else else
{ {
++prev_jt; ++prev_jt;
++curr_jt; ++curr_jt;
}
} }
} }