mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-21 17:20:50 +00:00
Took PREWHERE
into account.
This commit is contained in:
parent
6f5a72c963
commit
e5cbd82879
@ -231,6 +231,19 @@ std::vector<size_t> MergeTreeReadPool::fillPerPartInfo(
|
||||
auto [required_columns, required_pre_columns, should_reorder] =
|
||||
getReadTaskColumns(data, metadata_snapshot, part.data_part, column_names, prewhere_info, check_columns);
|
||||
|
||||
if (predict_block_size_bytes)
|
||||
{
|
||||
const auto & required_column_names = required_columns.getNames();
|
||||
const auto & required_pre_column_names = required_pre_columns.getNames();
|
||||
NameSet complete_column_names(required_column_names.begin(), required_column_names.end());
|
||||
complete_column_names.insert(required_pre_column_names.begin(), required_pre_column_names.end());
|
||||
|
||||
per_part_size_predictor.emplace_back(std::make_unique<MergeTreeBlockSizePredictor>(
|
||||
part.data_part, Names(complete_column_names.begin(), complete_column_names.end()), sample_block));
|
||||
}
|
||||
else
|
||||
per_part_size_predictor.emplace_back(nullptr);
|
||||
|
||||
/// will be used to distinguish between PREWHERE and WHERE columns when applying filter
|
||||
const auto & required_column_names = required_columns.getNames();
|
||||
per_part_column_name_set.emplace_back(required_column_names.begin(), required_column_names.end());
|
||||
@ -240,14 +253,6 @@ std::vector<size_t> MergeTreeReadPool::fillPerPartInfo(
|
||||
per_part_should_reorder.push_back(should_reorder);
|
||||
|
||||
parts_with_idx.push_back({ part.data_part, part.part_index_in_query });
|
||||
|
||||
if (predict_block_size_bytes)
|
||||
{
|
||||
per_part_size_predictor.emplace_back(std::make_unique<MergeTreeBlockSizePredictor>(
|
||||
part.data_part, required_column_names, sample_block));
|
||||
}
|
||||
else
|
||||
per_part_size_predictor.emplace_back(nullptr);
|
||||
}
|
||||
|
||||
return per_part_sum_marks;
|
||||
|
@ -93,9 +93,17 @@ try
|
||||
MarkRanges mark_ranges_for_task = { all_mark_ranges.back() };
|
||||
all_mark_ranges.pop_back();
|
||||
|
||||
auto size_predictor = (preferred_block_size_bytes == 0)
|
||||
? nullptr
|
||||
: std::make_unique<MergeTreeBlockSizePredictor>(data_part, task_columns.columns.getNames(), metadata_snapshot->getSampleBlock());
|
||||
std::unique_ptr<MergeTreeBlockSizePredictor> size_predictor;
|
||||
if (preferred_block_size_bytes)
|
||||
{
|
||||
const auto & required_column_names = task_columns.columns.getNames();
|
||||
const auto & required_pre_column_names = task_columns.pre_columns.getNames();
|
||||
NameSet complete_column_names(required_column_names.begin(), required_column_names.end());
|
||||
complete_column_names.insert(required_pre_column_names.begin(), required_pre_column_names.end());
|
||||
|
||||
size_predictor = std::make_unique<MergeTreeBlockSizePredictor>(
|
||||
data_part, Names(complete_column_names.begin(), complete_column_names.end()), metadata_snapshot->getSampleBlock());
|
||||
}
|
||||
|
||||
task = std::make_unique<MergeTreeReadTask>(
|
||||
data_part, mark_ranges_for_task, part_index_in_query, ordered_names, column_name_set,
|
||||
|
@ -71,9 +71,17 @@ try
|
||||
storage, metadata_snapshot, data_part,
|
||||
required_columns, prewhere_info, check_columns);
|
||||
|
||||
auto size_predictor = (preferred_block_size_bytes == 0)
|
||||
? nullptr
|
||||
: std::make_unique<MergeTreeBlockSizePredictor>(data_part, task_columns.columns.getNames(), metadata_snapshot->getSampleBlock());
|
||||
std::unique_ptr<MergeTreeBlockSizePredictor> size_predictor;
|
||||
if (preferred_block_size_bytes)
|
||||
{
|
||||
const auto & required_column_names = task_columns.columns.getNames();
|
||||
const auto & required_pre_column_names = task_columns.pre_columns.getNames();
|
||||
NameSet complete_column_names(required_column_names.begin(), required_column_names.end());
|
||||
complete_column_names.insert(required_pre_column_names.begin(), required_pre_column_names.end());
|
||||
|
||||
size_predictor = std::make_unique<MergeTreeBlockSizePredictor>(
|
||||
data_part, Names(complete_column_names.begin(), complete_column_names.end()), metadata_snapshot->getSampleBlock());
|
||||
}
|
||||
|
||||
/// will be used to distinguish between PREWHERE and WHERE columns when applying filter
|
||||
const auto & column_names = task_columns.columns.getNames();
|
||||
|
Loading…
Reference in New Issue
Block a user