From 426a51b624e03692ac418654c37b24e19e3f5d88 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Fri, 10 May 2024 04:53:29 +0200 Subject: [PATCH] Useless changes --- .clang-tidy | 1 + base/base/constexpr_helpers.h | 2 +- src/Access/Common/AccessRightsElement.cpp | 2 +- src/Access/Common/AllowedClientHosts.cpp | 10 +- src/Access/IAccessStorage.cpp | 2 +- src/Access/ReplicatedAccessStorage.cpp | 2 +- src/Access/SettingsConstraints.cpp | 4 +- src/Analyzer/Passes/QueryAnalysisPass.cpp | 3 +- src/Analyzer/QueryTreePassManager.cpp | 4 +- src/BridgeHelper/XDBCBridgeHelper.h | 2 +- src/Client/ClientBase.cpp | 4 +- src/Columns/ColumnSparse.cpp | 4 +- src/Common/MortonUtils.h | 4 +- src/Common/NetException.h | 2 +- src/Formats/JSONUtils.cpp | 5 +- src/Functions/FunctionsExternalDictionaries.h | 2 +- .../Access/InterpreterGrantQuery.cpp | 2 +- src/Interpreters/ActionsDAG.cpp | 2 +- src/Interpreters/Aggregator.cpp | 8 +- src/Interpreters/Cache/FileCache.cpp | 2 +- src/Interpreters/Cluster.cpp | 4 +- src/Interpreters/Context.cpp | 16 +-- src/Interpreters/DDLWorker.cpp | 1 - src/Interpreters/DatabaseCatalog.cpp | 2 +- src/Interpreters/ExpressionAnalyzer.cpp | 4 +- src/Interpreters/GinFilter.cpp | 4 + src/Interpreters/GraceHashJoin.cpp | 2 +- src/Interpreters/IExternalLoadable.cpp | 6 +- src/Interpreters/ITokenExtractor.h | 4 +- src/Interpreters/MutationsInterpreter.cpp | 3 +- .../RewriteCountDistinctVisitor.cpp | 1 - .../ServerAsynchronousMetrics.cpp | 2 +- src/Interpreters/TreeOptimizer.cpp | 7 +- src/Parsers/ASTBackupQuery.cpp | 2 +- src/Parsers/Access/ParserGrantQuery.cpp | 2 +- src/Parsers/ParserBackupQuery.cpp | 2 +- src/Parsers/makeASTForLogicalFunction.cpp | 4 +- src/Server/GRPCServer.cpp | 2 +- src/Server/TCPHandler.cpp | 2 +- src/Storages/AlterCommands.cpp | 4 +- src/Storages/Distributed/DistributedSink.cpp | 5 +- src/Storages/MaterializedView/RefreshSet.cpp | 2 +- src/Storages/MergeTree/GinIndexStore.cpp | 4 + src/Storages/MergeTree/IMergeTreeDataPart.cpp | 1 - src/Storages/MergeTree/KeyCondition.cpp | 3 +- src/Storages/MergeTree/LevelMergeSelector.cpp | 118 ------------------ src/Storages/MergeTree/LevelMergeSelector.h | 30 ----- src/Storages/MergeTree/MergeTask.cpp | 2 +- src/Storages/MergeTree/MergeTreeData.cpp | 2 +- src/Storages/MergeTree/MergeTreePartition.cpp | 2 +- .../MergeTree/MergeTreeRangeReader.cpp | 9 +- src/Storages/MergeTree/MergeTreeReadPool.cpp | 3 +- .../ParallelReplicasReadingCoordinator.cpp | 2 +- .../ReplicatedMergeTreeCleanupThread.cpp | 5 +- .../MergeTree/ReplicatedMergeTreeLogEntry.cpp | 2 +- .../MergeTree/ReplicatedMergeTreeSink.cpp | 2 +- src/Storages/PartitionedSink.cpp | 4 + src/Storages/S3Queue/S3QueueFilesMetadata.cpp | 8 +- src/Storages/S3Queue/StorageS3Queue.cpp | 9 +- src/Storages/StorageBuffer.cpp | 2 +- src/Storages/StorageDistributed.cpp | 3 +- src/Storages/StorageFuzzJSON.cpp | 2 +- src/Storages/StorageKeeperMap.cpp | 4 +- src/Storages/StorageLog.cpp | 3 +- src/Storages/StorageMaterializedView.cpp | 2 +- src/Storages/StorageMerge.cpp | 4 +- src/Storages/StorageMongoDB.cpp | 2 +- src/Storages/StorageReplicatedMergeTree.cpp | 30 ++--- src/Storages/StorageS3.cpp | 14 +-- src/Storages/StorageStripeLog.cpp | 3 +- src/Storages/StorageURL.cpp | 3 +- src/Storages/WindowView/StorageWindowView.cpp | 11 +- src/Storages/registerStorages.cpp | 4 - 73 files changed, 132 insertions(+), 309 deletions(-) delete mode 100644 src/Storages/MergeTree/LevelMergeSelector.cpp delete mode 100644 src/Storages/MergeTree/LevelMergeSelector.h diff --git a/.clang-tidy b/.clang-tidy index 19aa5b89141b..d4e326adcc53 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -132,6 +132,7 @@ Checks: [ '-bugprone-crtp-constructor-accessibility', '-bugprone-suspicious-stringview-data-usage', '-bugprone-multi-level-implicit-pointer-conversion', + '-cert-err33-c', '-zircon-*' ] diff --git a/base/base/constexpr_helpers.h b/base/base/constexpr_helpers.h index 2dad106a7a39..13bb5d85a562 100644 --- a/base/base/constexpr_helpers.h +++ b/base/base/constexpr_helpers.h @@ -21,7 +21,7 @@ bool func_wrapper(Func && func, Arg && arg) template constexpr bool static_for_impl(Func && f, std::integer_sequence) { - return (func_wrapper(std::forward(f), std::integral_constant{}) || ...); + return (func_wrapper(f, std::integral_constant{}) || ...); } template diff --git a/src/Access/Common/AccessRightsElement.cpp b/src/Access/Common/AccessRightsElement.cpp index 8d54265ec39a..24ff4e7631b0 100644 --- a/src/Access/Common/AccessRightsElement.cpp +++ b/src/Access/Common/AccessRightsElement.cpp @@ -245,7 +245,7 @@ bool AccessRightsElements::sameOptions() const void AccessRightsElements::eraseNonGrantable() { - boost::range::remove_erase_if(*this, [](AccessRightsElement & element) // NOLINT + std::erase_if(*this, [](AccessRightsElement & element) { element.eraseNonGrantable(); return element.empty(); diff --git a/src/Access/Common/AllowedClientHosts.cpp b/src/Access/Common/AllowedClientHosts.cpp index d5e2200811ed..2875f65579e6 100644 --- a/src/Access/Common/AllowedClientHosts.cpp +++ b/src/Access/Common/AllowedClientHosts.cpp @@ -308,7 +308,7 @@ void AllowedClientHosts::removeAddress(const IPAddress & address) if (address.isLoopback()) local_host = false; else - boost::range::remove_erase(addresses, address); // NOLINT + std::erase(addresses, address); } void AllowedClientHosts::addSubnet(const IPSubnet & subnet) @@ -328,7 +328,7 @@ void AllowedClientHosts::removeSubnet(const IPSubnet & subnet) else if (subnet.isMaskAllBitsOne()) removeAddress(subnet.getPrefix()); else - boost::range::remove_erase(subnets, subnet); // NOLINT + std::erase(subnets, subnet); } void AllowedClientHosts::addName(const String & name) @@ -344,7 +344,7 @@ void AllowedClientHosts::removeName(const String & name) if (boost::iequals(name, "localhost")) local_host = false; else - boost::range::remove_erase(names, name); // NOLINT + std::erase(names, name); } void AllowedClientHosts::addNameRegexp(const String & name_regexp) @@ -364,7 +364,7 @@ void AllowedClientHosts::removeNameRegexp(const String & name_regexp) else if (name_regexp == ".*") any_host = false; else - boost::range::remove_erase(name_regexps, name_regexp); // NOLINT + std::erase(name_regexps, name_regexp); } void AllowedClientHosts::addLikePattern(const String & pattern) @@ -384,7 +384,7 @@ void AllowedClientHosts::removeLikePattern(const String & pattern) else if ((pattern == "%") || (pattern == "0.0.0.0/0") || (pattern == "::/0")) any_host = false; else - boost::range::remove_erase(like_patterns, pattern); // NOLINT + std::erase(like_patterns, pattern); } void AllowedClientHosts::addLocalHost() diff --git a/src/Access/IAccessStorage.cpp b/src/Access/IAccessStorage.cpp index ace8c3b58483..8e51481e415d 100644 --- a/src/Access/IAccessStorage.cpp +++ b/src/Access/IAccessStorage.cpp @@ -583,7 +583,7 @@ void IAccessStorage::backup(BackupEntriesCollector & backup_entries_collector, c throwBackupNotAllowed(); auto entities = readAllWithIDs(type); - boost::range::remove_erase_if(entities, [](const std::pair & x) { return !x.second->isBackupAllowed(); }); // NOLINT + std::erase_if(entities, [](const std::pair & x) { return !x.second->isBackupAllowed(); }); if (entities.empty()) return; diff --git a/src/Access/ReplicatedAccessStorage.cpp b/src/Access/ReplicatedAccessStorage.cpp index 2c4b49de1816..cd9a86a1bd22 100644 --- a/src/Access/ReplicatedAccessStorage.cpp +++ b/src/Access/ReplicatedAccessStorage.cpp @@ -654,7 +654,7 @@ void ReplicatedAccessStorage::backup(BackupEntriesCollector & backup_entries_col throwBackupNotAllowed(); auto entities = readAllWithIDs(type); - boost::range::remove_erase_if(entities, [](const std::pair & x) { return !x.second->isBackupAllowed(); }); // NOLINT + std::erase_if(entities, [](const std::pair & x) { return !x.second->isBackupAllowed(); }); if (entities.empty()) return; diff --git a/src/Access/SettingsConstraints.cpp b/src/Access/SettingsConstraints.cpp index fb596d96a555..a274f6b54f2f 100644 --- a/src/Access/SettingsConstraints.cpp +++ b/src/Access/SettingsConstraints.cpp @@ -190,7 +190,7 @@ void SettingsConstraints::check(const Settings & current_settings, const Setting void SettingsConstraints::check(const Settings & current_settings, SettingsChanges & changes, SettingSource source) const { - boost::range::remove_erase_if( // NOLINT + std::erase_if( changes, [&](SettingChange & change) -> bool { @@ -211,7 +211,7 @@ void SettingsConstraints::check(const MergeTreeSettings & current_settings, cons void SettingsConstraints::clamp(const Settings & current_settings, SettingsChanges & changes, SettingSource source) const { - boost::range::remove_erase_if( // NOLINT + std::erase_if( changes, [&](SettingChange & change) -> bool { diff --git a/src/Analyzer/Passes/QueryAnalysisPass.cpp b/src/Analyzer/Passes/QueryAnalysisPass.cpp index 52efee03ae49..e20ff4ab9097 100644 --- a/src/Analyzer/Passes/QueryAnalysisPass.cpp +++ b/src/Analyzer/Passes/QueryAnalysisPass.cpp @@ -1284,8 +1284,7 @@ class QueryAnalyzer resolved_identifier->formatASTForErrorMessage(), join_node.formatASTForErrorMessage()); } - if (table_side) - result = *table_side; + result = table_side; } return result; } diff --git a/src/Analyzer/QueryTreePassManager.cpp b/src/Analyzer/QueryTreePassManager.cpp index ae812ac78fd6..32d041b577a1 100644 --- a/src/Analyzer/QueryTreePassManager.cpp +++ b/src/Analyzer/QueryTreePassManager.cpp @@ -85,9 +85,9 @@ class ValidationChecker : public InDepthQueryTreeVisitor void visitImpl(QueryTreeNodePtr & node) const { if (auto * column = node->as()) - return visitColumn(column); + visitColumn(column); else if (auto * function = node->as()) - return visitFunction(function); + visitFunction(function); } private: void visitColumn(ColumnNode * column) const diff --git a/src/BridgeHelper/XDBCBridgeHelper.h b/src/BridgeHelper/XDBCBridgeHelper.h index 838be42357a8..b557e12b85bc 100644 --- a/src/BridgeHelper/XDBCBridgeHelper.h +++ b/src/BridgeHelper/XDBCBridgeHelper.h @@ -239,7 +239,7 @@ class XDBCBridgeHelper : public IXDBCBridgeHelper if (character.length() > 1) throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Failed to parse quoting style from '{}' for service {}", character, BridgeHelperMixin::serviceAlias()); - else if (character.length() == 0) + else if (character.empty()) quote_style = IdentifierQuotingStyle::None; else if (character[0] == '`') quote_style = IdentifierQuotingStyle::Backticks; diff --git a/src/Client/ClientBase.cpp b/src/Client/ClientBase.cpp index 402195ca944c..b3544264ff0f 100644 --- a/src/Client/ClientBase.cpp +++ b/src/Client/ClientBase.cpp @@ -273,7 +273,7 @@ class QueryInterruptHandler : private boost::noncopyable static void start(Int32 signals_before_stop = 1) { exit_after_signals.store(signals_before_stop); } /// Set value not greater then 0 to mark the query as stopped. - static void stop() { return exit_after_signals.store(0); } + static void stop() { exit_after_signals.store(0); } /// Return true if the query was stopped. /// Query was stopped if it received at least "signals_before_stop" interrupt signals. @@ -2812,7 +2812,7 @@ class OptionsAliasParser */ std::pair operator()(const std::string& token) const { - if (token.find("--") != 0) + if (token.starts_with("--")) return {}; std::string arg = token.substr(2); diff --git a/src/Columns/ColumnSparse.cpp b/src/Columns/ColumnSparse.cpp index 3c08ebbf8b45..3a63d2bffc5c 100644 --- a/src/Columns/ColumnSparse.cpp +++ b/src/Columns/ColumnSparse.cpp @@ -577,7 +577,7 @@ void ColumnSparse::getPermutation(IColumn::PermutationSortDirection direction, I return; } - return getPermutationImpl(direction, stability, limit, null_direction_hint, res, nullptr); + getPermutationImpl(direction, stability, limit, null_direction_hint, res, nullptr); } void ColumnSparse::updatePermutation(IColumn::PermutationSortDirection direction, IColumn::PermutationSortStability stability, @@ -590,7 +590,7 @@ void ColumnSparse::updatePermutation(IColumn::PermutationSortDirection direction void ColumnSparse::getPermutationWithCollation(const Collator & collator, IColumn::PermutationSortDirection direction, IColumn::PermutationSortStability stability, size_t limit, int null_direction_hint, Permutation & res) const { - return getPermutationImpl(direction, stability, limit, null_direction_hint, res, &collator); + getPermutationImpl(direction, stability, limit, null_direction_hint, res, &collator); } void ColumnSparse::updatePermutationWithCollation( diff --git a/src/Common/MortonUtils.h b/src/Common/MortonUtils.h index c55b36c63542..8af9de68b651 100644 --- a/src/Common/MortonUtils.h +++ b/src/Common/MortonUtils.h @@ -100,9 +100,9 @@ void intervalBinaryPartition(UInt64 first, UInt64 last, F && callback) chassert(split >= first); chassert(split <= last); - intervalBinaryPartition(first, split, std::forward(callback)); + intervalBinaryPartition(first, split, callback); if (split < last) - intervalBinaryPartition(split + 1, last, std::forward(callback)); + intervalBinaryPartition(split + 1, last, callback); } diff --git a/src/Common/NetException.h b/src/Common/NetException.h index 09c51949501c..d64788ac3c65 100644 --- a/src/Common/NetException.h +++ b/src/Common/NetException.h @@ -11,7 +11,7 @@ class NetException : public Exception public: template requires std::is_convertible_v - NetException(int code, T && message) : Exception(std::forward(message), code) + NetException(int code, T && message) : Exception(message, code) { message_format_string = tryGetStaticFormatString(message); } diff --git a/src/Formats/JSONUtils.cpp b/src/Formats/JSONUtils.cpp index acea5e7b7480..4eb652a5c02d 100644 --- a/src/Formats/JSONUtils.cpp +++ b/src/Formats/JSONUtils.cpp @@ -192,12 +192,12 @@ namespace JSONUtils void skipRowForJSONEachRow(ReadBuffer & in) { - return skipRowForJSONEachRowImpl<'{', '}'>(in); + skipRowForJSONEachRowImpl<'{', '}'>(in); } void skipRowForJSONCompactEachRow(ReadBuffer & in) { - return skipRowForJSONEachRowImpl<'[', ']'>(in); + skipRowForJSONEachRowImpl<'[', ']'>(in); } NamesAndTypesList readRowAndGetNamesAndDataTypesForJSONEachRow(ReadBuffer & in, const FormatSettings & settings, JSONInferenceInfo * inference_info) @@ -235,7 +235,6 @@ namespace JSONUtils skipWhitespaceIfAny(in); bool first = true; DataTypes types; - String field; while (!in.eof() && *in.position() != ']') { if (!first) diff --git a/src/Functions/FunctionsExternalDictionaries.h b/src/Functions/FunctionsExternalDictionaries.h index 6cdac667e620..adf455aa3bc3 100644 --- a/src/Functions/FunctionsExternalDictionaries.h +++ b/src/Functions/FunctionsExternalDictionaries.h @@ -1356,7 +1356,7 @@ class FunctionDictGetDescendantsOverloadResolverImpl final : public IFunctionOve "Illegal type of third argument of function {}. Expected const unsigned integer.", getName()); - auto value = static_cast(arguments[2].column->getInt(0)); + Int64 value = arguments[2].column->getInt(0); if (value < 0) throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Illegal type of third argument of function {}. Expected const unsigned integer.", diff --git a/src/Interpreters/Access/InterpreterGrantQuery.cpp b/src/Interpreters/Access/InterpreterGrantQuery.cpp index ed06b1d0fc6c..a137404a6699 100644 --- a/src/Interpreters/Access/InterpreterGrantQuery.cpp +++ b/src/Interpreters/Access/InterpreterGrantQuery.cpp @@ -255,7 +255,7 @@ namespace if (roles_to_revoke.all) boost::range::set_difference(all_granted_roles_set, roles_to_revoke.except_ids, std::back_inserter(roles_to_revoke_ids)); else - boost::range::remove_erase_if(roles_to_revoke_ids, [&](const UUID & id) { return !all_granted_roles_set.count(id); }); + std::erase_if(roles_to_revoke_ids, [&](const UUID & id) { return !all_granted_roles_set.count(id); }); roles_to_revoke = roles_to_revoke_ids; current_user_access.checkAdminOption(roles_to_revoke_ids); diff --git a/src/Interpreters/ActionsDAG.cpp b/src/Interpreters/ActionsDAG.cpp index 30eb908330b2..73e046879818 100644 --- a/src/Interpreters/ActionsDAG.cpp +++ b/src/Interpreters/ActionsDAG.cpp @@ -589,7 +589,7 @@ void ActionsDAG::removeUnusedActions(const std::unordered_set & us } } - nodes.remove_if([&](const Node & node) { return !visited_nodes.contains(&node); }); + std::erase_if(nodes, [&](const Node & node) { return !visited_nodes.contains(&node); }); std::erase_if(inputs, [&](const Node * node) { return !visited_nodes.contains(node); }); } diff --git a/src/Interpreters/Aggregator.cpp b/src/Interpreters/Aggregator.cpp index 2db07bb77f66..45b43ae2d3a1 100644 --- a/src/Interpreters/Aggregator.cpp +++ b/src/Interpreters/Aggregator.cpp @@ -1803,10 +1803,8 @@ void Aggregator::writeToTemporaryFileImpl( size_t block_size_rows = block.rows(); size_t block_size_bytes = block.bytes(); - if (block_size_rows > max_temporary_block_size_rows) - max_temporary_block_size_rows = block_size_rows; - if (block_size_bytes > max_temporary_block_size_bytes) - max_temporary_block_size_bytes = block_size_bytes; + max_temporary_block_size_rows = std::max(block_size_rows, max_temporary_block_size_rows); + max_temporary_block_size_bytes = std::max(block_size_bytes, max_temporary_block_size_bytes); }; for (UInt32 bucket = 0; bucket < Method::Data::NUM_BUCKETS; ++bucket) @@ -3160,7 +3158,7 @@ void Aggregator::mergeBlocks(BucketToBlocks bucket_to_blocks, AggregatedDataVari result.aggregates_pools.push_back(std::make_shared()); Arena * aggregates_pool = result.aggregates_pools.back().get(); - auto task = [group = CurrentThread::getGroup(), bucket, &merge_bucket, aggregates_pool]{ return merge_bucket(bucket, aggregates_pool, group); }; + auto task = [group = CurrentThread::getGroup(), bucket, &merge_bucket, aggregates_pool]{ merge_bucket(bucket, aggregates_pool, group); }; if (thread_pool) thread_pool->scheduleOrThrowOnError(task); diff --git a/src/Interpreters/Cache/FileCache.cpp b/src/Interpreters/Cache/FileCache.cpp index 1ded737941cb..0d33e39ffa31 100644 --- a/src/Interpreters/Cache/FileCache.cpp +++ b/src/Interpreters/Cache/FileCache.cpp @@ -1074,7 +1074,7 @@ void FileCache::freeSpaceRatioKeepingThreadFunc() void FileCache::iterate(IterateFunc && func, const UserID & user_id) { - return metadata.iterate([&](const LockedKey & locked_key) + metadata.iterate([&](const LockedKey & locked_key) { for (const auto & file_segment_metadata : locked_key) func(FileSegment::getInfo(file_segment_metadata.second->file_segment)); diff --git a/src/Interpreters/Cluster.cpp b/src/Interpreters/Cluster.cpp index b15f0e4b94ed..ec6283df649f 100644 --- a/src/Interpreters/Cluster.cpp +++ b/src/Interpreters/Cluster.cpp @@ -392,10 +392,10 @@ Cluster::Cluster(const Poco::Util::AbstractConfiguration & config, config_prefix += "."; secret = config.getString(config_prefix + "secret", ""); - boost::range::remove_erase(config_keys, "secret"); + std::erase(config_keys, "secret"); allow_distributed_ddl_queries = config.getBool(config_prefix + "allow_distributed_ddl_queries", true); - boost::range::remove_erase(config_keys, "allow_distributed_ddl_queries"); + std::erase(config_keys, "allow_distributed_ddl_queries"); if (config_keys.empty()) throw Exception(ErrorCodes::SHARD_HAS_NO_CONNECTIONS, "No cluster elements (shard, node) specified in config at path {}", config_prefix); diff --git a/src/Interpreters/Context.cpp b/src/Interpreters/Context.cpp index df49b822aaa6..98d6031edca8 100644 --- a/src/Interpreters/Context.cpp +++ b/src/Interpreters/Context.cpp @@ -1394,18 +1394,18 @@ void Context::checkAccessImpl(const Args &... args) const return getAccess()->checkAccess(args...); } -void Context::checkAccess(const AccessFlags & flags) const { return checkAccessImpl(flags); } -void Context::checkAccess(const AccessFlags & flags, std::string_view database) const { return checkAccessImpl(flags, database); } -void Context::checkAccess(const AccessFlags & flags, std::string_view database, std::string_view table) const { return checkAccessImpl(flags, database, table); } -void Context::checkAccess(const AccessFlags & flags, std::string_view database, std::string_view table, std::string_view column) const { return checkAccessImpl(flags, database, table, column); } -void Context::checkAccess(const AccessFlags & flags, std::string_view database, std::string_view table, const std::vector & columns) const { return checkAccessImpl(flags, database, table, columns); } -void Context::checkAccess(const AccessFlags & flags, std::string_view database, std::string_view table, const Strings & columns) const { return checkAccessImpl(flags, database, table, columns); } +void Context::checkAccess(const AccessFlags & flags) const { checkAccessImpl(flags); } +void Context::checkAccess(const AccessFlags & flags, std::string_view database) const { checkAccessImpl(flags, database); } +void Context::checkAccess(const AccessFlags & flags, std::string_view database, std::string_view table) const { checkAccessImpl(flags, database, table); } +void Context::checkAccess(const AccessFlags & flags, std::string_view database, std::string_view table, std::string_view column) const { checkAccessImpl(flags, database, table, column); } +void Context::checkAccess(const AccessFlags & flags, std::string_view database, std::string_view table, const std::vector & columns) const { checkAccessImpl(flags, database, table, columns); } +void Context::checkAccess(const AccessFlags & flags, std::string_view database, std::string_view table, const Strings & columns) const { checkAccessImpl(flags, database, table, columns); } void Context::checkAccess(const AccessFlags & flags, const StorageID & table_id) const { checkAccessImpl(flags, table_id.getDatabaseName(), table_id.getTableName()); } void Context::checkAccess(const AccessFlags & flags, const StorageID & table_id, std::string_view column) const { checkAccessImpl(flags, table_id.getDatabaseName(), table_id.getTableName(), column); } void Context::checkAccess(const AccessFlags & flags, const StorageID & table_id, const std::vector & columns) const { checkAccessImpl(flags, table_id.getDatabaseName(), table_id.getTableName(), columns); } void Context::checkAccess(const AccessFlags & flags, const StorageID & table_id, const Strings & columns) const { checkAccessImpl(flags, table_id.getDatabaseName(), table_id.getTableName(), columns); } -void Context::checkAccess(const AccessRightsElement & element) const { return checkAccessImpl(element); } -void Context::checkAccess(const AccessRightsElements & elements) const { return checkAccessImpl(elements); } +void Context::checkAccess(const AccessRightsElement & element) const { checkAccessImpl(element); } +void Context::checkAccess(const AccessRightsElements & elements) const { checkAccessImpl(elements); } std::shared_ptr Context::getAccess() const { diff --git a/src/Interpreters/DDLWorker.cpp b/src/Interpreters/DDLWorker.cpp index 0082f9876ef2..28701aa1eafb 100644 --- a/src/Interpreters/DDLWorker.cpp +++ b/src/Interpreters/DDLWorker.cpp @@ -922,7 +922,6 @@ void DDLWorker::cleanupQueue(Int64, const ZooKeeperPtr & zookeeper) String node_path = fs::path(queue_dir) / node_name; Coordination::Stat stat; - String dummy; try { diff --git a/src/Interpreters/DatabaseCatalog.cpp b/src/Interpreters/DatabaseCatalog.cpp index a9b0e7e7a984..0f4c8cc26a6f 100644 --- a/src/Interpreters/DatabaseCatalog.cpp +++ b/src/Interpreters/DatabaseCatalog.cpp @@ -1438,7 +1438,7 @@ void DatabaseCatalog::checkTableCanBeRemovedOrRenamed( if (!check_referential_dependencies && !check_loading_dependencies) return; std::lock_guard lock{databases_mutex}; - return checkTableCanBeRemovedOrRenamedUnlocked(table_id, check_referential_dependencies, check_loading_dependencies, is_drop_database); + checkTableCanBeRemovedOrRenamedUnlocked(table_id, check_referential_dependencies, check_loading_dependencies, is_drop_database); } void DatabaseCatalog::checkTableCanBeRemovedOrRenamedUnlocked( diff --git a/src/Interpreters/ExpressionAnalyzer.cpp b/src/Interpreters/ExpressionAnalyzer.cpp index fefbd67bfc17..395218f834f6 100644 --- a/src/Interpreters/ExpressionAnalyzer.cpp +++ b/src/Interpreters/ExpressionAnalyzer.cpp @@ -336,7 +336,7 @@ void ExpressionAnalyzer::analyzeAggregation(ActionsDAGPtr & temp_actions) /// But don't remove last key column if no aggregate functions, otherwise aggregation will not work. if (!aggregate_descriptions.empty() || group_size > 1) { - if (j + 1 < static_cast(group_size)) + if (j + 1 < group_size) group_elements_ast[j] = std::move(group_elements_ast.back()); group_elements_ast.pop_back(); @@ -390,7 +390,7 @@ void ExpressionAnalyzer::analyzeAggregation(ActionsDAGPtr & temp_actions) /// But don't remove last key column if no aggregate functions, otherwise aggregation will not work. if (!aggregate_descriptions.empty() || size > 1) { - if (i + 1 < static_cast(size)) + if (i + 1 < size) group_asts[i] = std::move(group_asts.back()); group_asts.pop_back(); diff --git a/src/Interpreters/GinFilter.cpp b/src/Interpreters/GinFilter.cpp index b9b5697d2ee0..4ad0c4098d81 100644 --- a/src/Interpreters/GinFilter.cpp +++ b/src/Interpreters/GinFilter.cpp @@ -1,3 +1,5 @@ +// NOLINTBEGIN(clang-analyzer-optin.core.EnumCastOutOfRange) + #include #include #include @@ -174,3 +176,5 @@ bool GinFilter::match(const GinPostingsCache & postings_cache) const } } + +// NOLINTEND(clang-analyzer-optin.core.EnumCastOutOfRange) diff --git a/src/Interpreters/GraceHashJoin.cpp b/src/Interpreters/GraceHashJoin.cpp index 97ff84b6fb68..4dd2f89b90ad 100644 --- a/src/Interpreters/GraceHashJoin.cpp +++ b/src/Interpreters/GraceHashJoin.cpp @@ -415,7 +415,7 @@ void GraceHashJoin::addBuckets(const size_t bucket_count) void GraceHashJoin::checkTypesOfKeys(const Block & block) const { chassert(hash_join); - return hash_join->checkTypesOfKeys(block); + hash_join->checkTypesOfKeys(block); } void GraceHashJoin::initialize(const Block & sample_block) diff --git a/src/Interpreters/IExternalLoadable.cpp b/src/Interpreters/IExternalLoadable.cpp index 5c2df0921795..484dfbe2d97a 100644 --- a/src/Interpreters/IExternalLoadable.cpp +++ b/src/Interpreters/IExternalLoadable.cpp @@ -22,12 +22,8 @@ UInt64 calculateDurationWithBackoff(pcg64 & rnd_engine, size_t error_count) constexpr UInt64 backoff_initial_sec = 5; constexpr UInt64 backoff_max_sec = 10 * 60; /// 10 minutes - if (error_count < 1) - error_count = 1; - /// max seconds is 600 and 2 ** 10 == 1024 - if (error_count > 11) - error_count = 11; + error_count = std::clamp(error_count, 1, 11); std::uniform_int_distribution distribution(0, static_cast(std::exp2(error_count - 1))); return std::min(backoff_max_sec, backoff_initial_sec + distribution(rnd_engine)); diff --git a/src/Interpreters/ITokenExtractor.h b/src/Interpreters/ITokenExtractor.h index fdcc9880bffb..2423ef12311a 100644 --- a/src/Interpreters/ITokenExtractor.h +++ b/src/Interpreters/ITokenExtractor.h @@ -32,7 +32,7 @@ struct ITokenExtractor virtual void stringPaddedToBloomFilter(const char * data, size_t length, BloomFilter & bloom_filter) const { - return stringToBloomFilter(data, length, bloom_filter); + stringToBloomFilter(data, length, bloom_filter); } virtual void stringLikeToBloomFilter(const char * data, size_t length, BloomFilter & bloom_filter) const = 0; @@ -41,7 +41,7 @@ struct ITokenExtractor virtual void stringPaddedToGinFilter(const char * data, size_t length, GinFilter & gin_filter) const { - return stringToGinFilter(data, length, gin_filter); + stringToGinFilter(data, length, gin_filter); } virtual void stringLikeToGinFilter(const char * data, size_t length, GinFilter & gin_filter) const = 0; diff --git a/src/Interpreters/MutationsInterpreter.cpp b/src/Interpreters/MutationsInterpreter.cpp index 7adc6d424fa2..4f6c1c5f18b6 100644 --- a/src/Interpreters/MutationsInterpreter.cpp +++ b/src/Interpreters/MutationsInterpreter.cpp @@ -1417,8 +1417,7 @@ bool MutationsInterpreter::isAffectingAllColumns() const void MutationsInterpreter::MutationKind::set(const MutationKindEnum & kind) { - if (mutation_kind < kind) - mutation_kind = kind; + mutation_kind = std::max(mutation_kind, kind); } } diff --git a/src/Interpreters/RewriteCountDistinctVisitor.cpp b/src/Interpreters/RewriteCountDistinctVisitor.cpp index cf28d8abb872..2a898f8789bd 100644 --- a/src/Interpreters/RewriteCountDistinctVisitor.cpp +++ b/src/Interpreters/RewriteCountDistinctVisitor.cpp @@ -42,7 +42,6 @@ void RewriteCountDistinctFunctionMatcher::visit(ASTPtr & ast, Data & /*data*/) auto cloned_select_query = selectq->clone(); expr_list->children[0] = makeASTFunction("count"); - auto table_name = table_expr->database_and_table_name->as()->name(); table_expr->children.clear(); table_expr->children.emplace_back(std::make_shared()); table_expr->database_and_table_name = nullptr; diff --git a/src/Interpreters/ServerAsynchronousMetrics.cpp b/src/Interpreters/ServerAsynchronousMetrics.cpp index 4f8b03a5eaa9..315202cc01de 100644 --- a/src/Interpreters/ServerAsynchronousMetrics.cpp +++ b/src/Interpreters/ServerAsynchronousMetrics.cpp @@ -251,7 +251,7 @@ void ServerAsynchronousMetrics::updateImpl(TimePoint update_time, TimePoint curr size_t max_part_count_for_partition = 0; size_t number_of_databases = 0; - for (auto [db_name, _] : databases) + for (const auto & [db_name, _] : databases) if (db_name != DatabaseCatalog::TEMPORARY_DATABASE) ++number_of_databases; /// filter out the internal database for temporary tables, system table "system.databases" behaves the same way diff --git a/src/Interpreters/TreeOptimizer.cpp b/src/Interpreters/TreeOptimizer.cpp index 2d0c9ba1a37c..bbd47933ec59 100644 --- a/src/Interpreters/TreeOptimizer.cpp +++ b/src/Interpreters/TreeOptimizer.cpp @@ -174,10 +174,9 @@ void optimizeGroupBy(ASTSelectQuery * select_query, ContextPtr context) const auto & erase_position = group_exprs.begin() + i; group_exprs.erase(erase_position); const auto & insert_position = group_exprs.begin() + i; - std::remove_copy_if( - std::begin(args_ast->children), std::end(args_ast->children), - std::inserter(group_exprs, insert_position), is_literal - ); + (void)std::remove_copy_if( + std::begin(args_ast->children), std::end(args_ast->children), + std::inserter(group_exprs, insert_position), is_literal); } else if (is_literal(group_exprs[i])) { diff --git a/src/Parsers/ASTBackupQuery.cpp b/src/Parsers/ASTBackupQuery.cpp index bc1dbfc961de..5a5cb97fa5f0 100644 --- a/src/Parsers/ASTBackupQuery.cpp +++ b/src/Parsers/ASTBackupQuery.cpp @@ -180,7 +180,7 @@ namespace if (settings) changes = assert_cast(settings.get())->changes; - boost::remove_erase_if( // NOLINT + std::erase_if( changes, [](const SettingChange & change) { diff --git a/src/Parsers/Access/ParserGrantQuery.cpp b/src/Parsers/Access/ParserGrantQuery.cpp index 42af7d1cda40..e79d14f860a0 100644 --- a/src/Parsers/Access/ParserGrantQuery.cpp +++ b/src/Parsers/Access/ParserGrantQuery.cpp @@ -219,7 +219,7 @@ namespace void throwIfNotGrantable(AccessRightsElements & elements) { - boost::range::remove_erase_if(elements, [](AccessRightsElement & element) // NOLINT + std::erase_if(elements, [](AccessRightsElement & element) { if (element.empty()) return true; diff --git a/src/Parsers/ParserBackupQuery.cpp b/src/Parsers/ParserBackupQuery.cpp index 6a86edd7e2f9..6d2f4d8311d2 100644 --- a/src/Parsers/ParserBackupQuery.cpp +++ b/src/Parsers/ParserBackupQuery.cpp @@ -304,7 +304,7 @@ namespace changes = assert_cast(settings.get())->changes; } - boost::remove_erase_if(changes, [](const SettingChange & change) { return change.name == "async"; }); // NOLINT + std::erase_if(changes, [](const SettingChange & change) { return change.name == "async"; }); // NOLINT changes.emplace_back("async", async); auto new_settings = std::make_shared(); diff --git a/src/Parsers/makeASTForLogicalFunction.cpp b/src/Parsers/makeASTForLogicalFunction.cpp index 416441f210b0..0d8b1f8c0dc2 100644 --- a/src/Parsers/makeASTForLogicalFunction.cpp +++ b/src/Parsers/makeASTForLogicalFunction.cpp @@ -12,7 +12,7 @@ namespace DB ASTPtr makeASTForLogicalAnd(ASTs && arguments) { bool partial_result = true; - boost::range::remove_erase_if(arguments, [&](const ASTPtr & argument) -> bool // NOLINT + std::erase_if(arguments, [&](const ASTPtr & argument) { bool b; if (!tryGetLiteralBool(argument.get(), b)) @@ -41,7 +41,7 @@ ASTPtr makeASTForLogicalAnd(ASTs && arguments) ASTPtr makeASTForLogicalOr(ASTs && arguments) { bool partial_result = false; - boost::range::remove_erase_if(arguments, [&](const ASTPtr & argument) -> bool // NOLINT + std::erase_if(arguments, [&](const ASTPtr & argument) { bool b; if (!tryGetLiteralBool(argument.get(), b)) diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index fb21f46301d3..0b8692a67515 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -596,7 +596,7 @@ namespace std::tie(new_pos, new_size) = callback(); if (!new_size) return false; - BufferBase::set(static_cast(const_cast(new_pos)), new_size, 0); + BufferBase::set(static_cast(const_cast(new_pos)), new_size, 0); return true; } diff --git a/src/Server/TCPHandler.cpp b/src/Server/TCPHandler.cpp index aff9906d2892..e1ddd89322f7 100644 --- a/src/Server/TCPHandler.cpp +++ b/src/Server/TCPHandler.cpp @@ -1872,7 +1872,7 @@ void TCPHandler::receiveQuery() if (state.part_uuids_to_ignore) query_context->getIgnoredPartUUIDs()->add(*state.part_uuids_to_ignore); - query_context->setProgressCallback([this] (const Progress & value) { return this->updateProgress(value); }); + query_context->setProgressCallback([this] (const Progress & value) { this->updateProgress(value); }); query_context->setFileProgressCallback([this](const FileProgress & value) { this->updateProgress(Progress(value)); }); /// diff --git a/src/Storages/AlterCommands.cpp b/src/Storages/AlterCommands.cpp index 6f9161c0c0a4..ef6c5f7362c2 100644 --- a/src/Storages/AlterCommands.cpp +++ b/src/Storages/AlterCommands.cpp @@ -1224,7 +1224,7 @@ void AlterCommands::prepare(const StorageInMemoryMetadata & metadata) if (has_column) { - auto column_from_table = columns.get(command.column_name); + const auto & column_from_table = columns.get(command.column_name); if (command.data_type && !command.default_expression && column_from_table.default_desc.expression) { command.default_kind = column_from_table.default_desc.kind; @@ -1566,7 +1566,7 @@ void AlterCommands::validate(const StoragePtr & table, ContextPtr context) const } /// if we change data type for column with default else if (all_columns.has(column_name) && command.data_type) { - auto column_in_table = all_columns.get(column_name); + const auto & column_in_table = all_columns.get(column_name); /// Column doesn't have a default, nothing to check if (!column_in_table.default_desc.expression) continue; diff --git a/src/Storages/Distributed/DistributedSink.cpp b/src/Storages/Distributed/DistributedSink.cpp index b89a8d7bcfd5..1906aa74c97b 100644 --- a/src/Storages/Distributed/DistributedSink.cpp +++ b/src/Storages/Distributed/DistributedSink.cpp @@ -173,7 +173,10 @@ void DistributedSink::writeAsync(const Block & block) else { if (storage.getShardingKeyExpr() && (cluster->getShardsInfo().size() > 1)) - return writeSplitAsync(block); + { + writeSplitAsync(block); + return; + } writeAsyncImpl(block); ++inserted_blocks; diff --git a/src/Storages/MaterializedView/RefreshSet.cpp b/src/Storages/MaterializedView/RefreshSet.cpp index 0125b958a414..a3ef327dc244 100644 --- a/src/Storages/MaterializedView/RefreshSet.cpp +++ b/src/Storages/MaterializedView/RefreshSet.cpp @@ -116,7 +116,7 @@ RefreshSet::InfoContainer RefreshSet::getInfo() const lock.unlock(); InfoContainer res; - for (auto [id, task] : tasks_copy) + for (const auto & [id, task] : tasks_copy) res.push_back(task->getInfo()); return res; } diff --git a/src/Storages/MergeTree/GinIndexStore.cpp b/src/Storages/MergeTree/GinIndexStore.cpp index 9e24d9f018dc..6e0273701ad0 100644 --- a/src/Storages/MergeTree/GinIndexStore.cpp +++ b/src/Storages/MergeTree/GinIndexStore.cpp @@ -1,3 +1,5 @@ +// NOLINTBEGIN(clang-analyzer-optin.core.EnumCastOutOfRange) + #include #include #include @@ -504,3 +506,5 @@ void GinIndexStoreFactory::remove(const String & part_path) } } + +// NOLINTEND(clang-analyzer-optin.core.EnumCastOutOfRange) diff --git a/src/Storages/MergeTree/IMergeTreeDataPart.cpp b/src/Storages/MergeTree/IMergeTreeDataPart.cpp index 8124a4e516d6..34bab967c7f9 100644 --- a/src/Storages/MergeTree/IMergeTreeDataPart.cpp +++ b/src/Storages/MergeTree/IMergeTreeDataPart.cpp @@ -1938,7 +1938,6 @@ void IMergeTreeDataPart::remove() std::optional IMergeTreeDataPart::getRelativePathForPrefix(const String & prefix, bool detached, bool broken) const { assert(!broken || detached); - String res; /** If you need to detach a part, and directory into which we want to rename it already exists, * we will rename to the directory with the name to which the suffix is added in the form of "_tryN". diff --git a/src/Storages/MergeTree/KeyCondition.cpp b/src/Storages/MergeTree/KeyCondition.cpp index 16453e354258..849240502e4e 100644 --- a/src/Storages/MergeTree/KeyCondition.cpp +++ b/src/Storages/MergeTree/KeyCondition.cpp @@ -1185,8 +1185,7 @@ bool KeyCondition::tryPrepareSetIndex( { indexes_mapping.push_back(index_mapping); data_types.push_back(data_type); - if (out_key_column_num < index_mapping.key_index) - out_key_column_num = index_mapping.key_index; + out_key_column_num = std::max(out_key_column_num, index_mapping.key_index); } }; diff --git a/src/Storages/MergeTree/LevelMergeSelector.cpp b/src/Storages/MergeTree/LevelMergeSelector.cpp deleted file mode 100644 index 67495c1372d4..000000000000 --- a/src/Storages/MergeTree/LevelMergeSelector.cpp +++ /dev/null @@ -1,118 +0,0 @@ -#include - -#include - - -namespace DB -{ - -namespace -{ - -/** Estimates best set of parts to merge within passed alternatives. - * It is selected simply: by minimal size. - */ -struct Estimator -{ - using Iterator = LevelMergeSelector::PartsRange::const_iterator; - - void consider(Iterator begin, Iterator end, size_t sum_size) - { - double current_score = sum_size; - - if (min_score == 0.0 || current_score < min_score) - { - min_score = current_score; - best_begin = begin; - best_end = end; - } - } - - LevelMergeSelector::PartsRange getBest() const - { - return LevelMergeSelector::PartsRange(best_begin, best_end); - } - - double min_score = 0.0; - Iterator best_begin {}; - Iterator best_end {}; -}; - - -void selectWithinPartition( - const LevelMergeSelector::PartsRange & parts, - const size_t max_total_size_to_merge, - Estimator & estimator, - const LevelMergeSelector::Settings & settings) -{ - size_t parts_size = parts.size(); - if (parts_size < settings.parts_to_merge) - return; - - /// To easily calculate sum size in any range. - size_t parts_count = parts.size(); - size_t prefix_sum = 0; - std::vector prefix_sums(parts.size() + 1); - - for (size_t i = 0; i < parts_count; ++i) - { - prefix_sum += parts[i].size; - prefix_sums[i + 1] = prefix_sum; - } - - /// Use "corrected" level. It will be non-decreasing while traversing parts right to left. - /// This is done for compatibility with another algorithms. - size_t corrected_level_at_left = 0; - size_t corrected_level_at_right = 0; - - size_t range_end = parts_size; - size_t range_begin = range_end - settings.parts_to_merge; - - for (size_t i = range_begin; i < range_end; ++i) - if (corrected_level_at_left < parts[i].level) - corrected_level_at_left = parts[i].level; - - while (true) - { - if (corrected_level_at_left < parts[range_begin].level) - corrected_level_at_left = parts[range_begin].level; - - if (corrected_level_at_right < parts[range_end - 1].level) - corrected_level_at_right = parts[range_end - 1].level; - - /// Leftmost range of same corrected level. - if (corrected_level_at_left == corrected_level_at_right - && (range_begin == 0 || parts[range_begin - 1].level > corrected_level_at_left)) - { - size_t range_size = prefix_sums[range_end] - prefix_sums[range_begin]; - - if (range_size <= max_total_size_to_merge) - estimator.consider(parts.begin() + range_begin, parts.begin() + range_end, range_size); - - break; /// Minimum level is enough. - } - - if (range_begin == 0) - break; - - --range_begin; - --range_end; - } -} - -} - - -LevelMergeSelector::PartsRange LevelMergeSelector::select( - const PartsRanges & parts_ranges, - size_t max_total_size_to_merge) -{ - Estimator estimator; - - for (const auto & parts_range: parts_ranges) - selectWithinPartition(parts_range, max_total_size_to_merge, estimator, settings); - - return estimator.getBest(); -} - -} diff --git a/src/Storages/MergeTree/LevelMergeSelector.h b/src/Storages/MergeTree/LevelMergeSelector.h deleted file mode 100644 index f4080c379c46..000000000000 --- a/src/Storages/MergeTree/LevelMergeSelector.h +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once - -#include - - -namespace DB -{ - -/** Select parts to merge based on its level. - * Select first range of parts of parts_to_merge length with minimum level. - */ -class LevelMergeSelector : public IMergeSelector -{ -public: - struct Settings - { - size_t parts_to_merge = 10; - }; - - explicit LevelMergeSelector(const Settings & settings_) : settings(settings_) {} - - PartsRange select( - const PartsRanges & parts_ranges, - size_t max_total_size_to_merge) override; - -private: - const Settings settings; -}; - -} diff --git a/src/Storages/MergeTree/MergeTask.cpp b/src/Storages/MergeTree/MergeTask.cpp index 34e17e40a74e..a9109832521c 100644 --- a/src/Storages/MergeTree/MergeTask.cpp +++ b/src/Storages/MergeTree/MergeTask.cpp @@ -543,7 +543,7 @@ bool MergeTask::VerticalMergeStage::prepareVerticalMergeForAllColumns() const } /// Move ownership from std::unique_ptr to std::unique_ptr for CompressedReadBufferFromFile. /// First, release ownership from unique_ptr to base type. - reread_buf.release(); /// NOLINT(bugprone-unused-return-value): we already have the pointer value in `reread_buffer_raw` + reread_buf.release(); /// NOLINT(bugprone-unused-return-value,hicpp-ignored-remove-result): we already have the pointer value in `reread_buffer_raw` /// Then, move ownership to unique_ptr to concrete type. std::unique_ptr reread_buffer_from_file(reread_buffer_raw); /// CompressedReadBufferFromFile expects std::unique_ptr as argument. diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index 052e8706db09..cf3e81450dd3 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -5484,7 +5484,7 @@ void MergeTreeData::restorePartsFromBackup(RestorerFromBackup & restorer, const auto backup = restorer.getBackup(); Strings part_names = backup->listFiles(data_path_in_backup, /*recursive*/ false); - boost::remove_erase(part_names, "mutations"); + std::erase(part_names, "mutations"); bool restore_broken_parts_as_detached = restorer.getRestoreSettings().restore_broken_parts_as_detached; diff --git a/src/Storages/MergeTree/MergeTreePartition.cpp b/src/Storages/MergeTree/MergeTreePartition.cpp index ddeaf69136a3..cd18e8d5a280 100644 --- a/src/Storages/MergeTree/MergeTreePartition.cpp +++ b/src/Storages/MergeTree/MergeTreePartition.cpp @@ -94,7 +94,7 @@ namespace } void operator() (const IPv6 & x) const { - return operator()(String(reinterpret_cast(&x), 16)); + operator()(String(reinterpret_cast(&x), 16)); } void operator() (const Float64 & x) const { diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.cpp b/src/Storages/MergeTree/MergeTreeRangeReader.cpp index eb757e1d8c7d..73e16ec87335 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.cpp +++ b/src/Storages/MergeTree/MergeTreeRangeReader.cpp @@ -681,8 +681,9 @@ size_t numZerosInTail(const UInt8 * begin, const UInt8 * end) return count; } } - while (end > begin && *(--end) == 0) + while (end > begin && end[-1] == 0) { + --end; ++count; } return count; @@ -715,8 +716,9 @@ size_t numZerosInTail(const UInt8 * begin, const UInt8 * end) return count; } } - while (end > begin && *(--end) == 0) + while (end > begin && end[-1] == 0) { + --end; ++count; } return count; @@ -793,8 +795,9 @@ size_t MergeTreeRangeReader::ReadResult::numZerosInTail(const UInt8 * begin, con } #endif - while (end > begin && *(--end) == 0) + while (end > begin && end[-1] == 0) { + --end; ++count; } return count; diff --git a/src/Storages/MergeTree/MergeTreeReadPool.cpp b/src/Storages/MergeTree/MergeTreeReadPool.cpp index e525f7f5f657..dc1ba030f457 100644 --- a/src/Storages/MergeTree/MergeTreeReadPool.cpp +++ b/src/Storages/MergeTree/MergeTreeReadPool.cpp @@ -80,8 +80,7 @@ MergeTreeReadPool::MergeTreeReadPool( /// We're taking min here because number of tasks shouldn't be too low - it will make task stealing impossible. const auto heuristic_min_marks = std::min(total_marks / pool_settings.threads, min_bytes_per_task / avg_mark_bytes); - if (heuristic_min_marks > min_marks_for_concurrent_read) - min_marks_for_concurrent_read = heuristic_min_marks; + min_marks_for_concurrent_read = std::max(heuristic_min_marks, min_marks_for_concurrent_read); } } diff --git a/src/Storages/MergeTree/ParallelReplicasReadingCoordinator.cpp b/src/Storages/MergeTree/ParallelReplicasReadingCoordinator.cpp index 99ad8aa085d2..2a4ff74714dd 100644 --- a/src/Storages/MergeTree/ParallelReplicasReadingCoordinator.cpp +++ b/src/Storages/MergeTree/ParallelReplicasReadingCoordinator.cpp @@ -986,7 +986,7 @@ void ParallelReplicasReadingCoordinator::handleInitialAllRangesAnnouncement(Init initialize(); } - return pimpl->handleInitialAllRangesAnnouncement(std::move(announcement)); + pimpl->handleInitialAllRangesAnnouncement(std::move(announcement)); } ParallelReadResponse ParallelReplicasReadingCoordinator::handleRequest(ParallelReadRequest request) diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeCleanupThread.cpp b/src/Storages/MergeTree/ReplicatedMergeTreeCleanupThread.cpp index 67942491ae25..e034918ef578 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeCleanupThread.cpp +++ b/src/Storages/MergeTree/ReplicatedMergeTreeCleanupThread.cpp @@ -79,10 +79,7 @@ void ReplicatedMergeTreeCleanupThread::run() else sleep_ms = static_cast(sleep_ms / ratio); - if (sleep_ms < storage_settings->cleanup_delay_period * 1000) - sleep_ms = storage_settings->cleanup_delay_period * 1000; - if (storage_settings->max_cleanup_delay_period * 1000 < sleep_ms) - sleep_ms = storage_settings->max_cleanup_delay_period * 1000; + sleep_ms = std::clamp(sleep_ms, storage_settings->cleanup_delay_period * 1000, storage_settings->max_cleanup_delay_period * 1000); UInt64 interval_ms = now_ms - prev_timestamp; LOG_TRACE(log, "Scheduling next cleanup after {}ms (points: {}, interval: {}ms, ratio: {}, points per minute: {})", diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeLogEntry.cpp b/src/Storages/MergeTree/ReplicatedMergeTreeLogEntry.cpp index 9eb8b6ce24c3..08ddbbd60c42 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeLogEntry.cpp +++ b/src/Storages/MergeTree/ReplicatedMergeTreeLogEntry.cpp @@ -28,7 +28,7 @@ enum FormatVersion : UInt8 FORMAT_WITH_DEDUPLICATE_BY_COLUMNS = 6, FORMAT_WITH_LOG_ENTRY_ID = 7, - FORMAT_LAST + FORMAT_LAST = 8, }; diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp index 86b28f72e190..4b4f4c33e7d3 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp +++ b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp @@ -113,7 +113,7 @@ namespace inline String toString(const std::vector & vec) { size_t size = vec.size(); - if (size > 50) size = 50; + size = std::min(size, 50); return fmt::format("({})", fmt::join(vec.begin(), vec.begin() + size, ",")); } } diff --git a/src/Storages/PartitionedSink.cpp b/src/Storages/PartitionedSink.cpp index 69940990569b..09b009b26d83 100644 --- a/src/Storages/PartitionedSink.cpp +++ b/src/Storages/PartitionedSink.cpp @@ -1,3 +1,5 @@ +// NOLINTBEGIN(clang-analyzer-optin.core.EnumCastOutOfRange) + #include "PartitionedSink.h" #include @@ -145,3 +147,5 @@ String PartitionedSink::replaceWildcards(const String & haystack, const String & } } + +// NOLINTEND(clang-analyzer-optin.core.EnumCastOutOfRange) diff --git a/src/Storages/S3Queue/S3QueueFilesMetadata.cpp b/src/Storages/S3Queue/S3QueueFilesMetadata.cpp index ed2f8d2ec1b3..e902c60f7802 100644 --- a/src/Storages/S3Queue/S3QueueFilesMetadata.cpp +++ b/src/Storages/S3Queue/S3QueueFilesMetadata.cpp @@ -600,11 +600,13 @@ void S3QueueFilesMetadata::setFileProcessed(ProcessingNodeHolderPtr holder) { case S3QueueMode::ORDERED: { - return setFileProcessedForOrderedMode(holder); + setFileProcessedForOrderedMode(holder); + break; } case S3QueueMode::UNORDERED: { - return setFileProcessedForUnorderedMode(holder); + setFileProcessedForUnorderedMode(holder); + break; } } } @@ -649,7 +651,7 @@ void S3QueueFilesMetadata::setFileProcessedForOrderedMode(ProcessingNodeHolderPt ? zookeeper_processed_path / toString(getProcessingIdForPath(holder->path)) : zookeeper_processed_path; - return setFileProcessedForOrderedModeImpl(holder->path, holder, processed_node_path); + setFileProcessedForOrderedModeImpl(holder->path, holder, processed_node_path); } void S3QueueFilesMetadata::setFileProcessedForOrderedModeImpl( diff --git a/src/Storages/S3Queue/StorageS3Queue.cpp b/src/Storages/S3Queue/StorageS3Queue.cpp index b6daadf8bc4e..c267e3f1f253 100644 --- a/src/Storages/S3Queue/StorageS3Queue.cpp +++ b/src/Storages/S3Queue/StorageS3Queue.cpp @@ -617,10 +617,10 @@ std::shared_ptr StorageS3Queue::createFileIterator return std::make_shared(files_metadata, std::move(glob_iterator), s3queue_settings->s3queue_current_shard_num, shutdown_called); } -void registerStorageS3QueueImpl(const String & name, StorageFactory & factory) +void registerStorageS3Queue(StorageFactory & factory) { factory.registerStorage( - name, + "S3Queue", [](const StorageFactory::Arguments & args) { auto & engine_args = args.engine_args; @@ -683,11 +683,6 @@ void registerStorageS3QueueImpl(const String & name, StorageFactory & factory) }); } -void registerStorageS3Queue(StorageFactory & factory) -{ - return registerStorageS3QueueImpl("S3Queue", factory); -} - } diff --git a/src/Storages/StorageBuffer.cpp b/src/Storages/StorageBuffer.cpp index 65af5145bec2..d9a0b2b4d59e 100644 --- a/src/Storages/StorageBuffer.cpp +++ b/src/Storages/StorageBuffer.cpp @@ -281,7 +281,7 @@ void StorageBuffer::read( if (!dest_columns.hasPhysical(column_name)) { LOG_WARNING(log, "Destination table {} doesn't have column {}. The default values are used.", destination_id.getNameForLogs(), backQuoteIfNeed(column_name)); - boost::range::remove_erase(columns_intersection, column_name); + std::erase(columns_intersection, column_name); continue; } const auto & dst_col = dest_columns.getPhysical(column_name); diff --git a/src/Storages/StorageDistributed.cpp b/src/Storages/StorageDistributed.cpp index 69d3cf3ad3b4..7b5916c02731 100644 --- a/src/Storages/StorageDistributed.cpp +++ b/src/Storages/StorageDistributed.cpp @@ -193,8 +193,7 @@ UInt64 getMaximumFileNumber(const std::string & dir_path) throw; } - if (num > res) - res = num; + res = std::max(num, res); } return res; diff --git a/src/Storages/StorageFuzzJSON.cpp b/src/Storages/StorageFuzzJSON.cpp index fbfc67f4c7c1..9950d41f1c2a 100644 --- a/src/Storages/StorageFuzzJSON.cpp +++ b/src/Storages/StorageFuzzJSON.cpp @@ -458,7 +458,7 @@ void fuzzJSONObject( void fuzzJSONObject(std::shared_ptr n, WriteBuffer & out, const StorageFuzzJSON::Configuration & config, pcg64 & rnd) { size_t node_count = 0; - return fuzzJSONObject(n, out, config, rnd, /*depth*/ 0, node_count); + fuzzJSONObject(n, out, config, rnd, /*depth*/ 0, node_count); } class FuzzJSONSource : public ISource diff --git a/src/Storages/StorageKeeperMap.cpp b/src/Storages/StorageKeeperMap.cpp index b0b7afdfe8d7..20f990700001 100644 --- a/src/Storages/StorageKeeperMap.cpp +++ b/src/Storages/StorageKeeperMap.cpp @@ -846,7 +846,7 @@ void StorageKeeperMap::restoreDataImpl( bool allow_non_empty_tables, const DiskPtr & temporary_disk) { - auto table_id = toString(getStorageID().uuid); + const auto & table_id = toString(getStorageID().uuid); fs::path data_path_in_backup_fs = data_path_in_backup; @@ -960,7 +960,7 @@ std::optional StorageKeeperMap::isTableValid() const { std::lock_guard lock{init_mutex}; if (table_is_valid.has_value()) - return *table_is_valid; + return table_is_valid; [&] { diff --git a/src/Storages/StorageLog.cpp b/src/Storages/StorageLog.cpp index b652750346f3..25c48de94e19 100644 --- a/src/Storages/StorageLog.cpp +++ b/src/Storages/StorageLog.cpp @@ -833,8 +833,7 @@ Pipe StorageLog::read( size_t num_marks = marks_with_real_row_count.size(); size_t max_streams = use_marks_file ? num_marks : 1; - if (num_streams > max_streams) - num_streams = max_streams; + num_streams = std::min(num_streams, max_streams); std::vector offsets; offsets.resize(num_data_files, 0); diff --git a/src/Storages/StorageMaterializedView.cpp b/src/Storages/StorageMaterializedView.cpp index 7e27b1d50056..4f2790ac24ab 100644 --- a/src/Storages/StorageMaterializedView.cpp +++ b/src/Storages/StorageMaterializedView.cpp @@ -602,7 +602,7 @@ void StorageMaterializedView::backupData(BackupEntriesCollector & backup_entries void StorageMaterializedView::restoreDataFromBackup(RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & partitions) { if (hasInnerTable()) - return getTargetTable()->restoreDataFromBackup(restorer, data_path_in_backup, partitions); + getTargetTable()->restoreDataFromBackup(restorer, data_path_in_backup, partitions); } bool StorageMaterializedView::supportsBackupPartition() const diff --git a/src/Storages/StorageMerge.cpp b/src/Storages/StorageMerge.cpp index 5eceddfe06d0..7afa480149f5 100644 --- a/src/Storages/StorageMerge.cpp +++ b/src/Storages/StorageMerge.cpp @@ -472,7 +472,7 @@ void ReadFromMerge::initializePipeline(QueryPipelineBuilder & pipeline, const Bu { size_t tables_count = selected_tables.size(); Float64 num_streams_multiplier = std::min( - static_cast(tables_count), + tables_count, std::max(1UL, static_cast(context->getSettingsRef().max_streams_multiplier_for_merge_tables))); size_t num_streams = static_cast(requested_num_streams * num_streams_multiplier); @@ -519,7 +519,7 @@ std::vector ReadFromMerge::createChildrenPlans(SelectQ size_t tables_count = selected_tables.size(); Float64 num_streams_multiplier - = std::min(static_cast(tables_count), std::max(1UL, static_cast(context->getSettingsRef().max_streams_multiplier_for_merge_tables))); + = std::min(tables_count, std::max(1UL, static_cast(context->getSettingsRef().max_streams_multiplier_for_merge_tables))); size_t num_streams = static_cast(requested_num_streams * num_streams_multiplier); size_t remaining_streams = num_streams; diff --git a/src/Storages/StorageMongoDB.cpp b/src/Storages/StorageMongoDB.cpp index 64bb2f4609b3..62a2a048642d 100644 --- a/src/Storages/StorageMongoDB.cpp +++ b/src/Storages/StorageMongoDB.cpp @@ -192,7 +192,7 @@ class StorageMongoDBSink : public SinkToStorage else if (which.isFloat32()) document.add(name, static_cast(column.getFloat32(idx))); else if (which.isFloat64()) - document.add(name, static_cast(column.getFloat64(idx))); + document.add(name, column.getFloat64(idx)); else if (which.isDate()) document.add(name, Poco::Timestamp(DateLUT::instance().fromDayNum(DayNum(column.getUInt(idx))) * 1000000)); else if (which.isDateTime()) diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 919118b283f2..cc6599f8cd1f 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -1983,7 +1983,6 @@ MergeTreeData::MutableDataPartPtr StorageReplicatedMergeTree::attachPartHelperFo return {}; const MergeTreePartInfo actual_part_info = MergeTreePartInfo::fromPartName(entry.new_part_name, format_version); - const String part_new_name = actual_part_info.getPartNameV1(); for (const DiskPtr & disk : getStoragePolicy()->getDisks()) { @@ -3916,12 +3915,9 @@ void StorageReplicatedMergeTree::mergeSelectingTask() else if (result == AttemptStatus::CannotSelect) new_sleep_ms *= storage_settings_ptr->merge_selecting_sleep_slowdown_factor; new_sleep_ms *= std::uniform_real_distribution(1.f, 1.1f)(thread_local_rng); - merge_selecting_sleep_ms = static_cast(new_sleep_ms); - - if (merge_selecting_sleep_ms < storage_settings_ptr->merge_selecting_sleep_ms) - merge_selecting_sleep_ms = storage_settings_ptr->merge_selecting_sleep_ms; - if (merge_selecting_sleep_ms > storage_settings_ptr->max_merge_selecting_sleep_ms) - merge_selecting_sleep_ms = storage_settings_ptr->max_merge_selecting_sleep_ms; + merge_selecting_sleep_ms = std::clamp(static_cast(new_sleep_ms), + storage_settings_ptr->merge_selecting_sleep_ms, + storage_settings_ptr->max_merge_selecting_sleep_ms); if (result == AttemptStatus::EntryCreated) merge_selecting_task->schedule(); @@ -5450,12 +5446,11 @@ void StorageReplicatedMergeTree::read( /// 2. Do not read parts that have not yet been written to the quorum of the replicas. /// For this you have to synchronously go to ZooKeeper. if (settings.select_sequential_consistency) - return readLocalSequentialConsistencyImpl(query_plan, column_names, storage_snapshot, query_info, local_context, max_block_size, num_streams); - - if (local_context->canUseParallelReplicasOnInitiator()) - return readParallelReplicasImpl(query_plan, column_names, query_info, local_context, processed_stage); - - readLocalImpl(query_plan, column_names, storage_snapshot, query_info, local_context, max_block_size, num_streams); + readLocalSequentialConsistencyImpl(query_plan, column_names, storage_snapshot, query_info, local_context, max_block_size, num_streams); + else if (local_context->canUseParallelReplicasOnInitiator()) + readParallelReplicasImpl(query_plan, column_names, query_info, local_context, processed_stage); + else + readLocalImpl(query_plan, column_names, storage_snapshot, query_info, local_context, max_block_size, num_streams); } void StorageReplicatedMergeTree::readLocalSequentialConsistencyImpl( @@ -7158,8 +7153,7 @@ void StorageReplicatedMergeTree::getReplicaDelays(time_t & out_absolute_delay, t break; } - if (replica_time > max_replicas_unprocessed_insert_time) - max_replicas_unprocessed_insert_time = replica_time; + max_replicas_unprocessed_insert_time = std::max(replica_time, max_replicas_unprocessed_insert_time); } if (have_replica_with_nothing_unprocessed) @@ -7760,7 +7754,7 @@ void StorageReplicatedMergeTree::removePartsFromZooKeeperWithRetries(PartsToRemo for (const auto & part : parts) part_names_to_remove.emplace_back(part.getPartName()); - return removePartsFromZooKeeperWithRetries(part_names_to_remove, max_retries); + removePartsFromZooKeeperWithRetries(part_names_to_remove, max_retries); } void StorageReplicatedMergeTree::removePartsFromZooKeeperWithRetries(const Strings & part_names, size_t max_retries) @@ -8622,9 +8616,9 @@ void StorageReplicatedMergeTree::getCommitPartOps( const String & block_id_path) const { if (block_id_path.empty()) - return getCommitPartOps(ops, part, std::vector()); + getCommitPartOps(ops, part, std::vector()); else - return getCommitPartOps(ops, part, std::vector({block_id_path})); + getCommitPartOps(ops, part, std::vector({block_id_path})); } void StorageReplicatedMergeTree::getCommitPartOps( diff --git a/src/Storages/StorageS3.cpp b/src/Storages/StorageS3.cpp index 564173698695..6fb1fcb1cebe 100644 --- a/src/Storages/StorageS3.cpp +++ b/src/Storages/StorageS3.cpp @@ -2048,17 +2048,9 @@ void registerStorageS3Impl(const String & name, StorageFactory & factory) void registerStorageS3(StorageFactory & factory) { - return registerStorageS3Impl("S3", factory); -} - -void registerStorageCOS(StorageFactory & factory) -{ - return registerStorageS3Impl("COSN", factory); -} - -void registerStorageOSS(StorageFactory & factory) -{ - return registerStorageS3Impl("OSS", factory); + registerStorageS3Impl("S3", factory); + registerStorageS3Impl("COSN", factory); + registerStorageS3Impl("OSS", factory); } bool StorageS3::supportsPartitionBy() const diff --git a/src/Storages/StorageStripeLog.cpp b/src/Storages/StorageStripeLog.cpp index f47eeb609181..48389dccf48b 100644 --- a/src/Storages/StorageStripeLog.cpp +++ b/src/Storages/StorageStripeLog.cpp @@ -371,8 +371,7 @@ Pipe StorageStripeLog::read( = std::make_shared(indices.extractIndexForColumns(NameSet{column_names.begin(), column_names.end()})); size_t size = indices_for_selected_columns->blocks.size(); - if (num_streams > size) - num_streams = size; + num_streams = std::min(num_streams, size); ReadSettings read_settings = local_context->getReadSettings(); Pipes pipes; diff --git a/src/Storages/StorageURL.cpp b/src/Storages/StorageURL.cpp index 679946f9aee0..8a71a7713678 100644 --- a/src/Storages/StorageURL.cpp +++ b/src/Storages/StorageURL.cpp @@ -1142,8 +1142,7 @@ void ReadFromURL::createIterator(const ActionsDAG::Node * predicate) return getFailoverOptions(next_uri, max_addresses); }); - if (num_streams > glob_iterator->size()) - num_streams = glob_iterator->size(); + num_streams = std::min(num_streams, glob_iterator->size()); } else { diff --git a/src/Storages/WindowView/StorageWindowView.cpp b/src/Storages/WindowView/StorageWindowView.cpp index 04c26053dbab..a9ec1f6c694b 100644 --- a/src/Storages/WindowView/StorageWindowView.cpp +++ b/src/Storages/WindowView/StorageWindowView.cpp @@ -963,8 +963,7 @@ void StorageWindowView::addFireSignal(std::set & signals) void StorageWindowView::updateMaxTimestamp(UInt32 timestamp) { std::lock_guard lock(fire_signal_mutex); - if (timestamp > max_timestamp) - max_timestamp = timestamp; + max_timestamp = std::max(timestamp, max_timestamp); } void StorageWindowView::updateMaxWatermark(UInt32 watermark) @@ -1454,8 +1453,7 @@ void StorageWindowView::writeIntoWindowView( UInt32 watermark_lower_bound = addTime(t_max_watermark, window_view.slide_kind, -window_view.slide_num_units, *window_view.time_zone); - if (watermark_lower_bound < lateness_bound) - lateness_bound = watermark_lower_bound; + lateness_bound = std::min(watermark_lower_bound, lateness_bound); } } else if (!window_view.is_time_column_func_now) @@ -1551,10 +1549,7 @@ void StorageWindowView::writeIntoWindowView( const auto & timestamp_column = *block.getByName(window_view.timestamp_column_name).column; const auto & timestamp_data = typeid_cast(timestamp_column).getData(); for (const auto & timestamp : timestamp_data) - { - if (timestamp > block_max_timestamp) - block_max_timestamp = timestamp; - } + block_max_timestamp = std::max(timestamp, block_max_timestamp); } if (block_max_timestamp) diff --git a/src/Storages/registerStorages.cpp b/src/Storages/registerStorages.cpp index dea9feaf28bc..ce07c8e8d3e6 100644 --- a/src/Storages/registerStorages.cpp +++ b/src/Storages/registerStorages.cpp @@ -31,8 +31,6 @@ void registerStorageFuzzJSON(StorageFactory & factory); #if USE_AWS_S3 void registerStorageS3(StorageFactory & factory); -void registerStorageCOS(StorageFactory & factory); -void registerStorageOSS(StorageFactory & factory); void registerStorageHudi(StorageFactory & factory); void registerStorageS3Queue(StorageFactory & factory); @@ -132,8 +130,6 @@ void registerStorages() #if USE_AWS_S3 registerStorageS3(factory); - registerStorageCOS(factory); - registerStorageOSS(factory); registerStorageHudi(factory); registerStorageS3Queue(factory);