This is an automated email from the ASF dual-hosted git repository.

zclll pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new b0d1e3725b8 [env](compiler)Reduce hash join build template 
instantiations (#61349)
b0d1e3725b8 is described below

commit b0d1e3725b8b6d29e5311ea2f00df71655e96bb9
Author: Mryange <[email protected]>
AuthorDate: Thu Mar 19 14:54:34 2026 +0800

    [env](compiler)Reduce hash join build template instantiations (#61349)
    
    before
    ```
    [1/1] Compiling: be/src/exec/operator/hashjoin_build_sink.cpp
      → 69.6s
    ```
    
    now
    ```
    [1/1] Compiling: be/src/exec/operator/hashjoin_build_sink.cpp
      → 48.9s
    ```
---
 be/src/exec/operator/hashjoin_build_sink.cpp | 19 +++++++------------
 be/src/exec/operator/hashjoin_build_sink.h   |  5 +++--
 2 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/be/src/exec/operator/hashjoin_build_sink.cpp 
b/be/src/exec/operator/hashjoin_build_sink.cpp
index 238d0caabf9..db29682c831 100644
--- a/be/src/exec/operator/hashjoin_build_sink.cpp
+++ b/be/src/exec/operator/hashjoin_build_sink.cpp
@@ -590,22 +590,19 @@ Status 
HashJoinBuildSinkLocalState::process_build_block(RuntimeState* state, Blo
     RETURN_IF_ERROR(_hash_table_init(state, raw_ptrs));
 
     Status st = std::visit(
-            Overload {[&](std::monostate& arg, auto join_op,
-                          auto short_circuit_for_null_in_build_side,
-                          auto with_other_conjuncts) -> Status {
+            Overload {[&](std::monostate& arg, auto join_op) -> Status {
                           throw Exception(Status::FatalError("FATAL: uninited 
hash table"));
                       },
-                      [&](auto&& arg, auto&& join_op, auto 
short_circuit_for_null_in_build_side,
-                          auto with_other_conjuncts) -> Status {
+                      [&](auto&& arg, auto&& join_op) -> Status {
                           using HashTableCtxType = std::decay_t<decltype(arg)>;
                           using JoinOpType = std::decay_t<decltype(join_op)>;
                           ProcessHashTableBuild<HashTableCtxType> 
hash_table_build_process(
                                   rows, raw_ptrs, this, state->batch_size(), 
state);
-                          auto st = hash_table_build_process.template run<
-                                  JoinOpType::value, 
short_circuit_for_null_in_build_side,
-                                  with_other_conjuncts>(
+                          auto st = hash_table_build_process.template 
run<JoinOpType::value>(
                                   arg, null_map_val ? 
&null_map_val->get_data() : nullptr,
-                                  &_shared_state->_has_null_in_build_side);
+                                  &_shared_state->_has_null_in_build_side,
+                                  p._short_circuit_for_null_in_build_side,
+                                  p._have_other_join_conjunct);
                           COUNTER_SET(_memory_used_counter,
                                       _build_blocks_memory_usage->value() +
                                               
(int64_t)(arg.hash_table->get_byte_size() +
@@ -613,9 +610,7 @@ Status 
HashJoinBuildSinkLocalState::process_build_block(RuntimeState* state, Blo
                           return st;
                       }},
             _shared_state->hash_table_variant_vector.front()->method_variant,
-            _shared_state->join_op_variants,
-            make_bool_variant(p._short_circuit_for_null_in_build_side),
-            make_bool_variant((p._have_other_join_conjunct)));
+            _shared_state->join_op_variants);
     return st;
 }
 
diff --git a/be/src/exec/operator/hashjoin_build_sink.h 
b/be/src/exec/operator/hashjoin_build_sink.h
index bb7c16207d5..c6f492e8df7 100644
--- a/be/src/exec/operator/hashjoin_build_sink.h
+++ b/be/src/exec/operator/hashjoin_build_sink.h
@@ -212,8 +212,9 @@ struct ProcessHashTableBuild {
               _batch_size(batch_size),
               _state(state) {}
 
-    template <int JoinOpType, bool short_circuit_for_null, bool 
with_other_conjuncts>
-    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, 
bool* has_null_key) {
+    template <int JoinOpType>
+    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, 
bool* has_null_key,
+               bool short_circuit_for_null, bool with_other_conjuncts) {
         if (null_map) {
             // first row is mocked and is null
             if (simd::contain_one(null_map->data() + 1, _rows - 1)) {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to