ignore preferred_max_column_in_block_size_bytes if zero [#CLICKHOUSE-3170]

This commit is contained in:
Nikolai Kochetov 2017-07-21 20:45:51 +03:00
parent 755d16b22d
commit c64b65ee29

View File

@ -87,13 +87,17 @@ Block MergeTreeBaseBlockInputStream::readFromPart()
if (!task.size_predictor)
return max_block_size_rows;
size_t rows_to_read_for_block = std::max(index_granularity, task.size_predictor->estimateNumRows(preferred_block_size_bytes));
size_t rows_to_read_for_max_size_column
= task.size_predictor->estimateNumRowsForMaxSizeColumn(preferred_max_column_in_block_size_bytes);
double filtration_ratio = std::max(min_filtration_ratio, 1.0 - task.size_predictor->filtered_rows_ratio);
size_t rows_to_read_for_max_size_column_with_filtration
= static_cast<size_t>(rows_to_read_for_max_size_column / filtration_ratio);
size_t rows_to_read = std::min(rows_to_read_for_block, rows_to_read_for_max_size_column_with_filtration);
size_t rows_to_read = std::max(index_granularity, task.size_predictor->estimateNumRows(preferred_block_size_bytes));
if (preferred_max_column_in_block_size_bytes)
{
size_t rows_to_read_for_max_size_column
= task.size_predictor->estimateNumRowsForMaxSizeColumn(preferred_max_column_in_block_size_bytes);
double filtration_ratio = std::max(min_filtration_ratio, 1.0 - task.size_predictor->filtered_rows_ratio);
size_t rows_to_read_for_max_size_column_with_filtration
= static_cast<size_t>(rows_to_read_for_max_size_column / filtration_ratio);
rows_to_read = std::min(rows_to_read, rows_to_read_for_max_size_column_with_filtration);
}
size_t unread_rows_in_current_granule = reader.unreadRowsInCurrentGranule();
if (unread_rows_in_current_granule >= rows_to_read)