| 257 | } |
| 258 | |
| 259 | ReadFromMergeTree::ReadFromMergeTree( |
| 260 | MergeTreeMetaBase::DataPartsVector parts_, |
| 261 | MergeTreeMetaBase::DeleteBitmapGetter delete_bitmap_getter_, |
| 262 | Names real_column_names_, |
| 263 | Names virt_column_names_, |
| 264 | const MergeTreeMetaBase & data_, |
| 265 | const SelectQueryInfo & query_info_, |
| 266 | StorageSnapshotPtr storage_snapshot_, |
| 267 | ContextPtr context_, |
| 268 | size_t max_block_size_, |
| 269 | size_t num_streams_, |
| 270 | bool sample_factor_column_queried_, |
| 271 | bool map_column_keys_column_queried_, |
| 272 | std::shared_ptr<PartitionIdToMaxBlock> max_block_numbers_to_read_, |
| 273 | Poco::Logger * log_, |
| 274 | MergeTreeDataSelectAnalysisResultPtr analyzed_result_ptr_) |
| 275 | : ISourceStep(DataStream{ |
| 276 | .header = query_info_.atomic_predicates.empty() |
| 277 | ? MergeTreeBaseSelectProcessor::transformHeader( |
| 278 | storage_snapshot_->getSampleBlockForColumns(real_column_names_), |
| 279 | getPrewhereInfo(query_info_), |
| 280 | data_.getPartitionValueType(), |
| 281 | virt_column_names_, |
| 282 | getIndexContext(query_info_), query_info_.read_bitmap_index) |
| 283 | : MergeTreeBaseSelectProcessorLM::transformHeader( |
| 284 | storage_snapshot_->getSampleBlockForColumns(real_column_names_), |
| 285 | query_info_, |
| 286 | data_.getPartitionValueType(), |
| 287 | virt_column_names_)}) |
| 288 | , reader_settings(getMergeTreeReaderSettings(context_, data_)) |
| 289 | , prepared_parts(std::move(parts_)) |
| 290 | , delete_bitmap_getter(std::move(delete_bitmap_getter_)) |
| 291 | , real_column_names(std::move(real_column_names_)) |
| 292 | , virt_column_names(std::move(virt_column_names_)) |
| 293 | , data(data_) |
| 294 | , query_info(query_info_) |
| 295 | , prewhere_info(getPrewhereInfo(query_info)) |
| 296 | , actions_settings(ExpressionActionsSettings::fromContext(context_)) |
| 297 | , storage_snapshot(std::move(storage_snapshot_)) |
| 298 | , metadata_for_reading(storage_snapshot->getMetadataForQuery()) |
| 299 | , context(std::move(context_)) |
| 300 | , max_block_size(max_block_size_) |
| 301 | , requested_num_streams(num_streams_) |
| 302 | , preferred_block_size_bytes(context->getSettingsRef().preferred_block_size_bytes) |
| 303 | , preferred_max_column_in_block_size_bytes(context->getSettingsRef().preferred_max_column_in_block_size_bytes) |
| 304 | , sample_factor_column_queried(sample_factor_column_queried_) |
| 305 | , map_column_keys_column_queried(map_column_keys_column_queried_) |
| 306 | , max_block_numbers_to_read(std::move(max_block_numbers_to_read_)) |
| 307 | , log(log_), analyzed_result_ptr(analyzed_result_ptr_) |
| 308 | { |
| 309 | if (sample_factor_column_queried) |
| 310 | { |
| 311 | /// Only _sample_factor virtual column is added by ReadFromMergeTree |
| 312 | /// Other virtual columns are added by MergeTreeBaseSelectProcessor. |
| 313 | auto type = std::make_shared<DataTypeFloat64>(); |
| 314 | output_stream->header.insert({type->createColumn(), type, "_sample_factor"}); |
| 315 | } |
| 316 |
nothing calls this directly
no test coverage detected