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 2049-2049 --- 2047 | } 2048 | else >> 2049 | #endif 2050 | { 2051 | auto buf = createReadBuffer( --- uncovered block 2051-2055 --- 2049 | #endif 2050 | { >> 2051 | auto buf = createReadBuffer( >> 2052 | single_file_path, file_stat, false, -1, storage->compression_method, ctx); >> 2053 | const auto & format_settings = storage->format_settings.value_or(getFormatSettings(ctx)); >> 2054 | auto splitter = FormatFactory::instance().getSplitter(storage->format_name); >> 2055 | buckets = splitter->splitToBucketsByCount(max_num_streams, *buf, format_settings); 2056 | } 2057 | === Lost Baseline Coverage: 1 lines === ================================================================================ src/Storages/StorageFile.cpp ================================================================================ --- lost coverage block 1303-1303 --- 1301 | Int64 lock_timeout = settings[Setting::lock_acquire_timeout].totalSeconds(); 1302 | if (settings[Setting::max_execution_time].totalSeconds() != 0 && settings[Setting::max_execution_time].totalSeconds() < lock_timeout) >> 1303 | lock_timeout = settings[Setting::max_execution_time].totalSeconds(); 1304 | return std::chrono::seconds{lock_timeout}; 1305 | } WARNING: Failed to get start time for [Print Uncovered Code] - start time and duration won't be set --- Coverage counts --- Lines : baseline 768,683/914,186 -> current 768,988/914,355 (delta +305 / +169) Functions : baseline 884,551/967,932 -> current 884,605/967,946 (delta +54 / +14) Branches : baseline 250,848/327,806 -> current 250,992/327,884 (delta +144 / +78)