From 2344aaf33771ff24f0ae7152fc93f532753bcfc0 Mon Sep 17 00:00:00 2001 From: Jerry Hu Date: Mon, 5 Feb 2024 16:08:49 +0800 Subject: [PATCH] [fix](join) JoinHashTable::pre_build_idxs should be const (#30837) --- be/src/vec/common/hash_table/join_hash_table.h | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/be/src/vec/common/hash_table/join_hash_table.h b/be/src/vec/common/hash_table/join_hash_table.h index 5ae0a13ace..d2d6dfc2ed 100644 --- a/be/src/vec/common/hash_table/join_hash_table.h +++ b/be/src/vec/common/hash_table/join_hash_table.h @@ -234,17 +234,16 @@ public: bool has_null_key() { return _has_null_key; } - void pre_build_idxs(std::vector& buckets, const uint8_t* null_map) { - const auto first_at_bucket_size = first[bucket_size]; + void pre_build_idxs(std::vector& buckets, const uint8_t* null_map) const { if (null_map) { - first[bucket_size] = bucket_size; // distinguish between not matched and null + for (unsigned int& bucket : buckets) { + bucket = bucket == bucket_size ? bucket_size : first[bucket]; + } + } else { + for (unsigned int& bucket : buckets) { + bucket = first[bucket]; + } } - - for (unsigned int& bucket : buckets) { - bucket = first[bucket]; - } - - first[bucket_size] = first_at_bucket_size; } private: