mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-26 09:32:01 +00:00
fix
This commit is contained in:
parent
d5aba078e0
commit
610534e5ff
@ -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;
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user