This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch 2.1-tmp in repository https://gitbox.apache.org/repos/asf/doris.git
commit 8fd6d4c41b8bb1ea7b9b4acb7aa52eb986ddc925 Author: Pxl <pxl...@qq.com> AuthorDate: Wed Apr 3 11:57:41 2024 +0800 [Chore](build) add -Wconversion and remove some unused code (#33127) add -Wconversion and remove some unused code --- be/CMakeLists.txt | 11 ++++++--- be/src/exprs/bloom_filter_func.h | 4 ++-- be/src/glibc-compatibility/CMakeLists.txt | 1 + be/src/http/http_client.h | 2 +- be/src/olap/cumulative_compaction_policy.cpp | 2 +- be/src/olap/memtable.cpp | 4 ++-- be/src/olap/olap_server.cpp | 2 +- be/src/olap/rowset/segment_v2/bloom_filter.cpp | 2 +- .../rowset/segment_v2/inverted_index_cache.cpp | 4 ++-- be/src/olap/wal/wal_table.cpp | 15 ++++++------ be/src/pipeline/exec/set_probe_sink_operator.cpp | 4 ++-- be/src/pipeline/pipeline_x/pipeline_x_task.cpp | 2 +- be/src/pipeline/task_queue.cpp | 2 +- be/src/pipeline/task_queue.h | 2 +- be/src/runtime/decimalv2_value.cpp | 2 +- be/src/runtime/memory/mem_tracker_limiter.cpp | 4 ++-- be/src/runtime/workload_group/workload_group.cpp | 2 +- .../workload_group/workload_group_manager.cpp | 4 ++-- be/src/util/counts.h | 4 ++-- be/src/util/cpu_info.cpp | 2 +- be/src/util/date_func.cpp | 4 ++-- be/src/util/hash_util.hpp | 2 +- be/src/util/mem_info.cpp | 12 +++++----- be/src/util/os_util.cpp | 6 ++--- be/src/util/parse_util.cpp | 6 ++--- be/src/util/runtime_profile.cpp | 2 +- be/src/util/url_coding.cpp | 2 +- .../aggregate_function_avg_weighted.h | 2 +- .../aggregate_function_stddev.h | 2 +- be/src/vec/columns/column.h | 7 ------ be/src/vec/columns/column_array.h | 4 ---- be/src/vec/columns/column_complex.h | 6 ----- be/src/vec/columns/column_const.cpp | 16 ------------- be/src/vec/columns/column_const.h | 2 -- be/src/vec/columns/column_decimal.h | 5 ---- be/src/vec/columns/column_dictionary.h | 6 ----- be/src/vec/columns/column_dummy.h | 14 ----------- be/src/vec/columns/column_fixed_length_object.h | 6 ----- be/src/vec/columns/column_impl.h | 27 ---------------------- be/src/vec/columns/column_map.h | 3 --- be/src/vec/columns/column_nullable.h | 4 ---- be/src/vec/columns/column_object.h | 5 ---- be/src/vec/columns/column_string.h | 4 ---- be/src/vec/columns/column_struct.cpp | 23 ------------------ be/src/vec/columns/column_struct.h | 1 - be/src/vec/columns/column_vector.h | 17 +++++++------- be/src/vec/columns/predicate_column.h | 6 ----- be/src/vec/common/uint128.h | 7 ++++++ be/src/vec/core/types.h | 6 ++--- be/src/vec/data_types/data_type.h | 2 +- be/src/vec/data_types/data_type_decimal.h | 3 ++- .../vec/data_types/serde/data_type_number_serde.h | 2 +- be/src/vec/exec/scan/scanner_context.cpp | 4 ++-- be/src/vec/exec/vset_operation_node.cpp | 4 ++-- .../exprs/table_function/vexplode_json_array.cpp | 2 +- be/src/vec/functions/array/function_array_join.h | 2 +- be/src/vec/functions/function_cast.h | 12 +++++----- be/src/vec/functions/function_quantile_state.cpp | 2 +- be/src/vec/functions/int_div.h | 6 ++--- be/src/vec/sink/writer/vtablet_writer.cpp | 8 +++---- be/test/olap/wal/wal_manager_test.cpp | 4 ++-- be/test/vec/core/block_spill_test.cpp | 8 +++---- be/test/vec/core/block_test.cpp | 4 ++-- .../serde/data_type_serde_arrow_test.cpp | 2 +- .../serde/data_type_serde_mysql_test.cpp | 2 +- .../data_types/serde/data_type_serde_pb_test.cpp | 2 +- .../vec/data_types/serde/data_type_serde_test.cpp | 2 +- be/test/vec/jsonb/serialize_test.cpp | 2 +- 68 files changed, 115 insertions(+), 240 deletions(-) diff --git a/be/CMakeLists.txt b/be/CMakeLists.txt index 9b72bc61777..f5d99c69962 100644 --- a/be/CMakeLists.txt +++ b/be/CMakeLists.txt @@ -279,9 +279,14 @@ if (COMPILER_CLANG) -Wunused-volatile-lvalue -Wunused-template -Wunused-member-function - -Wunused-macros) - add_compile_options(-Wno-vla-extension) - add_compile_options(-Wno-gnu-statement-expression) + -Wunused-macros + -Wconversion) + add_compile_options(-Wno-vla-extension + -Wno-gnu-statement-expression + -Wno-implicit-float-conversion + -Wno-implicit-int-conversion + -Wno-sign-conversion + -Wno-shorten-64-to-32) if (USE_LIBCPP) add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-stdlib=libc++>) if (NOT OS_MACOSX) diff --git a/be/src/exprs/bloom_filter_func.h b/be/src/exprs/bloom_filter_func.h index 052893b0c0f..1473d4a4288 100644 --- a/be/src/exprs/bloom_filter_func.h +++ b/be/src/exprs/bloom_filter_func.h @@ -42,12 +42,12 @@ public: Status merge(BloomFilterAdaptor* other) { return _bloom_filter->merge(*other->_bloom_filter); } Status init(int len) { - int log_space = log2(len); + int log_space = (int)log2(len); return _bloom_filter->init(log_space, /*hash_seed*/ 0); } Status init(butil::IOBufAsZeroCopyInputStream* data, const size_t data_size) { - int log_space = log2(data_size); + int log_space = (int)log2(data_size); return _bloom_filter->init_from_directory(log_space, data, data_size, false, 0); } diff --git a/be/src/glibc-compatibility/CMakeLists.txt b/be/src/glibc-compatibility/CMakeLists.txt index a29e712f4a0..c605e83951f 100644 --- a/be/src/glibc-compatibility/CMakeLists.txt +++ b/be/src/glibc-compatibility/CMakeLists.txt @@ -70,6 +70,7 @@ if (GLIBC_COMPATIBILITY) -Wno-unused-command-line-argument -Wno-unused-but-set-variable -Wno-unused-macros + -Wno-conversion ) elseif (COMPILER_GCC) target_compile_options( diff --git a/be/src/http/http_client.h b/be/src/http/http_client.h index c80d0c6f56a..d80f484ce80 100644 --- a/be/src/http/http_client.h +++ b/be/src/http/http_client.h @@ -109,7 +109,7 @@ public: "actrual is : {}", cl)); } - *length = cl; + *length = (uint64_t)cl; return Status::OK(); } return Status::InternalError("failed to get content length. err code: {}", code); diff --git a/be/src/olap/cumulative_compaction_policy.cpp b/be/src/olap/cumulative_compaction_policy.cpp index f8821748e6b..0d35ae7ca4f 100644 --- a/be/src/olap/cumulative_compaction_policy.cpp +++ b/be/src/olap/cumulative_compaction_policy.cpp @@ -121,7 +121,7 @@ void SizeBasedCumulativeCompactionPolicy::_calc_promotion_size(Tablet* tablet, RowsetMetaSharedPtr base_rowset_meta, int64_t* promotion_size) { int64_t base_size = base_rowset_meta->total_disk_size(); - *promotion_size = base_size * _promotion_ratio; + *promotion_size = int64_t(base_size * _promotion_ratio); // promotion_size is between _promotion_size and _promotion_min_size if (*promotion_size >= _promotion_size) { diff --git a/be/src/olap/memtable.cpp b/be/src/olap/memtable.cpp index 7cddd2abe01..87ae20237e5 100644 --- a/be/src/olap/memtable.cpp +++ b/be/src/olap/memtable.cpp @@ -210,8 +210,8 @@ void MemTable::insert(const vectorized::Block* input_block, const std::vector<ui } auto block_size1 = _input_mutable_block.allocated_bytes(); g_memtable_input_block_allocated_size << block_size1 - block_size0; - size_t input_size = target_block.bytes() * num_rows / target_block.rows() * - config::memtable_insert_memory_ratio; + auto input_size = size_t(target_block.bytes() * num_rows / target_block.rows() * + config::memtable_insert_memory_ratio); _mem_usage += input_size; _insert_mem_tracker->consume(input_size); for (int i = 0; i < num_rows; i++) { diff --git a/be/src/olap/olap_server.cpp b/be/src/olap/olap_server.cpp index d3150c17e14..a2b5bf56de9 100644 --- a/be/src/olap/olap_server.cpp +++ b/be/src/olap/olap_server.cpp @@ -331,7 +331,7 @@ void StorageEngine::_garbage_sweeper_thread_callback() { // when usage = 0.88, ratio is approximately 0.0057. double ratio = (1.1 * (pi / 2 - std::atan(usage * 100 / 5 - 14)) - 0.28) / pi; ratio = ratio > 0 ? ratio : 0; - uint32_t curr_interval = max_interval * ratio; + auto curr_interval = uint32_t(max_interval * ratio); curr_interval = std::max(curr_interval, min_interval); curr_interval = std::min(curr_interval, max_interval); diff --git a/be/src/olap/rowset/segment_v2/bloom_filter.cpp b/be/src/olap/rowset/segment_v2/bloom_filter.cpp index 12a7f2395e7..19e2b93d29c 100644 --- a/be/src/olap/rowset/segment_v2/bloom_filter.cpp +++ b/be/src/olap/rowset/segment_v2/bloom_filter.cpp @@ -53,7 +53,7 @@ uint32_t BloomFilter::used_bits(uint64_t value) { uint32_t BloomFilter::optimal_bit_num(uint64_t n, double fpp) { // ref parquet bloom_filter branch(BlockSplitBloomFilter.java) - uint32_t num_bits = -8 * (double)n / log(1 - pow(fpp, 1.0 / 8)); + auto num_bits = uint32_t(-8 * (double)n / log(1 - pow(fpp, 1.0 / 8))); uint32_t max_bits = MAXIMUM_BYTES << 3; if (num_bits > max_bits) { num_bits = max_bits; diff --git a/be/src/olap/rowset/segment_v2/inverted_index_cache.cpp b/be/src/olap/rowset/segment_v2/inverted_index_cache.cpp index adbce0b4064..f6a0951b44c 100644 --- a/be/src/olap/rowset/segment_v2/inverted_index_cache.cpp +++ b/be/src/olap/rowset/segment_v2/inverted_index_cache.cpp @@ -50,9 +50,9 @@ InvertedIndexSearcherCache::InvertedIndexSearcherCache(size_t capacity, uint32_t static constexpr size_t fd_bound = 100000; size_t search_limit_percent = config::inverted_index_fd_number_limit_percent; if (fd_number <= fd_bound) { - search_limit_percent *= 0.25; // default 10% + search_limit_percent = size_t(search_limit_percent * 0.25); // default 10% } else if (fd_number > fd_bound && fd_number < fd_bound * 5) { - search_limit_percent *= 0.5; // default 20% + search_limit_percent = size_t(search_limit_percent * 0.5); // default 20% } uint64_t open_searcher_limit = fd_number * search_limit_percent / 100; diff --git a/be/src/olap/wal/wal_table.cpp b/be/src/olap/wal/wal_table.cpp index 641ef8c6647..ec0c412379a 100644 --- a/be/src/olap/wal/wal_table.cpp +++ b/be/src/olap/wal/wal_table.cpp @@ -145,15 +145,16 @@ bool WalTable::_need_replay(std::shared_ptr<WalInfo> wal_info) { return true; } #ifndef BE_TEST - auto replay_interval = 0; + int64_t replay_interval = 0; if (wal_info->get_retry_num() >= config::group_commit_replay_wal_retry_num) { - replay_interval = pow(2, config::group_commit_replay_wal_retry_num) * - config::group_commit_replay_wal_retry_interval_seconds * 1000 + - (wal_info->get_retry_num() - config::group_commit_replay_wal_retry_num) * - config::group_commit_replay_wal_retry_interval_max_seconds * 1000; + replay_interval = + int64_t(pow(2, config::group_commit_replay_wal_retry_num) * + config::group_commit_replay_wal_retry_interval_seconds * 1000 + + (wal_info->get_retry_num() - config::group_commit_replay_wal_retry_num) * + config::group_commit_replay_wal_retry_interval_max_seconds * 1000); } else { - replay_interval = pow(2, wal_info->get_retry_num()) * - config::group_commit_replay_wal_retry_interval_seconds * 1000; + replay_interval = int64_t(pow(2, wal_info->get_retry_num()) * + config::group_commit_replay_wal_retry_interval_seconds * 1000); } return UnixMillis() - wal_info->get_start_time_ms() >= replay_interval; #else diff --git a/be/src/pipeline/exec/set_probe_sink_operator.cpp b/be/src/pipeline/exec/set_probe_sink_operator.cpp index 2d7bcd42c2b..76248f2c75c 100644 --- a/be/src/pipeline/exec/set_probe_sink_operator.cpp +++ b/be/src/pipeline/exec/set_probe_sink_operator.cpp @@ -238,8 +238,8 @@ void SetProbeSinkOperatorX<is_intersect>::_refresh_hash_table( bool is_need_shrink = arg.hash_table->should_be_shrink(valid_element_in_hash_tbl); if (is_intersect || is_need_shrink) { - tmp_hash_table->init_buf_size( - valid_element_in_hash_tbl / arg.hash_table->get_factor() + 1); + tmp_hash_table->init_buf_size(size_t( + valid_element_in_hash_tbl / arg.hash_table->get_factor() + 1)); } arg.init_iterator(); diff --git a/be/src/pipeline/pipeline_x/pipeline_x_task.cpp b/be/src/pipeline/pipeline_x/pipeline_x_task.cpp index 4b85df05484..4bca88ec931 100644 --- a/be/src/pipeline/pipeline_x/pipeline_x_task.cpp +++ b/be/src/pipeline/pipeline_x/pipeline_x_task.cpp @@ -327,7 +327,7 @@ bool PipelineXTask::should_revoke_memory(RuntimeState* state, int64_t revocable_ DCHECK(big_memory_operator_num >= 0); int64_t mem_limit_of_op; if (0 == big_memory_operator_num) { - mem_limit_of_op = (double)query_weighted_limit * 0.8; + mem_limit_of_op = int64_t(query_weighted_limit * 0.8); } else { mem_limit_of_op = query_weighted_limit / big_memory_operator_num; } diff --git a/be/src/pipeline/task_queue.cpp b/be/src/pipeline/task_queue.cpp index a79d865821d..617cd7a78d1 100644 --- a/be/src/pipeline/task_queue.cpp +++ b/be/src/pipeline/task_queue.cpp @@ -71,7 +71,7 @@ PipelineTask* PriorityTaskQueue::_try_take_unprotected(bool is_steal) { } } DCHECK(level != -1); - _queue_level_min_vruntime = min_vruntime; + _queue_level_min_vruntime = uint64_t(min_vruntime); auto task = _sub_queues[level].try_take(is_steal); if (task) { diff --git a/be/src/pipeline/task_queue.h b/be/src/pipeline/task_queue.h index a6799fdb0c6..02994511019 100644 --- a/be/src/pipeline/task_queue.h +++ b/be/src/pipeline/task_queue.h @@ -76,7 +76,7 @@ public: void inc_runtime(uint64_t delta_time) { _runtime += delta_time; } - void adjust_runtime(uint64_t vruntime) { this->_runtime = vruntime * _level_factor; } + void adjust_runtime(uint64_t vruntime) { this->_runtime = uint64_t(vruntime * _level_factor); } bool empty() { return _queue.empty(); } diff --git a/be/src/runtime/decimalv2_value.cpp b/be/src/runtime/decimalv2_value.cpp index 6155372ae6d..f3466ca47b1 100644 --- a/be/src/runtime/decimalv2_value.cpp +++ b/be/src/runtime/decimalv2_value.cpp @@ -328,7 +328,7 @@ static double sqrt_fractional(int128_t sqrt_int, int128_t remainder) { const int128_t DecimalV2Value::SQRT_MOLECULAR_MAGNIFICATION = get_scale_base(PRECISION / 2); const int128_t DecimalV2Value::SQRT_DENOMINATOR = - std::sqrt(ONE_BILLION) * get_scale_base(PRECISION / 2 - SCALE); + int128_t(std::sqrt(ONE_BILLION) * get_scale_base(PRECISION / 2 - SCALE)); DecimalV2Value DecimalV2Value::sqrt(const DecimalV2Value& v) { int128_t x = v.value(); diff --git a/be/src/runtime/memory/mem_tracker_limiter.cpp b/be/src/runtime/memory/mem_tracker_limiter.cpp index 3edbd21c745..84b80699431 100644 --- a/be/src/runtime/memory/mem_tracker_limiter.cpp +++ b/be/src/runtime/memory/mem_tracker_limiter.cpp @@ -606,9 +606,9 @@ int64_t MemTrackerLimiter::free_top_overcommit_query( tracker->consumption())); continue; } - int64_t overcommit_ratio = + auto overcommit_ratio = int64_t( (static_cast<double>(tracker->consumption()) / tracker->limit()) * - 10000; + 10000); max_pq.emplace(overcommit_ratio, tracker->label()); query_consumption[tracker->label()] = tracker->consumption(); } diff --git a/be/src/runtime/workload_group/workload_group.cpp b/be/src/runtime/workload_group/workload_group.cpp index 1b0430d64fb..19ed39a6ab7 100644 --- a/be/src/runtime/workload_group/workload_group.cpp +++ b/be/src/runtime/workload_group/workload_group.cpp @@ -119,7 +119,7 @@ int64_t WorkloadGroup::memory_used() { } void WorkloadGroup::set_weighted_memory_used(int64_t wg_total_mem_used, double ratio) { - _weighted_mem_used.store(wg_total_mem_used * ratio, std::memory_order_relaxed); + _weighted_mem_used.store(int64_t(wg_total_mem_used * ratio), std::memory_order_relaxed); } void WorkloadGroup::add_mem_tracker_limiter(std::shared_ptr<MemTrackerLimiter> mem_tracker_ptr) { diff --git a/be/src/runtime/workload_group/workload_group_manager.cpp b/be/src/runtime/workload_group/workload_group_manager.cpp index 027cfb2b2dd..78e2cd1fe06 100644 --- a/be/src/runtime/workload_group/workload_group_manager.cpp +++ b/be/src/runtime/workload_group/workload_group_manager.cpp @@ -198,7 +198,7 @@ void WorkloadGroupMgr::refresh_wg_memory_info() { for (auto& wg : _workload_groups) { auto wg_mem_limit = wg.second->memory_limit(); auto& wg_mem_info = wgs_mem_info[wg.first]; - wg_mem_info.weighted_mem_used = wg_mem_info.total_mem_used * ratio; + wg_mem_info.weighted_mem_used = int64_t(wg_mem_info.total_mem_used * ratio); wg_mem_info.mem_used_ratio = (double)wg_mem_info.weighted_mem_used / wg_mem_limit; wg.second->set_weighted_memory_used(wg_mem_info.total_mem_used, ratio); @@ -237,7 +237,7 @@ void WorkloadGroupMgr::refresh_wg_memory_info() { continue; } auto query_consumption = query_ctx->query_mem_tracker->consumption(); - int64_t query_weighted_consumption = query_consumption * ratio; + auto query_weighted_consumption = int64_t(query_consumption * ratio); query_ctx->set_weighted_mem(query_weighted_mem_limit, query_weighted_consumption); if (wg_mem_info.is_high_wartermark || wg_mem_info.is_low_wartermark) { diff --git a/be/src/util/counts.h b/be/src/util/counts.h index 8291d3a5b19..fec18cedcd6 100644 --- a/be/src/util/counts.h +++ b/be/src/util/counts.h @@ -83,8 +83,8 @@ public: double get_percentile(std::vector<std::pair<int64_t, uint32_t>>& counts, double position) const { - long lower = std::floor(position); - long higher = std::ceil(position); + long lower = long(std::floor(position)); + long higher = long(std::ceil(position)); auto iter = counts.begin(); for (; iter != counts.end() && iter->second < lower + 1; ++iter) diff --git a/be/src/util/cpu_info.cpp b/be/src/util/cpu_info.cpp index 6ead3a61ead..116dacb8da7 100644 --- a/be/src/util/cpu_info.cpp +++ b/be/src/util/cpu_info.cpp @@ -214,7 +214,7 @@ void CpuInfo::init() { int num_cores = cgroup_bandwidth_quota(physical_num_cores); if (max_mhz != 0) { - cycles_per_ms_ = max_mhz * 1000; + cycles_per_ms_ = int64_t(max_mhz) * 1000; } else { cycles_per_ms_ = 1000000; } diff --git a/be/src/util/date_func.cpp b/be/src/util/date_func.cpp index 94b74b58280..4363cb32440 100644 --- a/be/src/util/date_func.cpp +++ b/be/src/util/date_func.cpp @@ -130,7 +130,7 @@ int32_t timev2_to_buffer_from_double(double time, char* buffer, int scale) { time = -time; *buffer++ = '-'; } - int64_t m_time = time; + auto m_time = int64_t(time); // m_time = hour * 3600 * 1000 * 1000 + minute * 60 * 1000 * 1000 + second * 1000 * 1000 + microsecond m_time = check_over_max_time(m_time); int64_t hour = m_time / ((int64_t)3600 * 1000 * 1000); @@ -196,7 +196,7 @@ std::string timev2_to_buffer_from_double(double time, int scale) { time = -time; fmt::format_to(buffer, "-"); } - int64_t m_time = time; + auto m_time = int64_t(time); m_time = check_over_max_time(m_time); // m_time = hour * 3600 * 1000 * 1000 + minute * 60 * 1000 * 1000 + second * 1000 * 1000 + microsecond int64_t hour = m_time / ((int64_t)3600 * 1000 * 1000); diff --git a/be/src/util/hash_util.hpp b/be/src/util/hash_util.hpp index 402797a8e35..8cb1bc2754a 100644 --- a/be/src/util/hash_util.hpp +++ b/be/src/util/hash_util.hpp @@ -41,7 +41,7 @@ public: template <typename T> static uint32_t fixed_len_to_uint32(T value) { if constexpr (sizeof(T) <= sizeof(uint32_t)) { - return value; + return (uint32_t)value; } return std::hash<T>()(value); } diff --git a/be/src/util/mem_info.cpp b/be/src/util/mem_info.cpp index 17abbb8e93e..823490942af 100644 --- a/be/src/util/mem_info.cpp +++ b/be/src/util/mem_info.cpp @@ -354,10 +354,10 @@ int64_t MemInfo::tg_enable_overcommit_group_gc(int64_t request_free_memory, } // todo: GC according to resource group priority - int64_t tg_need_free_memory = + auto tg_need_free_memory = int64_t( gc_all_exceeded ? exceeded_memorys[i] : static_cast<double>(exceeded_memorys[i]) / total_exceeded_memory * - request_free_memory /* exceeded memory as a weight */; + request_free_memory); // exceeded memory as a weight auto workload_group = task_groups[i]; total_free_memory += workload_group->gc_memory(tg_need_free_memory, profile); } @@ -423,7 +423,7 @@ void MemInfo::init() { _s_mem_limit = _s_physical_mem; } _s_mem_limit_str = PrettyPrinter::print(_s_mem_limit, TUnit::BYTES); - _s_soft_mem_limit = _s_mem_limit * config::soft_mem_limit_frac; + _s_soft_mem_limit = int64_t(_s_mem_limit * config::soft_mem_limit_frac); _s_soft_mem_limit_str = PrettyPrinter::print(_s_soft_mem_limit, TUnit::BYTES); _s_process_minor_gc_size = @@ -456,9 +456,9 @@ void MemInfo::init() { // // upper sys_mem_available_low_water_mark, avoid wasting too much memory. _s_sys_mem_available_low_water_mark = std::max<int64_t>( - std::min<int64_t>( - std::min<int64_t>(_s_physical_mem - _s_mem_limit, _s_physical_mem * 0.1), - config::max_sys_mem_available_low_water_mark_bytes), + std::min<int64_t>(std::min<int64_t>(_s_physical_mem - _s_mem_limit, + int64_t(_s_physical_mem * 0.1)), + config::max_sys_mem_available_low_water_mark_bytes), 0); _s_sys_mem_available_warning_water_mark = _s_sys_mem_available_low_water_mark * 2; } diff --git a/be/src/util/os_util.cpp b/be/src/util/os_util.cpp index b98b9aa7d5a..13ee4032f67 100644 --- a/be/src/util/os_util.cpp +++ b/be/src/util/os_util.cpp @@ -83,13 +83,13 @@ Status parse_stat(const std::string& buffer, std::string* name, ThreadStats* sta int64_t tmp; if (safe_strto64(splits[kUserTicks], &tmp)) { - stats->user_ns = tmp * (1e9 / kTicksPerSec); + stats->user_ns = int64_t(tmp * (1e9 / kTicksPerSec)); } if (safe_strto64(splits[kKernelTicks], &tmp)) { - stats->kernel_ns = tmp * (1e9 / kTicksPerSec); + stats->kernel_ns = int64_t(tmp * (1e9 / kTicksPerSec)); } if (safe_strto64(splits[kIoWait], &tmp)) { - stats->iowait_ns = tmp * (1e9 / kTicksPerSec); + stats->iowait_ns = int64_t(tmp * (1e9 / kTicksPerSec)); } if (name != nullptr) { *name = extracted_name; diff --git a/be/src/util/parse_util.cpp b/be/src/util/parse_util.cpp index 4e685715f61..8e810764e7b 100644 --- a/be/src/util/parse_util.cpp +++ b/be/src/util/parse_util.cpp @@ -82,12 +82,12 @@ int64_t ParseUtil::parse_mem_spec(const std::string& mem_spec_str, int64_t paren } if (multiplier != -1) { - bytes = multiplier * limit_val; + bytes = int64_t(multiplier * limit_val); } else if (*is_percent) { if (parent_limit == -1) { - bytes = (static_cast<double>(limit_val) / 100.0) * physical_mem; + bytes = int64_t(static_cast<double>(limit_val) / 100.0 * physical_mem); } else { - bytes = (static_cast<double>(limit_val) / 100.0) * parent_limit; + bytes = int64_t(static_cast<double>(limit_val) / 100.0 * parent_limit); } } } else { diff --git a/be/src/util/runtime_profile.cpp b/be/src/util/runtime_profile.cpp index f5ed7250618..647c6e966c5 100644 --- a/be/src/util/runtime_profile.cpp +++ b/be/src/util/runtime_profile.cpp @@ -617,7 +617,7 @@ int64_t RuntimeProfile::units_per_second(const RuntimeProfile::Counter* total_co } double secs = static_cast<double>(timer->value()) / 1000.0 / 1000.0 / 1000.0; - return total_counter->value() / secs; + return int64_t(total_counter->value() / secs); } int64_t RuntimeProfile::counter_sum(const std::vector<Counter*>* counters) { diff --git a/be/src/util/url_coding.cpp b/be/src/util/url_coding.cpp index 6ddd4c05401..d0bbf5aae63 100644 --- a/be/src/util/url_coding.cpp +++ b/be/src/util/url_coding.cpp @@ -88,7 +88,7 @@ bool url_decode(const std::string& in, std::string* out) { } void base64_encode(const std::string& in, std::string* out) { - out->resize(in.length() * (4.0 / 3) + 1); + out->resize(size_t(in.length() * (4.0 / 3) + 1)); auto len = base64_encode(reinterpret_cast<const unsigned char*>(in.c_str()), in.length(), (unsigned char*)out->c_str()); out->resize(len); diff --git a/be/src/vec/aggregate_functions/aggregate_function_avg_weighted.h b/be/src/vec/aggregate_functions/aggregate_function_avg_weighted.h index 498ee20ccb8..e8596a00546 100644 --- a/be/src/vec/aggregate_functions/aggregate_function_avg_weighted.h +++ b/be/src/vec/aggregate_functions/aggregate_function_avg_weighted.h @@ -85,7 +85,7 @@ struct AggregateFunctionAvgWeightedData { weight_sum = 0.0; } - double get() const { return weight_sum ? data_sum / weight_sum : std::nan(""); } + double get() const { return data_sum / weight_sum; } double data_sum = 0.0; double weight_sum = 0.0; diff --git a/be/src/vec/aggregate_functions/aggregate_function_stddev.h b/be/src/vec/aggregate_functions/aggregate_function_stddev.h index 456e91c3f6a..f095afb41b1 100644 --- a/be/src/vec/aggregate_functions/aggregate_function_stddev.h +++ b/be/src/vec/aggregate_functions/aggregate_function_stddev.h @@ -104,7 +104,7 @@ struct BaseData { double sum_count = count + rhs.count; mean = rhs.mean + delta * count / sum_count; m2 = rhs.m2 + m2 + (delta * delta) * rhs.count * count / sum_count; - count = sum_count; + count = int64_t(sum_count); } void add(const IColumn* column, size_t row_num) { diff --git a/be/src/vec/columns/column.h b/be/src/vec/columns/column.h index afb97542e5a..f1bcee1ad7d 100644 --- a/be/src/vec/columns/column.h +++ b/be/src/vec/columns/column.h @@ -496,8 +496,6 @@ public: */ using ColumnIndex = UInt64; using Selector = PaddedPODArray<ColumnIndex>; - virtual std::vector<MutablePtr> scatter(ColumnIndex num_columns, - const Selector& selector) const = 0; virtual void append_data_by_selector(MutablePtr& res, const Selector& selector) const = 0; @@ -695,11 +693,6 @@ public: bool is_date_time = false; protected: - /// Template is to devirtualize calls to insert_from method. - /// In derived classes (that use final keyword), implement scatter method as call to scatter_impl. - template <typename Derived> - std::vector<MutablePtr> scatter_impl(ColumnIndex num_columns, const Selector& selector) const; - template <typename Derived> void append_data_by_selector_impl(MutablePtr& res, const Selector& selector) const; }; diff --git a/be/src/vec/columns/column_array.h b/be/src/vec/columns/column_array.h index 5f6db27c594..3176f7a45c6 100644 --- a/be/src/vec/columns/column_array.h +++ b/be/src/vec/columns/column_array.h @@ -199,10 +199,6 @@ public: const ColumnPtr& get_offsets_ptr() const { return offsets; } ColumnPtr& get_offsets_ptr() { return offsets; } - MutableColumns scatter(ColumnIndex num_columns, const Selector& selector) const override { - return scatter_impl<ColumnArray>(num_columns, selector); - } - size_t ALWAYS_INLINE offset_at(ssize_t i) const { return get_offsets()[i - 1]; } size_t ALWAYS_INLINE size_at(ssize_t i) const { return get_offsets()[i] - get_offsets()[i - 1]; diff --git a/be/src/vec/columns/column_complex.h b/be/src/vec/columns/column_complex.h index 70d32da0b9b..d983fc9175e 100644 --- a/be/src/vec/columns/column_complex.h +++ b/be/src/vec/columns/column_complex.h @@ -258,12 +258,6 @@ public: ColumnPtr replicate(const IColumn::Offsets& replicate_offsets) const override; - [[noreturn]] MutableColumns scatter(IColumn::ColumnIndex num_columns, - const IColumn::Selector& selector) const override { - LOG(FATAL) << "scatter not implemented"; - __builtin_unreachable(); - } - void append_data_by_selector(MutableColumnPtr& res, const IColumn::Selector& selector) const override { this->template append_data_by_selector_impl<ColumnComplexType<T>>(res, selector); diff --git a/be/src/vec/columns/column_const.cpp b/be/src/vec/columns/column_const.cpp index e06e53b4289..096ec91ecea 100644 --- a/be/src/vec/columns/column_const.cpp +++ b/be/src/vec/columns/column_const.cpp @@ -126,22 +126,6 @@ void ColumnConst::update_hashes_with_value(uint64_t* __restrict hashes, } } -MutableColumns ColumnConst::scatter(ColumnIndex num_columns, const Selector& selector) const { - if (s != selector.size()) { - LOG(FATAL) << fmt::format("Size of selector ({}) doesn't match size of column ({})", - selector.size(), s); - } - - std::vector<size_t> counts = count_columns_size_in_selector(num_columns, selector); - - MutableColumns res(num_columns); - for (size_t i = 0; i < num_columns; ++i) { - res[i] = clone_resized(counts[i]); - } - - return res; -} - void ColumnConst::get_permutation(bool /*reverse*/, size_t /*limit*/, int /*nan_direction_hint*/, Permutation& res) const { res.resize(s); diff --git a/be/src/vec/columns/column_const.h b/be/src/vec/columns/column_const.h index bd6a817c283..016e4257402 100644 --- a/be/src/vec/columns/column_const.h +++ b/be/src/vec/columns/column_const.h @@ -220,8 +220,6 @@ public: } } - MutableColumns scatter(ColumnIndex num_columns, const Selector& selector) const override; - void append_data_by_selector(MutableColumnPtr& res, const IColumn::Selector& selector) const override { assert_cast<Self&>(*res).resize(selector.size()); diff --git a/be/src/vec/columns/column_decimal.h b/be/src/vec/columns/column_decimal.h index 0dbd8c14027..152d4165416 100644 --- a/be/src/vec/columns/column_decimal.h +++ b/be/src/vec/columns/column_decimal.h @@ -227,11 +227,6 @@ public: ColumnPtr replicate(const IColumn::Offsets& offsets) const override; - MutableColumns scatter(IColumn::ColumnIndex num_columns, - const IColumn::Selector& selector) const override { - return this->template scatter_impl<Self>(num_columns, selector); - } - void append_data_by_selector(MutableColumnPtr& res, const IColumn::Selector& selector) const override { this->template append_data_by_selector_impl<Self>(res, selector); diff --git a/be/src/vec/columns/column_dictionary.h b/be/src/vec/columns/column_dictionary.h index 518d8faa008..175912f9668 100644 --- a/be/src/vec/columns/column_dictionary.h +++ b/be/src/vec/columns/column_dictionary.h @@ -190,12 +190,6 @@ public: __builtin_unreachable(); } - [[noreturn]] MutableColumns scatter(IColumn::ColumnIndex num_columns, - const IColumn::Selector& selector) const override { - LOG(FATAL) << "scatter not supported in ColumnDictionary"; - __builtin_unreachable(); - } - void append_data_by_selector(MutableColumnPtr& res, const IColumn::Selector& selector) const override { LOG(FATAL) << "append_data_by_selector is not supported in ColumnDictionary!"; diff --git a/be/src/vec/columns/column_dummy.h b/be/src/vec/columns/column_dummy.h index b94464be5ba..f330a60642a 100644 --- a/be/src/vec/columns/column_dummy.h +++ b/be/src/vec/columns/column_dummy.h @@ -116,20 +116,6 @@ public: return clone_dummy(offsets.back()); } - MutableColumns scatter(ColumnIndex num_columns, const Selector& selector) const override { - if (s != selector.size()) { - LOG(FATAL) << "Size of selector doesn't match size of column."; - } - - std::vector<size_t> counts(num_columns); - for (auto idx : selector) ++counts[idx]; - - MutableColumns res(num_columns); - for (size_t i = 0; i < num_columns; ++i) res[i] = clone_resized(counts[i]); - - return res; - } - void append_data_by_selector(MutableColumnPtr& res, const IColumn::Selector& selector) const override { size_t num_rows = size(); diff --git a/be/src/vec/columns/column_fixed_length_object.h b/be/src/vec/columns/column_fixed_length_object.h index d44ebce53a7..5875b8f6c30 100644 --- a/be/src/vec/columns/column_fixed_length_object.h +++ b/be/src/vec/columns/column_fixed_length_object.h @@ -233,12 +233,6 @@ public: return res; } - [[noreturn]] MutableColumns scatter(IColumn::ColumnIndex num_columns, - const IColumn::Selector& selector) const override { - LOG(FATAL) << "scatter not supported"; - __builtin_unreachable(); - } - void append_data_by_selector(MutableColumnPtr& res, const IColumn::Selector& selector) const override { this->template append_data_by_selector_impl<Self>(res, selector); diff --git a/be/src/vec/columns/column_impl.h b/be/src/vec/columns/column_impl.h index 53f6be6c8c8..20292ad2351 100644 --- a/be/src/vec/columns/column_impl.h +++ b/be/src/vec/columns/column_impl.h @@ -32,33 +32,6 @@ namespace doris::vectorized { -template <typename Derived> -std::vector<IColumn::MutablePtr> IColumn::scatter_impl(ColumnIndex num_columns, - const Selector& selector) const { - size_t num_rows = size(); - - if (num_rows != selector.size()) { - LOG(FATAL) << fmt::format("Size of selector: {}, doesn't match size of column:{}", - selector.size(), num_rows); - } - - std::vector<MutablePtr> columns(num_columns); - for (auto& column : columns) column = clone_empty(); - - { - size_t reserve_size = - num_rows * 1.1 / num_columns; /// 1.1 is just a guess. Better to use n-sigma rule. - - if (reserve_size > 1) - for (auto& column : columns) column->reserve(reserve_size); - } - - for (size_t i = 0; i < num_rows; ++i) - static_cast<Derived&>(*columns[selector[i]]).insert_from(*this, i); - - return columns; -} - template <typename Derived> void IColumn::append_data_by_selector_impl(MutablePtr& res, const Selector& selector) const { size_t num_rows = size(); diff --git a/be/src/vec/columns/column_map.h b/be/src/vec/columns/column_map.h index 0fe61ccdaeb..ed5a692defd 100644 --- a/be/src/vec/columns/column_map.h +++ b/be/src/vec/columns/column_map.h @@ -118,9 +118,6 @@ public: size_t filter(const Filter& filter) override; ColumnPtr permute(const Permutation& perm, size_t limit) const override; ColumnPtr replicate(const Offsets& offsets) const override; - MutableColumns scatter(ColumnIndex num_columns, const Selector& selector) const override { - return scatter_impl<ColumnMap>(num_columns, selector); - } int compare_at(size_t n, size_t m, const IColumn& rhs_, int nan_direction_hint) const override; diff --git a/be/src/vec/columns/column_nullable.h b/be/src/vec/columns/column_nullable.h index 1bec1165aae..462b28d3a7d 100644 --- a/be/src/vec/columns/column_nullable.h +++ b/be/src/vec/columns/column_nullable.h @@ -227,10 +227,6 @@ public: void update_hashes_with_value(uint64_t* __restrict hashes, const uint8_t* __restrict null_data) const override; - MutableColumns scatter(ColumnIndex num_columns, const Selector& selector) const override { - return scatter_impl<ColumnNullable>(num_columns, selector); - } - void append_data_by_selector(MutableColumnPtr& res, const IColumn::Selector& selector) const override { append_data_by_selector_impl<ColumnNullable>(res, selector); diff --git a/be/src/vec/columns/column_object.h b/be/src/vec/columns/column_object.h index 39d156d681b..a940b4a8811 100644 --- a/be/src/vec/columns/column_object.h +++ b/be/src/vec/columns/column_object.h @@ -456,11 +456,6 @@ public: LOG(FATAL) << "should not call the method in column object"; } - MutableColumns scatter(ColumnIndex, const Selector&) const override { - LOG(FATAL) << "should not call the method in column object"; - return {}; - } - void replace_column_data(const IColumn&, size_t row, size_t self_row) override { LOG(FATAL) << "should not call the method in column object"; } diff --git a/be/src/vec/columns/column_string.h b/be/src/vec/columns/column_string.h index 04a599f5e9b..b858ab86bf3 100644 --- a/be/src/vec/columns/column_string.h +++ b/be/src/vec/columns/column_string.h @@ -516,10 +516,6 @@ public: ColumnPtr replicate(const Offsets& replicate_offsets) const override; - MutableColumns scatter(ColumnIndex num_columns, const Selector& selector) const override { - return scatter_impl<ColumnString>(num_columns, selector); - } - void append_data_by_selector(MutableColumnPtr& res, const IColumn::Selector& selector) const override { append_data_by_selector_impl<ColumnString>(res, selector); diff --git a/be/src/vec/columns/column_struct.cpp b/be/src/vec/columns/column_struct.cpp index b1a415de272..d075b040e6d 100644 --- a/be/src/vec/columns/column_struct.cpp +++ b/be/src/vec/columns/column_struct.cpp @@ -319,29 +319,6 @@ MutableColumnPtr ColumnStruct::get_shrinked_column() { return ColumnStruct::create(std::move(new_columns)); } -MutableColumns ColumnStruct::scatter(ColumnIndex num_columns, const Selector& selector) const { - const size_t tuple_size = columns.size(); - std::vector<MutableColumns> scattered_tuple_elements(tuple_size); - - for (size_t tuple_element_idx = 0; tuple_element_idx < tuple_size; ++tuple_element_idx) { - scattered_tuple_elements[tuple_element_idx] = - columns[tuple_element_idx]->scatter(num_columns, selector); - } - - MutableColumns res(num_columns); - - for (size_t scattered_idx = 0; scattered_idx < num_columns; ++scattered_idx) { - MutableColumns new_columns(tuple_size); - for (size_t tuple_element_idx = 0; tuple_element_idx < tuple_size; ++tuple_element_idx) { - new_columns[tuple_element_idx] = - std::move(scattered_tuple_elements[tuple_element_idx][scattered_idx]); - } - res[scattered_idx] = ColumnStruct::create(std::move(new_columns)); - } - - return res; -} - void ColumnStruct::reserve(size_t n) { const size_t tuple_size = columns.size(); for (size_t i = 0; i < tuple_size; ++i) { diff --git a/be/src/vec/columns/column_struct.h b/be/src/vec/columns/column_struct.h index ce4b5f461d7..34d1e3ecf0e 100644 --- a/be/src/vec/columns/column_struct.h +++ b/be/src/vec/columns/column_struct.h @@ -151,7 +151,6 @@ public: size_t filter(const Filter& filter) override; ColumnPtr permute(const Permutation& perm, size_t limit) const override; ColumnPtr replicate(const Offsets& offsets) const override; - MutableColumns scatter(ColumnIndex num_columns, const Selector& selector) const override; // ColumnPtr index(const IColumn & indexes, size_t limit) const override; int compare_at(size_t n, size_t m, const IColumn& rhs_, int nan_direction_hint) const override; diff --git a/be/src/vec/columns/column_vector.h b/be/src/vec/columns/column_vector.h index a2cfb7cd041..7e035b8b47a 100644 --- a/be/src/vec/columns/column_vector.h +++ b/be/src/vec/columns/column_vector.h @@ -191,10 +191,14 @@ public: } void insert_range_of_integer(T begin, T end) { - auto old_size = data.size(); - data.resize(old_size + (end - begin)); - for (int i = 0; i < end - begin; i++) { - data[old_size + i] = begin + i; + if constexpr (std::is_integral_v<T>) { + auto old_size = data.size(); + data.resize(old_size + (end - begin)); + for (int i = 0; i < end - begin; i++) { + data[old_size + i] = begin + i; + } + } else { + LOG(FATAL) << "double column not support insert_range_of_integer"; } } @@ -404,11 +408,6 @@ public: ColumnPtr replicate(const IColumn::Offsets& offsets) const override; - MutableColumns scatter(IColumn::ColumnIndex num_columns, - const IColumn::Selector& selector) const override { - return this->template scatter_impl<Self>(num_columns, selector); - } - void append_data_by_selector(MutableColumnPtr& res, const IColumn::Selector& selector) const override { this->template append_data_by_selector_impl<Self>(res, selector); diff --git a/be/src/vec/columns/predicate_column.h b/be/src/vec/columns/predicate_column.h index 198c7ee9cd4..2a390d39d29 100644 --- a/be/src/vec/columns/predicate_column.h +++ b/be/src/vec/columns/predicate_column.h @@ -429,12 +429,6 @@ public: __builtin_unreachable(); } - [[noreturn]] MutableColumns scatter(IColumn::ColumnIndex num_columns, - const IColumn::Selector& selector) const override { - LOG(FATAL) << "scatter not supported in PredicateColumnType"; - __builtin_unreachable(); - } - void append_data_by_selector(MutableColumnPtr& res, const IColumn::Selector& selector) const override { LOG(FATAL) << "append_data_by_selector is not supported in PredicateColumnType!"; diff --git a/be/src/vec/common/uint128.h b/be/src/vec/common/uint128.h index a9c30328ab7..28b1f62dc72 100644 --- a/be/src/vec/common/uint128.h +++ b/be/src/vec/common/uint128.h @@ -20,6 +20,7 @@ #pragma once +#include <cstdint> #include <iomanip> #include <sstream> #include <tuple> @@ -39,7 +40,13 @@ struct UInt128 { UInt128() = default; explicit UInt128(const UInt64 low_, const UInt64 high_) : low(low_), high(high_) {} + explicit UInt128(const Int128 rhs) : low(rhs % UINT64_MAX), high(rhs / UINT64_MAX) {} explicit UInt128(const UInt64 rhs) : low(rhs), high() {} + explicit UInt128(const int rhs) : low(rhs), high() {} + explicit UInt128(const int64_t rhs) : low(rhs), high() {} + explicit UInt128(const uint32_t rhs) : low(rhs), high() {} + explicit UInt128(const double rhs) + : low((UInt64)rhs % UINT64_MAX), high(UInt64(rhs / double(INT64_MAX))) {} auto tuple() const { return std::tie(high, low); } diff --git a/be/src/vec/core/types.h b/be/src/vec/core/types.h index fd3e16e0a2b..73025b166e5 100644 --- a/be/src/vec/core/types.h +++ b/be/src/vec/core/types.h @@ -541,11 +541,11 @@ struct Decimal { /// If T is integral, the given value will be rounded to integer. template <std::floating_point U> - static constexpr U type_round(U value) noexcept { + static constexpr T type_round(U value) noexcept { if constexpr (wide::IntegralConcept<T>()) { - return round(value); + return T(round(value)); } - return value; + return T(value); } static Decimal double_to_decimal(double value_) { diff --git a/be/src/vec/data_types/data_type.h b/be/src/vec/data_types/data_type.h index bc53fac6a37..e708cda164e 100644 --- a/be/src/vec/data_types/data_type.h +++ b/be/src/vec/data_types/data_type.h @@ -57,7 +57,7 @@ using DataTypePtr = std::shared_ptr<const IDataType>; using DataTypes = std::vector<DataTypePtr>; constexpr auto SERIALIZED_MEM_SIZE_LIMIT = 256; inline size_t upper_int32(size_t size) { - return (3 + size) / 4.0; + return size_t((3 + size) / 4.0); } /** Properties of data type. diff --git a/be/src/vec/data_types/data_type_decimal.h b/be/src/vec/data_types/data_type_decimal.h index 234078ad4c1..8bd7f8b0153 100644 --- a/be/src/vec/data_types/data_type_decimal.h +++ b/be/src/vec/data_types/data_type_decimal.h @@ -653,7 +653,8 @@ void convert_to_decimal(typename ToDataType::FieldType* dst, } } for (size_t i = 0; i < size; ++i) { - dst[i].value = FromFieldType(src[i] * multiplier.value + ((src[i] >= 0) ? 0.5 : -0.5)); + dst[i].value = typename ToDataType::FieldType::NativeType( + FromFieldType(src[i] * multiplier.value + ((src[i] >= 0) ? 0.5 : -0.5))); } } else { using DecimalFrom = diff --git a/be/src/vec/data_types/serde/data_type_number_serde.h b/be/src/vec/data_types/serde/data_type_number_serde.h index fedee87d3bd..28e2ade1664 100644 --- a/be/src/vec/data_types/serde/data_type_number_serde.h +++ b/be/src/vec/data_types/serde/data_type_number_serde.h @@ -330,7 +330,7 @@ Status DataTypeNumberSerDe<T>::read_one_cell_from_json(IColumn& column, } else if (value.IsInt64()) { col.insert_value((T)value.GetInt64()); } else if (value.IsFloat() || value.IsDouble()) { - col.insert_value((T)value.GetDouble()); + col.insert_value(T(value.GetDouble())); } else { CHECK(false) << "Improssible"; } diff --git a/be/src/vec/exec/scan/scanner_context.cpp b/be/src/vec/exec/scan/scanner_context.cpp index bb04046ef9f..8d4a9b3a164 100644 --- a/be/src/vec/exec/scan/scanner_context.cpp +++ b/be/src/vec/exec/scan/scanner_context.cpp @@ -327,8 +327,8 @@ void ScannerContext::_try_to_scale_up() { bool is_scale_up = false; // calculate the number of scanners that can be scheduled - int num_add = std::min(_num_running_scanners * SCALE_UP_RATIO, - _max_thread_num * MAX_SCALE_UP_RATIO - _num_running_scanners); + int num_add = int(std::min(_num_running_scanners * SCALE_UP_RATIO, + _max_thread_num * MAX_SCALE_UP_RATIO - _num_running_scanners)); if (_estimated_block_size > 0) { int most_add = (_max_bytes_in_queue - _free_blocks_memory_usage) / _estimated_block_size; diff --git a/be/src/vec/exec/vset_operation_node.cpp b/be/src/vec/exec/vset_operation_node.cpp index 16c267b26df..d1f4d8ac2c8 100644 --- a/be/src/vec/exec/vset_operation_node.cpp +++ b/be/src/vec/exec/vset_operation_node.cpp @@ -521,8 +521,8 @@ void VSetOperationNode<is_intersect>::refresh_hash_table() { bool is_need_shrink = arg.hash_table->should_be_shrink(_valid_element_in_hash_tbl); if (is_intersect || is_need_shrink) { - tmp_hash_table->init_buf_size( - _valid_element_in_hash_tbl / arg.hash_table->get_factor() + 1); + tmp_hash_table->init_buf_size(size_t( + _valid_element_in_hash_tbl / arg.hash_table->get_factor() + 1)); } arg.init_iterator(); diff --git a/be/src/vec/exprs/table_function/vexplode_json_array.cpp b/be/src/vec/exprs/table_function/vexplode_json_array.cpp index 1a149d949af..fbff29390e9 100644 --- a/be/src/vec/exprs/table_function/vexplode_json_array.cpp +++ b/be/src/vec/exprs/table_function/vexplode_json_array.cpp @@ -66,7 +66,7 @@ int ParsedData::set_output(ExplodeJsonArrayType type, rapidjson::Document& docum } else if (value < min_value) { _backup_int[i] = min_value; } else { - _backup_int[i] = value; + _backup_int[i] = long(value); } _data[i] = &_backup_int[i]; } else { diff --git a/be/src/vec/functions/array/function_array_join.h b/be/src/vec/functions/array/function_array_join.h index 583738e4319..d184765edf6 100644 --- a/be/src/vec/functions/array/function_array_join.h +++ b/be/src/vec/functions/array/function_array_join.h @@ -147,7 +147,7 @@ private: if (is_decimal) { DecimalV2Value decimal_value = - (DecimalV2Value)(src_data_concrete->get_data()[j]); + (DecimalV2Value)(int128_t(src_data_concrete->get_data()[j])); std::string decimal_str = decimal_value.to_string(); _fill_result_string(decimal_str, sep_str, result_str, is_first_elem); } else { diff --git a/be/src/vec/functions/function_cast.h b/be/src/vec/functions/function_cast.h index 79762af86ce..22022925f8d 100644 --- a/be/src/vec/functions/function_cast.h +++ b/be/src/vec/functions/function_cast.h @@ -216,12 +216,12 @@ struct TimeCast { template <typename T, typename S> //requires {std::is_arithmetic_v<T> && std::is_arithmetic_v<S>} static bool try_parse_time(T from, S& x, const cctz::time_zone& local_time_zone) { - int64 seconds = from / 100; + int64 seconds = int64(from / 100); int64 hour = 0, minute = 0, second = 0; - second = from - 100 * seconds; + second = int64(from - 100 * seconds); from /= 100; - seconds = from / 100; - minute = from - 100 * seconds; + seconds = int64(from / 100); + minute = int64(from - 100 * seconds); hour = seconds; if (minute >= 60 || second >= 60) { return false; @@ -388,7 +388,7 @@ struct ConvertImpl { DataTypeDateTimeV2::cast_to_date_v2(vec_from[i], vec_to[i]); } else { UInt32 scale = additions; - vec_to[i] = vec_from[i] / std::pow(10, 6 - scale); + vec_to[i] = ToFieldType(vec_from[i] / std::pow(10, 6 - scale)); } } else if constexpr (IsTimeType<ToDataType>) { if constexpr (IsDateTimeType<ToDataType> && IsDateV2Type<FromDataType>) { @@ -515,7 +515,7 @@ struct ConvertImplToTimeType { [&](auto narrow_integral) { for (size_t i = 0; i < size; ++i) { auto& date_value = reinterpret_cast<DateValueType&>(vec_to[i]); - vec_null_map_to[i] = !date_value.from_date_int64(vec_from[i]); + vec_null_map_to[i] = !date_value.from_date_int64(int64_t(vec_from[i])); // DateType of VecDateTimeValue should cast to date if constexpr (IsDateType<ToDataType>) { date_value.cast_to_date(); diff --git a/be/src/vec/functions/function_quantile_state.cpp b/be/src/vec/functions/function_quantile_state.cpp index 1d9afc209a3..524909314dc 100644 --- a/be/src/vec/functions/function_quantile_state.cpp +++ b/be/src/vec/functions/function_quantile_state.cpp @@ -134,7 +134,7 @@ public: float compression = 2048; if (compression_arg) { auto compression_arg_val = compression_arg->get_value<Float32>(); - if (compression_arg_val && compression_arg_val >= QUANTILE_STATE_COMPRESSION_MIN && + if (compression_arg_val >= QUANTILE_STATE_COMPRESSION_MIN && compression_arg_val <= QUANTILE_STATE_COMPRESSION_MAX) { compression = compression_arg_val; } diff --git a/be/src/vec/functions/int_div.h b/be/src/vec/functions/int_div.h index 605d6d8339a..91952a3db25 100644 --- a/be/src/vec/functions/int_div.h +++ b/be/src/vec/functions/int_div.h @@ -45,13 +45,13 @@ struct DivideIntegralImpl { if (!is_null) { if constexpr (!std::is_floating_point_v<A> && !std::is_same_v<A, Int128> && !std::is_same_v<A, Int8> && !std::is_same_v<A, UInt8>) { - const auto divider = libdivide::divider<A>(b); + const auto divider = libdivide::divider<A>(A(b)); for (size_t i = 0; i < size; i++) { c[i] = a[i] / divider; } } else { for (size_t i = 0; i < size; i++) { - c[i] = a[i] / b; + c[i] = Result(a[i] / b); } } } @@ -60,7 +60,7 @@ struct DivideIntegralImpl { template <typename Result = ResultType> static inline Result apply(A a, B b, UInt8& is_null) { is_null = b == 0; - return a / (b + is_null); + return Result(a / (b + is_null)); } }; diff --git a/be/src/vec/sink/writer/vtablet_writer.cpp b/be/src/vec/sink/writer/vtablet_writer.cpp index ce53029731a..cf6dc0b70ed 100644 --- a/be/src/vec/sink/writer/vtablet_writer.cpp +++ b/be/src/vec/sink/writer/vtablet_writer.cpp @@ -980,10 +980,10 @@ void VTabletWriter::_send_batch_process() { SCOPED_ATTACH_TASK(_state); SCOPED_CONSUME_MEM_TRACKER(_mem_tracker); - int sleep_time = config::olap_table_sink_send_interval_microseconds * - (_vpartition->is_auto_partition() - ? config::olap_table_sink_send_interval_auto_partition_factor - : 1); + int sleep_time = int(config::olap_table_sink_send_interval_microseconds * + (_vpartition->is_auto_partition() + ? config::olap_table_sink_send_interval_auto_partition_factor + : 1)); while (true) { // incremental open will temporarily make channels into abnormal state. stop checking when this. diff --git a/be/test/olap/wal/wal_manager_test.cpp b/be/test/olap/wal/wal_manager_test.cpp index 2dc59cec9d9..afb4c7696ef 100644 --- a/be/test/olap/wal/wal_manager_test.cpp +++ b/be/test/olap/wal/wal_manager_test.cpp @@ -171,13 +171,13 @@ TEST_F(WalManagerTest, TestDynamicWalSpaceLimt) { _env->wal_mgr()->wal_limit_test_bytes = available_bytes; config::group_commit_wal_max_disk_limit = "5%"; EXPECT_EQ(_env->wal_mgr()->_init_wal_dirs_info(), Status::OK()); - wal_limit_bytes = available_bytes * 0.05; + wal_limit_bytes = size_t(available_bytes * 0.05); EXPECT_EQ(_env->wal_mgr()->wal_limit_test_bytes, wal_limit_bytes); _env->wal_mgr()->wal_limit_test_bytes = available_bytes; config::group_commit_wal_max_disk_limit = "50%"; EXPECT_EQ(_env->wal_mgr()->_init_wal_dirs_info(), Status::OK()); - wal_limit_bytes = available_bytes * 0.5; + wal_limit_bytes = size_t(available_bytes * 0.5); EXPECT_EQ(_env->wal_mgr()->wal_limit_test_bytes, wal_limit_bytes); _env->wal_mgr()->wal_limit_test_bytes = available_bytes; diff --git a/be/test/vec/core/block_spill_test.cpp b/be/test/vec/core/block_spill_test.cpp index 45156dee48c..af30479e10a 100644 --- a/be/test/vec/core/block_spill_test.cpp +++ b/be/test/vec/core/block_spill_test.cpp @@ -336,7 +336,7 @@ TEST_F(TestBlockSpill, TestDecimal) { decimal_column.get()) ->get_data(); for (int i = 0; i < total_rows; ++i) { - __int128_t value = i * pow(10, 9) + i * pow(10, 8); + __int128_t value = __int128_t(i * pow(10, 9) + i * pow(10, 8)); decimal_data.push_back(value); } vectorized::ColumnWithTypeAndName test_decimal(decimal_column->get_ptr(), decimal_data_type, @@ -365,7 +365,7 @@ TEST_F(TestBlockSpill, TestDecimal) { auto* real_column = (vectorized::ColumnDecimal<vectorized::Decimal<vectorized::Int128>>*)column.get(); for (size_t j = 0; j < batch_size; ++j) { - __int128_t value = (j + i * batch_size) * (pow(10, 9) + pow(10, 8)); + __int128_t value = __int128_t((j + i * batch_size) * (pow(10, 9) + pow(10, 8))); EXPECT_EQ(real_column->get_element(j).value, value); } } @@ -392,7 +392,7 @@ TEST_F(TestBlockSpill, TestDecimalNullable) { if ((i + 1) % batch_size == 0) { nullable_col->insert_data(nullptr, 0); } else { - __int128_t value = i * pow(10, 9) + i * pow(10, 8); + __int128_t value = __int128_t(i * pow(10, 9) + i * pow(10, 8)); nullable_col->insert_data((const char*)&value, sizeof(value)); } } @@ -427,7 +427,7 @@ TEST_F(TestBlockSpill, TestDecimalNullable) { if ((j + 1) % batch_size == 0) { ASSERT_TRUE(real_column->is_null_at(j)); } else { - __int128_t value = (j + i * batch_size) * (pow(10, 9) + pow(10, 8)); + __int128_t value = __int128_t((j + i * batch_size) * (pow(10, 9) + pow(10, 8))); EXPECT_EQ(decimal_col.get_element(j).value, value); } } diff --git a/be/test/vec/core/block_test.cpp b/be/test/vec/core/block_test.cpp index 4b2ae60fdf7..db770ef29da 100644 --- a/be/test/vec/core/block_test.cpp +++ b/be/test/vec/core/block_test.cpp @@ -165,7 +165,7 @@ void serialize_and_deserialize_test(segment_v2::CompressionTypePB compression_ty decimal_column.get()) ->get_data(); for (int i = 0; i < 1024; ++i) { - __int128_t value = i * pow(10, 9) + i * pow(10, 8); + __int128_t value = __int128_t(i * pow(10, 9) + i * pow(10, 8)); data.push_back(value); } vectorized::ColumnWithTypeAndName type_and_name(decimal_column->get_ptr(), @@ -322,7 +322,7 @@ TEST(BlockTest, dump_data) { decimal_column.get()) ->get_data(); for (int i = 0; i < 1024; ++i) { - __int128_t value = i * pow(10, 9) + i * pow(10, 8); + __int128_t value = __int128_t(i * pow(10, 9) + i * pow(10, 8)); decimal_data.push_back(value); } vectorized::ColumnWithTypeAndName test_decimal(decimal_column->get_ptr(), decimal_data_type, diff --git a/be/test/vec/data_types/serde/data_type_serde_arrow_test.cpp b/be/test/vec/data_types/serde/data_type_serde_arrow_test.cpp index bce3e419775..4793ae8128a 100644 --- a/be/test/vec/data_types/serde/data_type_serde_arrow_test.cpp +++ b/be/test/vec/data_types/serde/data_type_serde_arrow_test.cpp @@ -244,7 +244,7 @@ void serialize_and_deserialize_arrow_test() { decimal_column.get()) ->get_data(); for (int i = 0; i < row_num; ++i) { - __int128_t value = i * pow(10, 9) + i * pow(10, 8); + __int128_t value = __int128_t(i * pow(10, 9) + i * pow(10, 8)); data.push_back(value); } vectorized::ColumnWithTypeAndName type_and_name(decimal_column->get_ptr(), diff --git a/be/test/vec/data_types/serde/data_type_serde_mysql_test.cpp b/be/test/vec/data_types/serde/data_type_serde_mysql_test.cpp index 420687329bd..35c169da7aa 100644 --- a/be/test/vec/data_types/serde/data_type_serde_mysql_test.cpp +++ b/be/test/vec/data_types/serde/data_type_serde_mysql_test.cpp @@ -158,7 +158,7 @@ void serialize_and_deserialize_mysql_test() { decimal_column.get()) ->get_data(); for (int i = 0; i < row_num; ++i) { - __int128_t value = i * pow(10, 9) + i * pow(10, 8); + auto value = __int128_t(i * pow(10, 9) + i * pow(10, 8)); data.push_back(value); } vectorized::ColumnWithTypeAndName type_and_name(decimal_column->get_ptr(), diff --git a/be/test/vec/data_types/serde/data_type_serde_pb_test.cpp b/be/test/vec/data_types/serde/data_type_serde_pb_test.cpp index 78cd4649998..beda6c88a9c 100644 --- a/be/test/vec/data_types/serde/data_type_serde_pb_test.cpp +++ b/be/test/vec/data_types/serde/data_type_serde_pb_test.cpp @@ -109,7 +109,7 @@ inline void serialize_and_deserialize_pb_test() { decimal_column.get()) ->get_data(); for (int i = 0; i < 1024; ++i) { - __int128_t value = i * pow(10, 9) + i * pow(10, 8); + __int128_t value = __int128_t(i * pow(10, 9) + i * pow(10, 8)); data.push_back(value); } check_pb_col(decimal_data_type, *decimal_column.get()); diff --git a/be/test/vec/data_types/serde/data_type_serde_test.cpp b/be/test/vec/data_types/serde/data_type_serde_test.cpp index ea1626790a3..ef235254db5 100644 --- a/be/test/vec/data_types/serde/data_type_serde_test.cpp +++ b/be/test/vec/data_types/serde/data_type_serde_test.cpp @@ -107,7 +107,7 @@ inline void serialize_and_deserialize_pb_test() { decimal_column.get()) ->get_data(); for (int i = 0; i < 1024; ++i) { - __int128_t value = i * pow(10, 9) + i * pow(10, 8); + __int128_t value = __int128_t(i * pow(10, 9) + i * pow(10, 8)); data.push_back(value); } check_pb_col(decimal_data_type, *decimal_column.get()); diff --git a/be/test/vec/jsonb/serialize_test.cpp b/be/test/vec/jsonb/serialize_test.cpp index bfbf5620e08..04eb96dce62 100644 --- a/be/test/vec/jsonb/serialize_test.cpp +++ b/be/test/vec/jsonb/serialize_test.cpp @@ -385,7 +385,7 @@ TEST(BlockSerializeTest, JsonbBlock) { decimal_column.get()) ->get_data(); for (int i = 0; i < 1024; ++i) { - __int128_t value = i * pow(10, 9) + i * pow(10, 8); + __int128_t value = __int128_t(i * pow(10, 9) + i * pow(10, 8)); data.push_back(value); } vectorized::ColumnWithTypeAndName type_and_name(decimal_column->get_ptr(), --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org