Changed-lines coverage: PR changed C/C++ lines covered by tests: 94.62% (299/316) Uncovered changed code (with context): ================================================================================ src/Interpreters/InterpreterSelectQuery.cpp ================================================================================ --- uncovered block 926-938 --- 924 | SelectQueryInfo current_info; 925 | current_info.query = query_ptr; >> 926 | current_info.syntax_analyzer_result = syntax_analyzer_result; >> 927 | const auto & supported_prewhere_columns = storage->supportedPrewhereColumns(); 928 | 929 | /// The parts are only there for a storage of the `MergeTree` family, and they are 930 | /// only used by its condition selectivity estimator. Other storages that allow 931 | /// moving conditions to `PREWHERE` either have no snapshot data at all or have 932 | /// their own type of it (`StorageMemory`), so the type has to be checked. >> 933 | RangesInDataParts parts_for_estimator; >> 934 | if (const auto * merge_tree_snapshot_data >> 935 | = dynamic_cast(storage_snapshot->data.get())) 936 | { >> 937 | if (merge_tree_snapshot_data->parts) >> 938 | parts_for_estimator = *merge_tree_snapshot_data->parts; 939 | } 940 | ================================================================================ src/Processors/QueryPlan/ReadFromMemoryStorageStep.cpp ================================================================================ --- uncovered block 149-149 --- 147 | /// reported the block's rows as read. 148 | if (isCancelled()) >> 149 | return {}; 150 | continue; 151 | } --- uncovered block 261-262 --- 259 | if (constant_filter.always_false) 260 | { >> 261 | progress(num_src_rows, num_read_bytes); >> 262 | return std::nullopt; 263 | } 264 | ================================================================================ src/Storages/StorageMemory.cpp ================================================================================ --- uncovered block 355-355 --- 353 | /// swap in a possibly-truncated result. 354 | if (cancelled) >> 355 | throw_on_cancellation(); 356 | new_data = std::make_unique(); 357 | new_data->blocks = out; --- uncovered block 386-387 --- 384 | { 385 | if (out[i].rows() != old_blocks[i].rows()) >> 386 | reject_incomplete(fmt::format( >> 387 | "block {} has {} rows, expected {}", i, out[i].rows(), old_blocks[i].rows())); 388 | } 389 | --- uncovered block 702-702 --- 700 | 701 | /// Append old blocks with the new ones. >> 702 | auto old_and_new_data = std::make_unique(*(data.get())); 703 | old_and_new_data->blocks.insert( 704 | old_and_new_data->blocks.end(), std::make_move_iterator(new_blocks.begin()), std::make_move_iterator(new_blocks.end())); --- uncovered block 775-777 --- 773 | { 774 | if (query_context->getPinnedStorageSnapshot(getStorageID().uuid)) >> 775 | return false; 776 | if (query_context->hasQueryContext() && query_context->getQueryContext()->getPinnedStorageSnapshot(getStorageID().uuid)) >> 777 | return false; 778 | } 779 | return true; ================================================================================ src/Storages/StorageMemory.h ================================================================================ --- uncovered block 41-41 --- 39 | String getName() const override { return "Memory"; } 40 | >> 41 | size_t getSize() const { return data.get()->blocks.size(); } 42 | 43 | /// Snapshot for StorageMemory contains current set of blocks WARNING: Failed to get start time for [Print Uncovered Code] - start time and duration won't be set --- Coverage counts --- Lines : baseline 1,002,077/1,136,489 -> current 1,002,269/1,136,690 (delta +192 / +201) Functions : baseline 835,419/910,690 -> current 835,681/910,700 (delta +262 / +10) Branches : baseline 326,365/410,468 -> current 326,475/410,572 (delta +110 / +104)