Parsing baseline coverage from /home/ubuntu/actions-runner/_work/ClickHouse/ClickHouse/ci/tmp//base_llvm_coverage.info ... 6996 files in baseline Parsing current coverage from /home/ubuntu/actions-runner/_work/ClickHouse/ClickHouse/ci/tmp//llvm_coverage.info ... 6996 files in current Parsing extra baseline coverage from /home/ubuntu/actions-runner/_work/ClickHouse/ClickHouse/ci/tmp//base_llvm_coverage_2.info (sha=e2368f7c0942, 0 files remapped, 0 deleted/renamed skipped) ... 6996 files in base_llvm_coverage_2.info Parsing extra baseline coverage from /home/ubuntu/actions-runner/_work/ClickHouse/ClickHouse/ci/tmp//base_llvm_coverage_3.info (sha=9baaf47a6ec4, 0 files remapped, 0 deleted/renamed skipped) ... 6996 files in base_llvm_coverage_3.info Parsing extra baseline coverage from /home/ubuntu/actions-runner/_work/ClickHouse/ClickHouse/ci/tmp//base_llvm_coverage_4.info (sha=c4bb89db9e5b, 0 files remapped, 0 deleted/renamed skipped) ... 6996 files in base_llvm_coverage_4.info Parsing extra baseline coverage from /home/ubuntu/actions-runner/_work/ClickHouse/ClickHouse/ci/tmp//base_llvm_coverage_5.info (sha=0f9218180c6d, 0 files remapped, 0 deleted/renamed skipped) ... 6996 files in base_llvm_coverage_5.info Parsing extra baseline coverage from /home/ubuntu/actions-runner/_work/ClickHouse/ClickHouse/ci/tmp//base_llvm_coverage_6.info (sha=293593f577e2, 0 files remapped, 0 deleted/renamed skipped) ... 6996 files in base_llvm_coverage_6.info cross-validation enabled across 6 master baselines (line numbers remapped to primary coordinate system via git diff): 874,488 lines covered in at least one master run Overall coverage delta (current vs master baseline): Lines : +0.0214 pp (85.9324% -> 85.9539%, +218 covered) Functions: +0.0030 pp (91.4745% -> 91.4775%, +31 covered) Branches : +0.0435 pp (78.4341% -> 78.4776%, +159 covered) Newly covered: 161 line(s), 31 function(s) across 56 file(s) All 56 file(s) with newly-covered code, ranked by line count: src/Functions/FunctionShowCertificate.cpp: 36 line(s), 2 function(s) src/AggregateFunctions/AggregateFunctionTopK.cpp: 9 line(s), 2 function(s) src/Storages/StorageReplicatedMergeTree.cpp: 9 line(s) src/Functions/printf.cpp: 6 line(s) src/Functions/FunctionsCodingIP.cpp: 5 line(s) src/Functions/FunctionsExternalDictionaries.h: 4 line(s) src/Functions/getServerPort.cpp: 4 line(s) src/Functions/h3ExactEdgeLengthKm.cpp: 4 line(s) src/Functions/h3GetOriginIndexFromUnidirectionalEdge.cpp: 4 line(s) src/Storages/System/StorageSystemStackTrace.cpp: 4 line(s) src/AggregateFunctions/AggregateFunctionWindowFunnel.cpp: 3 line(s) src/Functions/FunctionChar.cpp: 3 line(s) src/Functions/FunctionsBitmap.h: 3 line(s) src/Functions/FunctionsCodingUUID.cpp: 3 line(s) src/Functions/FunctionsRound.h: 3 line(s) src/Functions/HasSubsequenceImpl.h: 3 line(s) src/Functions/bar.cpp: 3 line(s) src/Functions/finalizeAggregation.cpp: 3 line(s) src/Storages/MergeTree/Compaction/MergePredicates/ReplicatedMergeTreeMergePredicate.cpp: 3 line(s) src/Storages/MergeTree/MergeTreeDataPartChecksum.cpp: 3 line(s) src/Functions/FunctionsMergeTreePartInfo.cpp: 2 line(s), 1 function(s) src/AggregateFunctions/AggregateFunctionGroupUniqArray.cpp: 2 line(s) src/DataTypes/DataTypeMap.cpp: 2 line(s) src/Functions/FunctionSHA1.cpp: 2 line(s) src/Functions/addressToLine.h: 2 line(s) src/Processors/Formats/Impl/Parquet/Decoding.cpp: 2 line(s) src/Processors/Formats/Impl/Parquet/ReadManager.cpp: 2 line(s) src/Processors/QueryPlan/Optimizations/filterPushDown.cpp: 2 line(s) src/Storages/MergeTree/EphemeralLockInZooKeeper.cpp: 2 line(s) src/Storages/MergeTree/MergeTreeData.cpp: 2 line(s) src/AggregateFunctions/AggregateFunctionAny.cpp: 1 line(s), 23 function(s) src/Disks/DiskObjectStorage/MetadataStorages/Local/MetadataStorageFromDiskTransactionOperations.cpp: 1 line(s), 1 function(s) src/Functions/addressToLineWithInlines.cpp: 1 line(s), 1 function(s) src/Functions/yesterday.cpp: 1 line(s), 1 function(s) programs/server/Server.cpp: 1 line(s) src/AggregateFunctions/AggregateFunctionStudentTTestOneSample.cpp: 1 line(s) src/AggregateFunctions/SingleValueData.cpp: 1 line(s) src/Common/Elf.cpp: 1 line(s) src/Common/Macros.cpp: 1 line(s) src/Common/isValidUTF8.cpp: 1 line(s) src/DataTypes/Serializations/SerializationInfoTuple.cpp: 1 line(s) src/Functions/array/arrayReverse.cpp: 1 line(s) src/Functions/array/emptyArrayToSingle.cpp: 1 line(s) src/Functions/date_trunc.cpp: 1 line(s) src/Functions/fromModifiedJulianDay.cpp: 1 line(s) src/Functions/hasColumnInTable.cpp: 1 line(s) src/Interpreters/RowRefs.cpp: 1 line(s) src/Processors/QueryPlan/Optimizations/optimizeUseNormalProjection.cpp: 1 line(s) src/Processors/Transforms/MergingAggregatedTransform.cpp: 1 line(s) src/QueryPipeline/DistributedPlanExecutor.cpp: 1 line(s) src/Storages/MergeTree/IMergeTreeDataPart.cpp: 1 line(s) src/Storages/MergeTree/MergeTreePartInfo.cpp: 1 line(s) src/Storages/MergeTree/MergeTreeReadPoolParallelReplicas.cpp: 1 line(s) src/Storages/ObjectStorage/StorageObjectStorage.cpp: 1 line(s) src/Storages/StorageFile.cpp: 1 line(s) src/Storages/System/StorageSystemReplicationQueue.cpp: 1 line(s) Newly covered code (with context): ================================================================================ src/Functions/FunctionShowCertificate.cpp ================================================================================ --- newly covered block 62-116 --- 60 | DataTypePtr getReturnTypeImpl(const ColumnsWithTypeAndName &) const override 61 | { >> 62 | return std::make_shared(std::make_shared(), std::make_shared()); 63 | } 64 | 65 | ColumnPtr executeImpl(const ColumnsWithTypeAndName &, const DataTypePtr &, size_t input_rows_count) const override 66 | { >> 67 | MutableColumnPtr keys = DataTypeString().createColumn(); >> 68 | MutableColumnPtr values = DataTypeString().createColumn(); >> 69 | MutableColumnPtr offsets = DataTypeNumber().createColumn(); 70 | >> 71 | if (input_rows_count) 72 | { >> 73 | #if USE_SSL >> 74 | std::unique_ptr x509_cert; >> 75 | if (!certificate.empty()) 76 | x509_cert = std::make_unique(certificate); 77 | >> 78 | if (!x509_cert) 79 | { >> 80 | const auto * server_context_cert = SSL_CTX_get0_certificate(Poco::Net::SSLManager::instance().defaultServerContext()->sslContext()); >> 81 | x509_cert = std::make_unique(X509_dup(server_context_cert)); 82 | } 83 | >> 84 | if (x509_cert) 85 | { >> 86 | keys->insert("version"); >> 87 | values->insert(std::to_string(x509_cert->version())); 88 | >> 89 | keys->insert("serial_number"); >> 90 | values->insert(x509_cert->serialNumber()); 91 | >> 92 | keys->insert("signature_algo"); >> 93 | values->insert(x509_cert->signatureAlgorithm()); 94 | >> 95 | keys->insert("issuer"); >> 96 | values->insert(x509_cert->issuerName()); 97 | >> 98 | keys->insert("not_before"); >> 99 | values->insert(x509_cert->validFrom()); 100 | >> 101 | keys->insert("not_after"); >> 102 | values->insert(x509_cert->expiresOn()); 103 | >> 104 | keys->insert("subject"); >> 105 | values->insert(x509_cert->subjectName()); 106 | >> 107 | keys->insert("pkey_algo"); >> 108 | values->insert(x509_cert->publicKeyAlgorithm()); 109 | } >> 110 | offsets->insert(keys->size()); >> 111 | #endif 112 | } 113 | >> 114 | size_t sz = keys->size(); 115 | >> 116 | if (sz && input_rows_count > 1) 117 | { 118 | keys->reserve(sz * input_rows_count); --- newly covered block 123-123 --- 121 | } 122 | >> 123 | for (size_t i = 1; i < input_rows_count; ++i) 124 | { 125 | for (size_t j = 0; j < sz; ++j) --- newly covered block 133-136 --- 131 | } 132 | >> 133 | auto nested_column = ColumnArray::create( >> 134 | ColumnTuple::create(Columns{std::move(keys), std::move(values)}), std::move(offsets)); 135 | >> 136 | return ColumnMap::create(nested_column); 137 | } 138 | }; ================================================================================ src/AggregateFunctions/AggregateFunctionTopK.cpp ================================================================================ --- newly covered block 475-482 --- 473 | 474 | AggregateFunctionTopKDate(UInt64 threshold_, UInt64 reserved_, bool include_counts_, bool is_approx_top_k_, const DataTypes & argument_types_, const Array & params) >> 475 | : AggregateFunctionTopK( >> 476 | threshold_, >> 477 | reserved_, >> 478 | include_counts_, >> 479 | is_approx_top_k_, >> 480 | argument_types_, >> 481 | params) >> 482 | {} 483 | }; 484 | --- newly covered block 528-528 --- 526 | WhichDataType which(argument_types[0]); 527 | if (which.idx == TypeIndex::Date) >> 528 | return new AggregateFunctionTopKDate(threshold, reserved, include_counts, is_approx_top_k, argument_types, params); 529 | if (which.idx == TypeIndex::DateTime) 530 | return new AggregateFunctionTopKDateTime(threshold, reserved, include_counts, is_approx_top_k, argument_types, params); ================================================================================ src/Storages/StorageReplicatedMergeTree.cpp ================================================================================ --- newly covered block 2122-2129 --- 2120 | if (insane && !skip_sanity_checks) 2121 | { >> 2122 | LOG_DEBUG(log, sanity_report_debug_fmt, fmt::join(uncovered_unexpected_parts, ", "), fmt::join(restorable_unexpected_parts, ", "), fmt::join(parts_to_fetch, ", "), >> 2123 | fmt::join(covered_unexpected_parts, ", "), fmt::join(expected_parts, ", ")); >> 2124 | throw Exception(ErrorCodes::TOO_MANY_UNEXPECTED_DATA_PARTS, sanity_report_fmt, getStorageID().getNameForLogs(), >> 2125 | formatReadableQuantity(uncovered_unexpected_parts_rows), >> 2126 | formatReadableQuantity(total_rows_on_filesystem), >> 2127 | uncovered_unexpected_parts.size(), uncovered_unexpected_parts_rows, unexpected_parts_nonnew, unexpected_parts_nonnew_rows, >> 2128 | parts_to_fetch.size(), parts_to_fetch_blocks, covered_unexpected_parts.size(), >> 2129 | unexpected_parts_rows - uncovered_unexpected_parts_rows); 2130 | } 2131 | --- newly covered block 11428-11428 --- 11426 | new_data_part, /*hardlinked_files*/ {}, /*replace_zero_copy_lock*/ true, ops, num_check_ops_unused); 11427 | if (part_found) >> 11428 | throw Exception(ErrorCodes::DUPLICATE_DATA_PART, "Found part on another replica, probably it was already replaced"); 11429 | 11430 | /// Increment lost_part_count ================================================================================ src/Functions/printf.cpp ================================================================================ --- newly covered block 488-493 --- 486 | /// Check if all arguments are used 487 | if (idx != arguments.size()) >> 488 | throw Exception( >> 489 | ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH, >> 490 | "Number of arguments for function {} doesn't match: passed {}, but format is {}", >> 491 | getName(), >> 492 | arguments.size(), >> 493 | format); 494 | 495 | return instructions; ================================================================================ src/Functions/FunctionsCodingIP.cpp ================================================================================ --- newly covered block 1008-1012 --- 1006 | WhichDataType arg_type(arguments[0]); 1007 | if (!(arg_type.isIPv4() || arg_type.isUInt8() || arg_type.isUInt16() || arg_type.isUInt32())) >> 1008 | throw Exception( >> 1009 | ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, >> 1010 | "Illegal type {} of first argument of function {}, expected IPv4 or UInt8 or UInt16 or UInt32", >> 1011 | arguments[0]->getName(), getName() >> 1012 | ); 1013 | 1014 | ================================================================================ src/Functions/FunctionsExternalDictionaries.h ================================================================================ --- newly covered block 1192-1195 --- 1190 | dictionary_name = name_col->getValue(); 1191 | else >> 1192 | throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, >> 1193 | "Illegal type {} of first argument of function {}, expected a const string.", >> 1194 | arguments[0].type->getName(), >> 1195 | getName()); 1196 | 1197 | auto dictionary = helper.getDictionary(arguments[0].column); ================================================================================ src/Functions/getServerPort.cpp ================================================================================ --- newly covered block 109-112 --- 107 | { 108 | if (!isString(arguments[0].type)) >> 109 | throw Exception( >> 110 | ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, >> 111 | "The argument of function {} should be a constant string with the name of a setting", >> 112 | getName()); 113 | const auto * column = arguments[0].column.get(); 114 | if (!column || !checkAndGetColumnConstStringOrFixedString(column)) ================================================================================ src/Functions/h3ExactEdgeLengthKm.cpp ================================================================================ --- newly covered block 46-49 --- 44 | const auto * arg = arguments[0].get(); 45 | if (!WhichDataType(arg).isUInt64()) >> 46 | throw Exception( >> 47 | ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, >> 48 | "Illegal type {} of argument {} of function {}. Must be UInt64", >> 49 | arg->getName(), 1, getName()); 50 | 51 | return std::make_shared(); ================================================================================ src/Functions/h3GetOriginIndexFromUnidirectionalEdge.cpp ================================================================================ --- newly covered block 48-51 --- 46 | const auto * arg = arguments[0].get(); 47 | if (!WhichDataType(arg).isUInt64()) >> 48 | throw Exception( >> 49 | ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, >> 50 | "Illegal type {} of argument {} of function {}. Must be UInt64", >> 51 | arg->getName(), 1, getName()); 52 | 53 | return std::make_shared(); ================================================================================ src/Storages/System/StorageSystemStackTrace.cpp ================================================================================ --- newly covered block 198-203 --- 196 | if (poll_res < 0) 197 | { >> 198 | if (errno == EINTR) 199 | { >> 200 | --timeout_ms; /// Quite a hacky way to update timeout. Just to make sure we avoid infinite waiting. >> 201 | if (timeout_ms == 0) 202 | return false; >> 203 | continue; 204 | } 205 | ================================================================================ src/AggregateFunctions/AggregateFunctionWindowFunnel.cpp ================================================================================ --- newly covered block 240-242 --- 238 | for (const auto & event : events_list) 239 | { >> 240 | writeBinary(event.timestamp, buf); >> 241 | writeBinary(event.event_type, buf); >> 242 | writeBinary(event.unique_id, buf); 243 | } 244 | } ================================================================================ src/Functions/FunctionChar.cpp ================================================================================ --- newly covered block 46-48 --- 44 | WhichDataType which(arg); 45 | if (!(which.isInt() || which.isUInt() || which.isFloat())) >> 46 | throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, >> 47 | "Illegal type {} of argument of function {}, must be Int, UInt or Float number", >> 48 | arg->getName(), getName()); 49 | } 50 | return std::make_shared(); ================================================================================ src/Functions/FunctionsBitmap.h ================================================================================ --- newly covered block 975-977 --- 973 | const auto * bitmap_type0 = typeid_cast(arguments[0].get()); 974 | if (!(bitmap_type0 && bitmap_type0->getFunctionName() == "groupBitmap")) >> 975 | throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, >> 976 | "First argument for function {} must be a bitmap but it has type {}", >> 977 | getName(), arguments[0]->getName()); 978 | 979 | const auto * bitmap_type1 = typeid_cast(arguments[1].get()); ================================================================================ src/Functions/FunctionsCodingUUID.cpp ================================================================================ --- newly covered block 247-249 --- 245 | const auto * ptr = checkAndGetDataType(arguments[0].get()); 246 | if (!ptr || ptr->getN() != uuid_text_length) >> 247 | throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, >> 248 | "Illegal type {} of first argument of function {}, expected FixedString({})", >> 249 | arguments[0]->getName(), getName(), uuid_text_length); 250 | } 251 | ================================================================================ src/Functions/FunctionsRound.h ================================================================================ --- newly covered block 792-794 --- 790 | 791 | if (!isNumber(type_x)) >> 792 | throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, >> 793 | "Unsupported type {} of first argument of function {}, must be numeric type.", >> 794 | type_x->getName(), getName()); 795 | 796 | const DataTypeArray * type_arr = checkAndGetDataType(arguments[1].get()); ================================================================================ src/Functions/HasSubsequenceImpl.h ================================================================================ --- newly covered block 43-45 --- 41 | { 42 | if (!isString(arguments[0])) >> 43 | throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, >> 44 | "Illegal type {} of argument of function {}", >> 45 | arguments[0]->getName(), getName()); 46 | 47 | if (!isString(arguments[1])) ================================================================================ src/Functions/bar.cpp ================================================================================ --- newly covered block 56-58 --- 54 | { 55 | if (arguments.size() != 3 && arguments.size() != 4) >> 56 | throw Exception(ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH, >> 57 | "Function {} requires from 3 or 4 parameters: value, min_value, max_value, [max_width_of_bar = 80]. " >> 58 | "Passed {}.", getName(), arguments.size()); 59 | 60 | if (!isNumber(arguments[0]) || !isNumber(arguments[1]) || !isNumber(arguments[2]) ================================================================================ src/Functions/finalizeAggregation.cpp ================================================================================ --- newly covered block 51-53 --- 49 | if (!type) 50 | { >> 51 | throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, >> 52 | "Argument for function '{}' must have type AggregateFunction - state of aggregate function." >> 53 | " Got '{}' instead", getName(), arguments[0]->getName()); 54 | } 55 | ================================================================================ src/Storages/MergeTree/Compaction/MergePredicates/ReplicatedMergeTreeMergePredicate.cpp ================================================================================ --- newly covered block 270-270 --- 268 | /// Maybe we already know that there are no relevant uncommitted blocks 269 | if (checked_partitions_cache.contains(partition_id)) >> 270 | continue; 271 | 272 | if (partition_ids_hint && !partition_ids_hint->contains(partition_id)) --- newly covered block 310-311 --- 308 | return true; 309 | >> 310 | LOG_TRACE(queue.log, "Mutation {} is not done because some parts [{}] were just committed", znode_name, fmt::join(it->second.parts_to_do.getParts(), ", ")); >> 311 | return false; 312 | } 313 | ================================================================================ src/Storages/MergeTree/MergeTreeDataPartChecksum.cpp ================================================================================ --- newly covered block 478-480 --- 476 | if (uncompressed_hash_of_compressed_files != rhs.uncompressed_hash_of_compressed_files) 477 | { >> 478 | errors.emplace_back(fmt::format("uncompressed hash of compressed files doesn't match ({} vs {})", >> 479 | getHexUIntLowercase(uncompressed_hash_of_compressed_files), >> 480 | getHexUIntLowercase(rhs.uncompressed_hash_of_compressed_files))); 481 | } 482 | } ================================================================================ src/Functions/FunctionsMergeTreePartInfo.cpp ================================================================================ --- newly covered block 50-50 --- 48 | [[noreturn]] void throwInvalidPartName(std::string_view data) 49 | { >> 50 | throw Exception(ErrorCodes::BAD_ARGUMENTS, "Invalid MergeTree part name: '{}'.", data); 51 | } 52 | --- newly covered block 74-74 --- 72 | 73 | if (number_of_segments < 4) >> 74 | throwInvalidPartName(data); 75 | 76 | /// Process suffix first because it can be easily determined. ================================================================================ src/AggregateFunctions/AggregateFunctionGroupUniqArray.cpp ================================================================================ --- newly covered block 329-330 --- 327 | } 328 | else >> 329 | throw Exception(ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH, >> 330 | "Incorrect number of parameters for aggregate function {}, should be 0 or 1", name); 331 | 332 | if (!limit_size) ================================================================================ src/DataTypes/DataTypeMap.cpp ================================================================================ --- newly covered block 60-61 --- 58 | } 59 | else >> 60 | throw Exception(ErrorCodes::BAD_ARGUMENTS, >> 61 | "Expected Tuple(key, value) with explicit names 'keys', 'values', got without explicit names"); 62 | 63 | key_type = type_tuple->getElement(0); ================================================================================ src/Functions/FunctionSHA1.cpp ================================================================================ --- newly covered block 112-113 --- 110 | { 111 | if (!isStringOrFixedString(arguments[0]) && !isIPv6(arguments[0])) [[unlikely]] >> 112 | throw Exception( >> 113 | ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Illegal type {} of argument of function {}", arguments[0]->getName(), getName()); 114 | return std::make_shared(SHA1_DIGEST_LEN); 115 | } ================================================================================ src/Functions/addressToLine.h ================================================================================ --- newly covered block 48-49 --- 46 | 47 | if (!WhichDataType(type.get()).isUInt64()) >> 48 | throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "The only argument for function {} must be UInt64. " >> 49 | "Found {} instead.", getName(), type->getName()); 50 | 51 | return getDataType(); ================================================================================ src/Processors/Formats/Impl/Parquet/Decoding.cpp ================================================================================ --- newly covered block 1520-1521 --- 1518 | else 1519 | { >> 1520 | col_str.getChars().reserve(col_str.getChars().size() + (offsets[num_values - 1] - offsets[-1]) - separator_bytes * num_values); >> 1521 | for (size_t i = 0; i < num_values; ++i) 1522 | col_str.insertData(chars.data() + offsets[ssize_t(i) - 1], offsets[i] - offsets[ssize_t(i) - 1] - separator_bytes); 1523 | } ================================================================================ src/Processors/Formats/Impl/Parquet/ReadManager.cpp ================================================================================ --- newly covered block 358-359 --- 356 | } 357 | /// No steps, go directly to step 0 >> 358 | addTasksToReadColumns(row_group_idx, row_subgroup_idx, ReadStage::OffsetIndex, 0, diff); >> 359 | return; 360 | } 361 | case ReadStage::ColumnData: ================================================================================ src/Processors/QueryPlan/Optimizations/filterPushDown.cpp ================================================================================ --- newly covered block 546-547 --- 544 | if (equivalent_expressions_set.contains({lhs, eq_expr})) 545 | continue; >> 546 | equivalent_expressions_set.emplace(lhs, eq_expr); >> 547 | extra_equivalent_expressions.emplace_back(lhs, eq_expr); 548 | } 549 | for (const auto & eq_expr : equivalent_sets.getClass(rhs)) ================================================================================ src/Storages/MergeTree/EphemeralLockInZooKeeper.cpp ================================================================================ --- newly covered block 199-200 --- 197 | if (rc == Coordination::Error::ZBADVERSION) 198 | { >> 199 | LOG_TRACE(getLogger("EphemeralLocksInAllPartitions"), "Someone has inserted a block in a new partition while we were creating locks. Retry."); >> 200 | continue; 201 | } 202 | if (rc != Coordination::Error::ZOK) ================================================================================ src/Storages/MergeTree/MergeTreeData.cpp ================================================================================ --- newly covered block 5401-5401 --- 5399 | 5400 | if (!first_exception) >> 5401 | first_exception = std::current_exception(); 5402 | } 5403 | } --- newly covered block 5420-5420 --- 5418 | catch (...) 5419 | { >> 5420 | tryLogCurrentException(__PRETTY_FUNCTION__); 5421 | } 5422 | } ================================================================================ src/AggregateFunctions/AggregateFunctionAny.cpp ================================================================================ --- newly covered block 331-331 --- 329 | void deserialize(AggregateDataPtr place, ReadBuffer & buf, std::optional /* version */, Arena * arena) const override 330 | { >> 331 | this->data(place).read(buf, *serialization, this->result_type, arena); 332 | } 333 | ================================================================================ src/Disks/DiskObjectStorage/MetadataStorages/Local/MetadataStorageFromDiskTransactionOperations.cpp ================================================================================ --- newly covered block 399-399 --- 397 | void MoveFileOperation::undo() 398 | { >> 399 | disk.moveFile(path_to, path_from); 400 | } 401 | ================================================================================ src/Functions/addressToLineWithInlines.cpp ================================================================================ --- newly covered block 28-28 --- 26 | public: 27 | static constexpr auto name = "addressToLineWithInlines"; >> 28 | String getName() const override { return name; } 29 | static FunctionPtr create(ContextPtr context) 30 | { ================================================================================ src/Functions/yesterday.cpp ================================================================================ --- newly covered block 65-65 --- 63 | static constexpr auto name = "yesterday"; 64 | >> 65 | String getName() const override { return name; } 66 | 67 | bool isDeterministic() const override { return false; } ================================================================================ programs/server/Server.cpp ================================================================================ --- newly covered block 1803-1803 --- 1801 | if (stored_binary_hash.empty()) 1802 | { >> 1803 | LOG_WARNING(log, "Integrity check of the executable skipped because the reference checksum could not be read."); 1804 | } 1805 | else ================================================================================ src/AggregateFunctions/AggregateFunctionStudentTTestOneSample.cpp ================================================================================ --- newly covered block 57-57 --- 55 | { 56 | if (argument_types.size() != 1 && argument_types.size() != 2) >> 57 | throw Exception(ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH, "Aggregate function {} requires one or two arguments.", name); 58 | 59 | if (!isNumber(argument_types[0]) || (argument_types.size() == 2 && !isNumber(argument_types[1]))) ================================================================================ src/AggregateFunctions/SingleValueData.cpp ================================================================================ --- newly covered block 1585-1585 --- 1583 | } 1584 | else >> 1585 | writeBinary(false, buf); 1586 | } 1587 | ================================================================================ src/Common/Elf.cpp ================================================================================ --- newly covered block 211-211 --- 209 | if (auto section = findSectionByName(".clickhouse.hash")) 210 | return {section->begin(), section->end()}; >> 211 | return {}; 212 | } 213 | ================================================================================ src/Common/Macros.cpp ================================================================================ --- newly covered block 88-88 --- 86 | size_t end = s.find('}', begin); 87 | if (end == String::npos) >> 88 | throw Exception(ErrorCodes::SYNTAX_ERROR, "Unbalanced {{ and }} in string with macros: '{}'", s); 89 | 90 | String macro_name = s.substr(begin, end - begin); ================================================================================ src/Common/isValidUTF8.cpp ================================================================================ --- newly covered block 122-122 --- 120 | else 121 | { >> 122 | return false; 123 | } 124 | len -= bytes; ================================================================================ src/DataTypes/Serializations/SerializationInfoTuple.cpp ================================================================================ --- newly covered block 77-77 --- 75 | elem->add(*it->second); 76 | else >> 77 | elem->addDefaults(other_info->getData().num_rows); 78 | } 79 | } ================================================================================ src/Functions/array/arrayReverse.cpp ================================================================================ --- newly covered block 41-41 --- 39 | const DataTypeArray * array_type = checkAndGetDataType(arguments[0].get()); 40 | if (!array_type) >> 41 | throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Argument for function {} must be array.", getName()); 42 | 43 | return arguments[0]; ================================================================================ src/Functions/array/emptyArrayToSingle.cpp ================================================================================ --- newly covered block 336-336 --- 334 | const DataTypeArray * array_type = checkAndGetDataType(arguments[0].get()); 335 | if (!array_type) >> 336 | throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Argument for function {} must be array.", getName()); 337 | 338 | return arguments[0]; ================================================================================ src/Functions/date_trunc.cpp ================================================================================ --- newly covered block 137-137 --- 135 | 136 | if (!IntervalKind::tryParseString(datepart_param, datepart_kind)) >> 137 | throw Exception(ErrorCodes::BAD_ARGUMENTS, "{} doesn't look like datepart name in {}", datepart_param, getName()); 138 | 139 | if ((datepart_kind == IntervalKind::Kind::Year) || (datepart_kind == IntervalKind::Kind::Quarter) ================================================================================ src/Functions/fromModifiedJulianDay.cpp ================================================================================ --- newly covered block 199-199 --- 197 | if (!isInteger(arguments[0])) 198 | { >> 199 | throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "The argument of function {} must be integral", getName()); 200 | } 201 | ================================================================================ src/Functions/hasColumnInTable.cpp ================================================================================ --- newly covered block 70-70 --- 68 | { 69 | if (arguments.size() < 3 || arguments.size() > 6) >> 70 | throw Exception(ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH, "Invalid number of arguments for function {}", getName()); 71 | 72 | static const std::string arg_pos_description[] = {"First", "Second", "Third", "Fourth", "Fifth", "Sixth"}; ================================================================================ src/Interpreters/RowRefs.cpp ================================================================================ --- newly covered block 250-250 --- 248 | size_t rows = columns.front()->size(); 249 | if (rows == 0) >> 250 | return 0; 251 | 252 | size_t res = 0; ================================================================================ src/Processors/QueryPlan/Optimizations/optimizeUseNormalProjection.cpp ================================================================================ --- newly covered block 426-426 --- 424 | query.dag = ActionsDAG::merge(std::move(rename_dag), *std::move(query.dag)); 425 | else >> 426 | query.dag = std::move(rename_dag); 427 | } 428 | ================================================================================ src/Processors/Transforms/MergingAggregatedTransform.cpp ================================================================================ --- newly covered block 234-234 --- 232 | addChunk(chunk.detachColumns(), input_rows, agg_info->bucket_num, agg_info->is_overflows); 233 | } >> 234 | else if (chunk.getChunkInfos().get()) 235 | { 236 | addChunk(chunk.detachColumns(), input_rows, -1, false); ================================================================================ src/QueryPipeline/DistributedPlanExecutor.cpp ================================================================================ --- newly covered block 749-749 --- 747 | if (config.has(config_prefix)) 748 | return config.getString(config_prefix + ".endpoint_subpath") + unique_temp_file_path; >> 749 | return unique_temp_file_path; 750 | } 751 | ================================================================================ src/Storages/MergeTree/IMergeTreeDataPart.cpp ================================================================================ --- newly covered block 1844-1844 --- 1842 | } 1843 | } >> 1844 | throw Exception(ErrorCodes::NO_FILE_IN_DATA_PART, "No count.txt in part {}", name); 1845 | } 1846 | ================================================================================ src/Storages/MergeTree/MergeTreePartInfo.cpp ================================================================================ --- newly covered block 318-318 --- 316 | { 317 | if (candidates.empty()) >> 318 | return false; 319 | 320 | std::sort(candidates.begin(), candidates.end()); ================================================================================ src/Storages/MergeTree/MergeTreeReadPoolParallelReplicas.cpp ================================================================================ --- newly covered block 194-194 --- 192 | else 193 | { >> 194 | LOG_DEBUG(log, "Got no response"); 195 | no_more_tasks_available = true; 196 | } ================================================================================ src/Storages/ObjectStorage/StorageObjectStorage.cpp ================================================================================ --- newly covered block 894-894 --- 892 | return schema_cache; 893 | } >> 894 | throw Exception(ErrorCodes::NOT_IMPLEMENTED, "Unsupported storage type: {}", storage_engine_name); 895 | } 896 | ================================================================================ src/Storages/StorageFile.cpp ================================================================================ --- newly covered block 1371-1371 --- 1369 | Int64 lock_timeout = settings[Setting::lock_acquire_timeout].totalSeconds(); 1370 | if (settings[Setting::max_execution_time].totalSeconds() != 0 && settings[Setting::max_execution_time].totalSeconds() < lock_timeout) >> 1371 | lock_timeout = settings[Setting::max_execution_time].totalSeconds(); 1372 | return std::chrono::seconds{lock_timeout}; 1373 | } ================================================================================ src/Storages/System/StorageSystemReplicationQueue.cpp ================================================================================ --- newly covered block 86-86 --- 84 | /// Check if database can contain replicated tables 85 | if (db.second->isExternal()) >> 86 | continue; 87 | 88 | const bool check_access_for_tables = check_access_for_databases && !access->isGranted(AccessType::SHOW_TABLES, db.first); WARNING: Failed to get start time for [Newly Covered Code] - start time and duration won't be set