88.69% (149/168) Uncovered changed code (with context): ================================================================================ src/Formats/FormatFactory.cpp ================================================================================ --- uncovered block 864-864 --- 862 | { 863 | auto creator = getCreators(format); >> 864 | return creator.bucket_splitter_creator(); 865 | } 866 | ================================================================================ src/Processors/Formats/IInputFormat.h ================================================================================ --- uncovered block 75-75 --- 73 | virtual std::vector splitToBucketsByCount(size_t target_count, ReadBuffer & buf, const FormatSettings & format_settings_) = 0; 74 | >> 75 | virtual ~IBucketSplitter() = default; 76 | }; 77 | using BucketSplitter = std::shared_ptr; ================================================================================ src/Processors/Formats/Impl/ParquetV3BlockInputFormat.cpp ================================================================================ --- uncovered block 140-140 --- 138 | /// Only count rows in the assigned row groups. Otherwise multiple sources 139 | /// reading buckets of the same file would each report the file's total. >> 140 | for (size_t rg : buckets_to_read->row_group_ids) 141 | { 142 | if (rg < file_metadata.row_groups.size()) --- uncovered block 142-143 --- 140 | for (size_t rg : buckets_to_read->row_group_ids) 141 | { >> 142 | if (rg < file_metadata.row_groups.size()) >> 143 | num_rows += size_t(file_metadata.row_groups[rg].num_rows); 144 | } 145 | } --- uncovered block 338-338 --- 336 | result.push_back(std::make_shared(bucket)); 337 | } >> 338 | return result; 339 | } 340 | --- uncovered block 370-370 --- 368 | { 369 | if (target_count == 0 || num_row_groups == 0) >> 370 | return {}; 371 | 372 | static constexpr size_t min_row_groups_per_chunk = 16; --- uncovered block 404-405 --- 402 | std::vector ParquetBucketSplitter::splitToBucketsByCount(size_t target_count, ReadBuffer & buf, const FormatSettings & format_settings_) 403 | { >> 404 | auto file_metadata = parseFileMetadataNative(buf, format_settings_); >> 405 | return computeBucketsByCount(target_count, file_metadata.row_groups.size()); 406 | } 407 | --- uncovered block 426-427 --- 424 | else 425 | { >> 426 | auto file_metadata = parseFileMetadataNative(buf, format_settings); >> 427 | num_row_groups = file_metadata.row_groups.size(); 428 | } 429 | return computeBucketsByCount(target_count, num_row_groups); --- uncovered block 439-439 --- 437 | { 438 | if (!metadata_cache || file_path.empty() || cache_etag.empty()) >> 439 | return {}; 440 | auto key = ParquetMetadataCache::createKey(file_path, cache_etag); 441 | auto cached = metadata_cache->get(key); ================================================================================ src/Processors/Formats/Impl/ParquetV3BlockInputFormat.h ================================================================================ --- uncovered block 33-33 --- 31 | struct ParquetBucketSplitter : public IBucketSplitter 32 | { >> 33 | ParquetBucketSplitter() = default; 34 | std::vector splitToBuckets(size_t bucket_size, ReadBuffer & buf, const FormatSettings & format_settings_) override; 35 | std::vector splitToBucketsByCount(size_t target_count, ReadBuffer & buf, const FormatSettings & format_settings_) override; ================================================================================ src/Storages/StorageFile.cpp ================================================================================ --- uncovered block 2052-2052 --- 2050 | } 2051 | else >> 2052 | #endif 2053 | { 2054 | auto buf = createReadBuffer( --- uncovered block 2054-2058 --- 2052 | #endif 2053 | { >> 2054 | auto buf = createReadBuffer( >> 2055 | single_file_path, file_stat, false, -1, storage->compression_method, ctx); >> 2056 | const auto & format_settings = storage->format_settings.value_or(getFormatSettings(ctx)); >> 2057 | auto splitter = FormatFactory::instance().getSplitter(storage->format_name); >> 2058 | buckets = splitter->splitToBucketsByCount(max_num_streams, *buf, format_settings); 2059 | } 2060 | === Lost Baseline Coverage: 2 lines === ================================================================================ src/Processors/Formats/Impl/Parquet/ReadManager.cpp ================================================================================ --- lost coverage block 425-426 --- 423 | else 424 | { >> 425 | chassert(false); >> 426 | break; 427 | } 428 | } WARNING: Failed to get start time for [Print Uncovered Code] - start time and duration won't be set --- Coverage counts --- Lines : baseline 770,454/916,297 -> current 770,331/916,466 (delta -123 / +169) Functions : baseline 884,957/968,553 -> current 885,154/968,568 (delta +197 / +15) Branches : baseline 251,402/328,646 -> current 251,380/328,724 (delta -22 / +78)