================================================================================ Changed-lines coverage summary ================================================================================ Denominator: lines added/modified by this PR in C/C++ source files that LCOV considers coverable (excludes blank lines, braces, comments, header-only declarations, and error-path noise such as `LOGICAL_ERROR`, `UNREACHABLE()`, `abort()`). Numerator: of those coverable lines, the number actually executed by the test suite during this coverage run. PR changed C/C++ lines covered by tests: 95.49% (233/244) Uncovered changed code (with context): ================================================================================ src/Access/QuotaCache.cpp ================================================================================ --- uncovered block 112-112 --- 110 | catch (...) /// Ok: a malformed X-Forwarded-For value should not fail the query; fall back to using the raw string as the quota key, matching pre-prefix-bits behavior. 111 | { >> 112 | return params.forwarded_address; 113 | } 114 | } --- uncovered block 138-140 --- 136 | case QuotaKeyType::CLIENT_KEY_OR_IP_ADDRESS: 137 | { >> 138 | if (!params.client_key.empty()) >> 139 | return params.client_key; >> 140 | return mask_address(params.client_address); 141 | } 142 | case QuotaKeyType::NORMALIZED_QUERY_HASH: ================================================================================ src/Access/UsersConfigParser.cpp ================================================================================ --- uncovered block 648-654 --- 646 | { 647 | if (!config.has(path)) >> 648 | return std::nullopt; 649 | 650 | UInt64 raw_value = config.getUInt64(path); 651 | if (raw_value > max_bits) >> 652 | throw Exception( >> 653 | ErrorCodes::BAD_ARGUMENTS, >> 654 | "Quota {}: {} must be between 0 and {}", quota_name, path, static_cast(max_bits)); 655 | 656 | return MaskBits{static_cast(raw_value)}; ================================================================================ src/Parsers/Access/ASTCreateQuotaQuery.cpp ================================================================================ --- uncovered block 187-187 --- 185 | 186 | if (!new_name.empty()) >> 187 | formatRenameTo(new_name, ostr, settings); 188 | 189 | if (key_type) ================================================================================ src/Storages/System/StorageSystemQuotas.cpp ================================================================================ --- uncovered block 108-111 --- 106 | auto quota = access_control.tryRead(id); 107 | if (!quota) >> 108 | continue; 109 | auto storage = access_control.findStorage(id); 110 | if (!storage) >> 111 | continue; 112 | 113 | column_name.insertData(quota->getName().data(), quota->getName().length()); === Lost Baseline Coverage: 2 lines === ================================================================================ src/Interpreters/Access/InterpreterShowCreateAccessEntityQuery.cpp ================================================================================ --- lost coverage block 252-252 --- 250 | if (const SettingsProfile * profile = typeid_cast(&entity)) 251 | return getCreateQueryImpl(*profile, access_control, attach_mode); >> 252 | throw Exception(ErrorCodes::NOT_IMPLEMENTED, "{}: type is not supported by SHOW CREATE query", entity.formatTypeWithName()); 253 | } 254 | } ================================================================================ src/Storages/System/StorageSystemQuotas.cpp ================================================================================ --- lost coverage block 111-111 --- 109 | auto storage = access_control.findStorage(id); 110 | if (!storage) >> 111 | continue; 112 | 113 | column_name.insertData(quota->getName().data(), quota->getName().length()); WARNING: Failed to get start time for [Print Uncovered Code] - start time and duration won't be set --- Coverage counts --- Lines : baseline 785,735/929,385 -> current 785,903/929,556 (delta +168 / +171) Functions : baseline 887,576/961,212 -> current 887,595/961,227 (delta +19 / +15) Branches : baseline 257,519/333,610 -> current 257,582/333,708 (delta +63 / +98)