This commit is contained in:
Nikita Vasilev 2019-02-14 19:59:26 +03:00
parent d5aba078e0
commit 610534e5ff
2 changed files with 8 additions and 4 deletions

View File

@ -1010,7 +1010,7 @@ MarkRanges MergeTreeDataSelectExecutor::filterMarksUsingIndex(
continue;
}
if (res.empty() || res.back().end - data_range.begin >= min_marks_for_seek)
if (res.empty() || res.back().end - data_range.begin > min_marks_for_seek)
res.push_back(data_range);
else
res.back().end = data_range.end;

View File

@ -448,9 +448,11 @@ void MergedBlockOutputStream::writeImpl(const Block & block, const IColumn::Perm
WrittenOffsetColumns offset_columns;
auto primary_key_column_names = storage.primary_key_columns;
Names skip_indexes_column_names;
std::set<String> skip_indexes_column_names_set;
for (const auto & index : storage.skip_indices)
std::copy(index->columns.cbegin(), index->columns.cend(), std::back_inserter(skip_indexes_column_names));
std::copy(index->columns.cbegin(), index->columns.cend(),
std::inserter(skip_indexes_column_names_set, skip_indexes_column_names_set.end()));
Names skip_indexes_column_names(skip_indexes_column_names_set.begin(), skip_indexes_column_names_set.end());
/// Here we will add the columns related to the Primary Key, then write the index.
std::vector<ColumnWithTypeAndName> primary_key_columns(primary_key_column_names.size());
@ -542,6 +544,8 @@ void MergedBlockOutputStream::writeImpl(const Block & block, const IColumn::Perm
rows_count += rows;
{
/// Creating block for update
Block indices_update_block(skip_indexes_columns);
/// Filling and writing skip indices like in IMergedBlockOutputStream::writeData
for (size_t i = 0; i < storage.skip_indices.size(); ++i)
{
@ -573,7 +577,7 @@ void MergedBlockOutputStream::writeImpl(const Block & block, const IColumn::Perm
}
size_t pos = prev_pos;
skip_indices_granules[i]->update(block, &pos, limit);
skip_indices_granules[i]->update(indices_update_block, &pos, limit);
if (pos == prev_pos + limit)
{