Changed-lines coverage: PR changed C/C++ lines covered by tests: 91.25% (146/160) Uncovered changed code (with context): ================================================================================ src/Storages/StorageTimeSeriesSelector.cpp ================================================================================ --- uncovered block 534-534 --- 532 | 533 | if (which.isUInt128()) >> 534 | return {{make_intrusive(UInt128{0}), make_intrusive(std::numeric_limits::max())}}; 535 | 536 | if (which.isUUID()) --- uncovered block 542-553 --- 540 | } 541 | >> 542 | if (which.isFixedString() && (typeid_cast(type).getN() == 16)) 543 | { >> 544 | auto fixed_string_16 = [](char c) 545 | { >> 546 | return makeASTFunction("CAST", >> 547 | makeASTFunction("unhex", make_intrusive(String(32, c))), >> 548 | make_intrusive("FixedString(16)")); 549 | }; >> 550 | return {{fixed_string_16('0'), fixed_string_16('f')}}; 551 | } 552 | >> 553 | return {}; 554 | } 555 | --- uncovered block 621-621 --- 619 | { 620 | if (name_matcher) >> 621 | return {}; 622 | name_matcher = &matcher; 623 | } --- uncovered block 636-645 --- 634 | return {}; 635 | if (!makeMinMaxLiteralsForIDComponent(*id_tuple_type->getElements()[0])) >> 636 | return {}; 637 | auto min_max_second_component = makeMinMaxLiteralsForIDComponent(*id_tuple_type->getElements()[1]); 638 | if (!min_max_second_component) >> 639 | return {}; 640 | 641 | /// 3. The samples table stores `id` physically with exactly this type: the range conditions 642 | /// compare the raw column (bypassing the identity-cast alias of the SELECT list). 643 | auto data_table_id_column = data_table_columns.tryGetPhysical(TimeSeriesColumnNames::ID); 644 | if (!data_table_id_column || (data_table_id_column->type->getName() != id_data_type->getName())) >> 645 | return {}; 646 | 647 | /// 2b. The id generator is the canonical one for this id type. The resolution order mirrors --- uncovered block 747-748 --- 745 | /// the main query would also hit, e.g. a missing access right on the tags table, 746 | /// still surfaces when the main query runs the tags subquery). >> 747 | LOG_DEBUG(log, "Keeping the id set condition for index analysis: the whole-metric probe failed with {}", getCurrentExceptionMessage(false)); >> 748 | return {}; 749 | } 750 | } WARNING: Failed to get start time for [Print Uncovered Code] - start time and duration won't be set --- Coverage counts --- Lines : baseline 959,685/1,105,847 -> current 959,390/1,106,022 (delta -295 / +175) Functions : baseline 815,954/886,850 -> current 815,994/886,860 (delta +40 / +10) Branches : baseline 317,075/400,400 -> current 316,844/400,466 (delta -231 / +66)