Coverage Report

Created: 2026-03-15 01:14

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exec/operator/hashjoin_build_sink.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
18
#pragma once
19
20
#include "exec/operator/join_build_sink_operator.h"
21
#include "exec/operator/operator.h"
22
#include "exec/runtime_filter/runtime_filter_producer_helper.h"
23
24
namespace doris {
25
#include "common/compile_check_begin.h"
26
class HashJoinBuildSinkOperatorX;
27
28
class HashJoinBuildSinkLocalState MOCK_REMOVE(final)
29
        : public JoinBuildSinkLocalState<HashJoinSharedState, HashJoinBuildSinkLocalState> {
30
public:
31
    ENABLE_FACTORY_CREATOR(HashJoinBuildSinkLocalState);
32
    using Base = JoinBuildSinkLocalState<HashJoinSharedState, HashJoinBuildSinkLocalState>;
33
    using Parent = HashJoinBuildSinkOperatorX;
34
    HashJoinBuildSinkLocalState(DataSinkOperatorXBase* parent, RuntimeState* state);
35
72.0k
    ~HashJoinBuildSinkLocalState() override = default;
36
37
    Status init(RuntimeState* state, LocalSinkStateInfo& info) override;
38
    Status open(RuntimeState* state) override;
39
    Status terminate(RuntimeState* state) override;
40
    Status process_build_block(RuntimeState* state, Block& block);
41
42
    // Build ASOF JOIN pre-sorted index for O(log K) lookup
43
    Status build_asof_index(Block& block);
44
45
    void init_short_circuit_for_probe();
46
47
    bool build_unique() const;
48
49
4
    Dependency* finishdependency() override { return _finish_dependency.get(); }
50
51
    Status close(RuntimeState* state, Status exec_status) override;
52
53
    [[nodiscard]] MOCK_FUNCTION size_t get_reserve_mem_size(RuntimeState* state, bool eos);
54
55
protected:
56
    Status _hash_table_init(RuntimeState* state, const ColumnRawPtrs& raw_ptrs);
57
    void _set_build_side_has_external_nullmap(Block& block, const std::vector<int>& res_col_ids);
58
    Status _do_evaluate(Block& block, VExprContextSPtrs& exprs,
59
                        RuntimeProfile::Counter& expr_call_timer, std::vector<int>& res_col_ids);
60
    std::vector<uint16_t> _convert_block_to_null(Block& block);
61
    Status _extract_join_column(Block& block, ColumnUInt8::MutablePtr& null_map,
62
                                ColumnRawPtrs& raw_ptrs, const std::vector<int>& res_col_ids);
63
    friend class HashJoinBuildSinkOperatorX;
64
    friend class PartitionedHashJoinSinkLocalState;
65
    template <class HashTableContext>
66
    friend struct ProcessHashTableBuild;
67
68
    // build expr
69
    VExprContextSPtrs _build_expr_ctxs;
70
    std::vector<ColumnPtr> _key_columns_holder;
71
72
    bool _should_build_hash_table = true;
73
74
    size_t _evaluate_mem_usage = 0;
75
    size_t _build_side_rows = 0;
76
    int _task_idx;
77
78
    MutableBlock _build_side_mutable_block;
79
    std::shared_ptr<RuntimeFilterProducerHelper> _runtime_filter_producer_helper;
80
81
    /*
82
     * The comparison result of a null value with any other value is null,
83
     * which means that for most join(exclude: null aware join, null equal safe join),
84
     * the result of an equality condition involving null should be false,
85
     * so null does not need to be added to the hash table.
86
     */
87
    bool _build_side_has_external_nullmap = false;
88
    std::vector<int> _build_col_ids;
89
    std::shared_ptr<CountedFinishDependency> _finish_dependency;
90
91
    RuntimeProfile::Counter* _build_table_timer = nullptr;
92
    RuntimeProfile::Counter* _build_expr_call_timer = nullptr;
93
    RuntimeProfile::Counter* _build_table_insert_timer = nullptr;
94
    RuntimeProfile::Counter* _build_side_merge_block_timer = nullptr;
95
96
    RuntimeProfile::Counter* _build_blocks_memory_usage = nullptr;
97
    RuntimeProfile::Counter* _hash_table_memory_usage = nullptr;
98
    RuntimeProfile::Counter* _build_arena_memory_usage = nullptr;
99
100
    // ASOF index build counters
101
    RuntimeProfile::Counter* _asof_index_total_timer = nullptr;
102
    RuntimeProfile::Counter* _asof_index_expr_timer = nullptr;
103
    RuntimeProfile::Counter* _asof_index_sort_timer = nullptr;
104
    RuntimeProfile::Counter* _asof_index_group_timer = nullptr;
105
};
106
107
class HashJoinBuildSinkOperatorX MOCK_REMOVE(final)
108
        : public JoinBuildSinkOperatorX<HashJoinBuildSinkLocalState> {
109
public:
110
    HashJoinBuildSinkOperatorX(ObjectPool* pool, int operator_id, int dest_id,
111
                               const TPlanNode& tnode, const DescriptorTbl& descs);
112
48.0k
    Status init(const TDataSink& tsink) override {
113
48.0k
        return Status::InternalError("{} should not init with TDataSink",
114
48.0k
                                     JoinBuildSinkOperatorX<HashJoinBuildSinkLocalState>::_name);
115
48.0k
    }
116
117
    Status init(const TPlanNode& tnode, RuntimeState* state) override;
118
119
    Status prepare(RuntimeState* state) override;
120
121
    Status sink(RuntimeState* state, Block* in_block, bool eos) override;
122
123
    size_t get_reserve_mem_size(RuntimeState* state, bool eos) override;
124
125
    [[nodiscard]] size_t get_memory_usage(RuntimeState* state) const;
126
127
    MOCK_FUNCTION std::string get_memory_usage_debug_str(RuntimeState* state) const;
128
129
33
    bool should_dry_run(RuntimeState* state) override {
130
33
        return _is_broadcast_join && !state->get_sink_local_state()
131
1
                                              ->cast<HashJoinBuildSinkLocalState>()
132
1
                                              ._should_build_hash_table;
133
33
    }
134
135
33
    DataDistribution required_data_distribution(RuntimeState* /*state*/) const override {
136
33
        if (_join_op == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN) {
137
6
            return {ExchangeType::NOOP};
138
27
        } else if (_is_broadcast_join) {
139
1
            return _child->is_serial_operator() ? DataDistribution(ExchangeType::PASS_TO_ONE)
140
1
                                                : DataDistribution(ExchangeType::NOOP);
141
1
        }
142
26
        return _join_distribution == TJoinDistributionType::BUCKET_SHUFFLE ||
143
26
                               _join_distribution == TJoinDistributionType::COLOCATE
144
26
                       ? DataDistribution(ExchangeType::BUCKET_HASH_SHUFFLE, _partition_exprs)
145
26
                       : DataDistribution(ExchangeType::HASH_SHUFFLE, _partition_exprs);
146
33
    }
147
148
144k
    bool is_shuffled_operator() const override {
149
144k
        return _join_distribution == TJoinDistributionType::PARTITIONED ||
150
144k
               _join_distribution == TJoinDistributionType::BUCKET_SHUFFLE ||
151
144k
               _join_distribution == TJoinDistributionType::COLOCATE;
152
144k
    }
153
72.0k
    bool is_colocated_operator() const override {
154
72.0k
        return _join_distribution == TJoinDistributionType::BUCKET_SHUFFLE ||
155
72.0k
               _join_distribution == TJoinDistributionType::COLOCATE;
156
72.0k
    }
157
72.0k
    bool followed_by_shuffled_operator() const override {
158
72.0k
        return (is_shuffled_operator() && !is_colocated_operator()) ||
159
72.0k
               _followed_by_shuffled_operator;
160
72.0k
    }
161
46.3k
    std::vector<bool>& is_null_safe_eq_join() { return _is_null_safe_eq_join; }
162
163
48.0k
    bool allow_left_semi_direct_return(RuntimeState* state) const {
164
        // only single join conjunct and left semi join can direct return
165
48.0k
        return _join_op == TJoinOp::LEFT_SEMI_JOIN && _build_expr_ctxs.size() == 1 &&
166
48.0k
               !_have_other_join_conjunct && !_is_mark_join &&
167
48.0k
               state->query_options().__isset.enable_left_semi_direct_return_opt &&
168
48.0k
               state->query_options().enable_left_semi_direct_return_opt;
169
48.0k
    }
170
171
private:
172
    friend class HashJoinBuildSinkLocalState;
173
174
    const TJoinDistributionType::type _join_distribution;
175
    // build expr
176
    VExprContextSPtrs _build_expr_ctxs;
177
    // mark the build hash table whether it needs to store null value
178
    std::vector<bool> _serialize_null_into_key;
179
180
    // mark the join column whether support null eq
181
    std::vector<bool> _is_null_safe_eq_join;
182
183
    bool _is_broadcast_join = false;
184
    std::vector<TExpr> _partition_exprs;
185
186
    std::vector<SlotId> _hash_output_slot_ids;
187
    std::vector<bool> _should_keep_column_flags;
188
    bool _should_keep_hash_key_column = false;
189
    // if build side has variant column and need output variant column
190
    // need to finalize variant column to speed up the join op
191
    bool _need_finalize_variant_column = false;
192
193
    // ASOF JOIN: build-side expression extracted from MATCH_CONDITION's right child
194
    // Prepared against build child's row_desc directly (no intermediate tuple needed)
195
    VExprContextSPtr _asof_build_side_expr;
196
    TExprOpcode::type _asof_opcode = TExprOpcode::INVALID_OPCODE;
197
198
    bool _use_shared_hash_table = false;
199
    std::atomic<bool> _signaled = false;
200
    std::mutex _mutex;
201
    std::vector<std::shared_ptr<Dependency>> _finish_dependencies;
202
    std::map<int, std::shared_ptr<RuntimeFilterWrapper>> _runtime_filters;
203
};
204
205
template <class HashTableContext>
206
struct ProcessHashTableBuild {
207
    ProcessHashTableBuild(uint32_t rows, ColumnRawPtrs& build_raw_ptrs,
208
                          HashJoinBuildSinkLocalState* parent, int batch_size, RuntimeState* state)
209
48.0k
            : _rows(rows),
210
48.0k
              _build_raw_ptrs(build_raw_ptrs),
211
48.0k
              _parent(parent),
212
48.0k
              _batch_size(batch_size),
213
48.0k
              _state(state) {}
_ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISC_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Line
Count
Source
209
14.1k
            : _rows(rows),
210
14.1k
              _build_raw_ptrs(build_raw_ptrs),
211
14.1k
              _parent(parent),
212
14.1k
              _batch_size(batch_size),
213
14.1k
              _state(state) {}
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISB_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISB_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISB_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISB_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISE_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISE_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISB_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Line
Count
Source
209
160
            : _rows(rows),
210
160
              _build_raw_ptrs(build_raw_ptrs),
211
160
              _parent(parent),
212
160
              _batch_size(batch_size),
213
160
              _state(state) {}
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISB_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Line
Count
Source
209
80
            : _rows(rows),
210
80
              _build_raw_ptrs(build_raw_ptrs),
211
80
              _parent(parent),
212
80
              _batch_size(batch_size),
213
80
              _state(state) {}
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISB_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Line
Count
Source
209
322
            : _rows(rows),
210
322
              _build_raw_ptrs(build_raw_ptrs),
211
322
              _parent(parent),
212
322
              _batch_size(batch_size),
213
322
              _state(state) {}
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISB_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Line
Count
Source
209
800
            : _rows(rows),
210
800
              _build_raw_ptrs(build_raw_ptrs),
211
800
              _parent(parent),
212
800
              _batch_size(batch_size),
213
800
              _state(state) {}
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISE_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Line
Count
Source
209
240
            : _rows(rows),
210
240
              _build_raw_ptrs(build_raw_ptrs),
211
240
              _parent(parent),
212
240
              _batch_size(batch_size),
213
240
              _state(state) {}
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISB_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Line
Count
Source
209
3.92k
            : _rows(rows),
210
3.92k
              _build_raw_ptrs(build_raw_ptrs),
211
3.92k
              _parent(parent),
212
3.92k
              _batch_size(batch_size),
213
3.92k
              _state(state) {}
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISC_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Line
Count
Source
209
3.20k
            : _rows(rows),
210
3.20k
              _build_raw_ptrs(build_raw_ptrs),
211
3.20k
              _parent(parent),
212
3.20k
              _batch_size(batch_size),
213
3.20k
              _state(state) {}
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISC_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Line
Count
Source
209
8.00k
            : _rows(rows),
210
8.00k
              _build_raw_ptrs(build_raw_ptrs),
211
8.00k
              _parent(parent),
212
8.00k
              _batch_size(batch_size),
213
8.00k
              _state(state) {}
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISC_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISE_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Line
Count
Source
209
8.00k
            : _rows(rows),
210
8.00k
              _build_raw_ptrs(build_raw_ptrs),
211
8.00k
              _parent(parent),
212
8.00k
              _batch_size(batch_size),
213
8.00k
              _state(state) {}
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISC_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Line
Count
Source
209
960
            : _rows(rows),
210
960
              _build_raw_ptrs(build_raw_ptrs),
211
960
              _parent(parent),
212
960
              _batch_size(batch_size),
213
960
              _state(state) {}
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISE_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Line
Count
Source
209
7.92k
            : _rows(rows),
210
7.92k
              _build_raw_ptrs(build_raw_ptrs),
211
7.92k
              _parent(parent),
212
7.92k
              _batch_size(batch_size),
213
7.92k
              _state(state) {}
_ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEEC2EjRSt6vectorIPKNS_7IColumnESaISC_EEPNS_27HashJoinBuildSinkLocalStateEiPNS_12RuntimeStateE
Line
Count
Source
209
324
            : _rows(rows),
210
324
              _build_raw_ptrs(build_raw_ptrs),
211
324
              _parent(parent),
212
324
              _batch_size(batch_size),
213
324
              _state(state) {}
214
215
    template <int JoinOpType, bool short_circuit_for_null, bool with_other_conjuncts>
216
48.0k
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
48.0k
        if (null_map) {
218
            // first row is mocked and is null
219
39.2k
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
35.5k
                *has_null_key = true;
221
35.5k
            }
222
39.2k
            if (short_circuit_for_null && *has_null_key) {
223
3.55k
                return Status::OK();
224
3.55k
            }
225
39.2k
        }
226
227
44.4k
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
44.4k
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
44.4k
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
44.4k
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
868
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
868
        }
235
236
44.4k
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
44.4k
                                            null_map ? null_map->data() : nullptr, true, true,
238
44.4k
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
44.4k
        bool keep_null_key = false;
241
44.4k
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
44.4k
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
44.4k
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
44.4k
        } else if (_parent->parent()
247
44.4k
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
44.4k
                                   .is_null_safe_eq_join()
249
44.4k
                                   .size() == 1 &&
250
44.4k
                   _parent->parent()
251
1.83k
                           ->cast<HashJoinBuildSinkOperatorX>()
252
1.83k
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
44.4k
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
44.4k
                                         _rows, keep_null_key);
259
44.4k
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
44.4k
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
44.4k
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
44.4k
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
44.4k
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
44.4k
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
44.4k
        return Status::OK();
267
48.0k
    }
_ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
1.41k
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
1.41k
        if (null_map) {
218
            // first row is mocked and is null
219
1.06k
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
1.05k
                *has_null_key = true;
221
1.05k
            }
222
1.06k
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
1.06k
        }
226
227
1.41k
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
1.41k
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
1.41k
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
1.41k
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
1.41k
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
1.41k
                                            null_map ? null_map->data() : nullptr, true, true,
238
1.41k
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
1.41k
        bool keep_null_key = false;
241
1.41k
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
1.41k
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
1.41k
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
1.41k
        } else if (_parent->parent()
247
1.41k
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
1.41k
                                   .is_null_safe_eq_join()
249
1.41k
                                   .size() == 1 &&
250
1.41k
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
1.41k
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
1.41k
                                         _rows, keep_null_key);
259
1.41k
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
1.41k
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
1.41k
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
1.41k
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
1.41k
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
1.41k
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
1.41k
        return Status::OK();
267
1.41k
    }
_ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
1
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
1
        if (null_map) {
218
            // first row is mocked and is null
219
1
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
1
                *has_null_key = true;
221
1
            }
222
1
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
1
        }
226
227
1
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
1
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
1
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
1
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
1
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
1
                                            null_map ? null_map->data() : nullptr, true, true,
238
1
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
1
        bool keep_null_key = false;
241
1
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
1
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
1
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
1
        } else if (_parent->parent()
247
1
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
1
                                   .is_null_safe_eq_join()
249
1
                                   .size() == 1 &&
250
1
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
1
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
1
                                         _rows, keep_null_key);
259
1
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
1
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
1
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
1
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
1
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
1
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
1
        return Status::OK();
267
1
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
1.41k
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
1.41k
        if (null_map) {
218
            // first row is mocked and is null
219
1.05k
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
1.05k
                *has_null_key = true;
221
1.05k
            }
222
1.05k
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
1.05k
        }
226
227
1.41k
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
1.41k
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
1.41k
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
1.41k
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
1.41k
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
1.41k
                                            null_map ? null_map->data() : nullptr, true, true,
238
1.41k
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
1.41k
        bool keep_null_key = false;
241
1.41k
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
1.41k
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
1.41k
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
1.41k
        } else if (_parent->parent()
247
1.41k
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
1.41k
                                   .is_null_safe_eq_join()
249
1.41k
                                   .size() == 1 &&
250
1.41k
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
1.41k
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
1.41k
                                         _rows, keep_null_key);
259
1.41k
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
1.41k
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
1.41k
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
1.41k
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
1.41k
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
1.41k
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
1.41k
        return Status::OK();
267
1.41k
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
1.41k
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
1.41k
        if (null_map) {
218
            // first row is mocked and is null
219
1.05k
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
1.05k
                *has_null_key = true;
221
1.05k
            }
222
1.05k
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
1.05k
        }
226
227
1.41k
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
1.41k
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
1.41k
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
1.41k
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
1.41k
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
1.41k
                                            null_map ? null_map->data() : nullptr, true, true,
238
1.41k
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
1.41k
        bool keep_null_key = false;
241
1.41k
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
1.41k
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
1.41k
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
1.41k
        } else if (_parent->parent()
247
1.41k
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
1.41k
                                   .is_null_safe_eq_join()
249
1.41k
                                   .size() == 1 &&
250
1.41k
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
1.41k
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
1.41k
                                         _rows, keep_null_key);
259
1.41k
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
1.41k
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
1.41k
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
1.41k
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
1.41k
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
1.41k
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
1.41k
        return Status::OK();
267
1.41k
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
1.41k
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
1.41k
        if (null_map) {
218
            // first row is mocked and is null
219
1.41k
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
1.05k
                *has_null_key = true;
221
1.05k
            }
222
1.41k
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
1.41k
        }
226
227
1.41k
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
1.41k
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
1.41k
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
1.41k
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
1.41k
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
1.41k
                                            null_map ? null_map->data() : nullptr, true, true,
238
1.41k
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
1.41k
        bool keep_null_key = false;
241
1.41k
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
1.41k
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
1.41k
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
1.41k
        } else if (_parent->parent()
247
1.41k
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
1.41k
                                   .is_null_safe_eq_join()
249
1.41k
                                   .size() == 1 &&
250
1.41k
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
1.41k
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
1.41k
                                         _rows, keep_null_key);
259
1.41k
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
1.41k
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
1.41k
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
1.41k
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
1.41k
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
1.41k
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
1.41k
        return Status::OK();
267
1.41k
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
1.41k
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
1.41k
        if (null_map) {
218
            // first row is mocked and is null
219
1.41k
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
1.05k
                *has_null_key = true;
221
1.05k
            }
222
1.41k
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
1.41k
        }
226
227
1.41k
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
1.41k
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
1.41k
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
1.41k
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
1.41k
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
1.41k
                                            null_map ? null_map->data() : nullptr, true, true,
238
1.41k
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
1.41k
        bool keep_null_key = false;
241
1.41k
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
1.41k
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
1.41k
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
1.41k
        } else if (_parent->parent()
247
1.41k
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
1.41k
                                   .is_null_safe_eq_join()
249
1.41k
                                   .size() == 1 &&
250
1.41k
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
1.41k
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
1.41k
                                         _rows, keep_null_key);
259
1.41k
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
1.41k
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
1.41k
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
1.41k
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
1.41k
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
1.41k
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
1.41k
        return Status::OK();
267
1.41k
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
1.41k
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
1.41k
        if (null_map) {
218
            // first row is mocked and is null
219
1.05k
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
1.05k
                *has_null_key = true;
221
1.05k
            }
222
1.05k
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
1.05k
        }
226
227
1.41k
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
1.41k
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
1.41k
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
1.41k
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
1.41k
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
1.41k
                                            null_map ? null_map->data() : nullptr, true, true,
238
1.41k
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
1.41k
        bool keep_null_key = false;
241
1.41k
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
1.41k
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
1.41k
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
1.41k
        } else if (_parent->parent()
247
1.41k
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
1.41k
                                   .is_null_safe_eq_join()
249
1.41k
                                   .size() == 1 &&
250
1.41k
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
1.41k
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
1.41k
                                         _rows, keep_null_key);
259
1.41k
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
1.41k
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
1.41k
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
1.41k
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
1.41k
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
1.41k
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
1.41k
        return Status::OK();
267
1.41k
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
1.40k
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
1.40k
        if (null_map) {
218
            // first row is mocked and is null
219
1.05k
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
1.05k
                *has_null_key = true;
221
1.05k
            }
222
1.05k
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
1.05k
        }
226
227
1.40k
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
1.40k
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
1.40k
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
1.40k
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
1.40k
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
1.40k
                                            null_map ? null_map->data() : nullptr, true, true,
238
1.40k
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
1.40k
        bool keep_null_key = false;
241
1.40k
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
1.40k
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
1.40k
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
1.40k
        } else if (_parent->parent()
247
1.40k
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
1.40k
                                   .is_null_safe_eq_join()
249
1.40k
                                   .size() == 1 &&
250
1.40k
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
1.40k
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
1.40k
                                         _rows, keep_null_key);
259
1.40k
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
1.40k
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
1.40k
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
1.40k
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
1.40k
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
1.40k
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
1.40k
        return Status::OK();
267
1.40k
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
1.40k
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
1.40k
        if (null_map) {
218
            // first row is mocked and is null
219
1.05k
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
1.05k
                *has_null_key = true;
221
1.05k
            }
222
1.05k
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
1.05k
        }
226
227
1.40k
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
1.40k
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
1.40k
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
1.40k
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
1.40k
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
1.40k
                                            null_map ? null_map->data() : nullptr, true, true,
238
1.40k
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
1.40k
        bool keep_null_key = false;
241
1.40k
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
1.40k
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
1.40k
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
1.40k
        } else if (_parent->parent()
247
1.40k
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
1.40k
                                   .is_null_safe_eq_join()
249
1.40k
                                   .size() == 1 &&
250
1.40k
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
1.40k
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
1.40k
                                         _rows, keep_null_key);
259
1.40k
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
1.40k
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
1.40k
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
1.40k
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
1.40k
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
1.40k
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
1.40k
        return Status::OK();
267
1.40k
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
1
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
1
        if (null_map) {
218
            // first row is mocked and is null
219
1
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
1
                *has_null_key = true;
221
1
            }
222
1
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
1
        }
226
227
1
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
1
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
1
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
1
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
1
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
1
                                            null_map ? null_map->data() : nullptr, true, true,
238
1
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
1
        bool keep_null_key = false;
241
1
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
1
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
1
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
1
        } else if (_parent->parent()
247
1
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
1
                                   .is_null_safe_eq_join()
249
1
                                   .size() == 1 &&
250
1
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
1
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
1
                                         _rows, keep_null_key);
259
1
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
1
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
1
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
1
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
1
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
1
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
1
        return Status::OK();
267
1
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
1.41k
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
1.41k
        if (null_map) {
218
            // first row is mocked and is null
219
1.41k
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
1.05k
                *has_null_key = true;
221
1.05k
            }
222
1.41k
            if (short_circuit_for_null && *has_null_key) {
223
1.05k
                return Status::OK();
224
1.05k
            }
225
1.41k
        }
226
227
354
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
354
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
354
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
354
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
354
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
354
                                            null_map ? null_map->data() : nullptr, true, true,
238
354
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
354
        bool keep_null_key = false;
241
354
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
354
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
354
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
354
        } else if (_parent->parent()
247
354
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
354
                                   .is_null_safe_eq_join()
249
354
                                   .size() == 1 &&
250
354
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
354
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
354
                                         _rows, keep_null_key);
259
354
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
354
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
354
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
354
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
354
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
354
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
354
        return Status::OK();
267
1.41k
    }
_ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
2
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
2
        if (null_map) {
218
            // first row is mocked and is null
219
2
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
2
                *has_null_key = true;
221
2
            }
222
2
            if (short_circuit_for_null && *has_null_key) {
223
2
                return Status::OK();
224
2
            }
225
2
        }
226
227
0
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
0
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
0
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
0
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
0
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
0
                                            null_map ? null_map->data() : nullptr, true, true,
238
0
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
0
        bool keep_null_key = false;
241
0
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
0
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
0
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
0
        } else if (_parent->parent()
247
0
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
0
                                   .is_null_safe_eq_join()
249
0
                                   .size() == 1 &&
250
0
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
0
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
0
                                         _rows, keep_null_key);
259
0
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
0
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
0
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
0
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
0
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
0
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
0
        return Status::OK();
267
2
    }
_ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
1.40k
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
1.40k
        if (null_map) {
218
            // first row is mocked and is null
219
1.05k
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
1.05k
                *has_null_key = true;
221
1.05k
            }
222
1.05k
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
1.05k
        }
226
227
1.40k
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
1.40k
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
1.40k
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
1.40k
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
1.40k
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
1.40k
                                            null_map ? null_map->data() : nullptr, true, true,
238
1.40k
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
1.40k
        bool keep_null_key = false;
241
1.40k
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
1.40k
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
1.40k
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
1.40k
        } else if (_parent->parent()
247
1.40k
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
1.40k
                                   .is_null_safe_eq_join()
249
1.40k
                                   .size() == 1 &&
250
1.40k
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
1.40k
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
1.40k
                                         _rows, keep_null_key);
259
1.40k
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
1.40k
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
1.40k
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
1.40k
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
1.40k
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
1.40k
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
1.40k
        return Status::OK();
267
1.40k
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_16MethodSerializedINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIhNS_13JoinHashTableIh9HashCRC32IhELb0EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberItNS_13JoinHashTableIt9HashCRC32ItELb0EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIjNS_13JoinHashTableIj9HashCRC32IjELb0EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberImNS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodOneNumberIN4wide7integerILm256EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb0EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
16
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
16
        if (null_map) {
218
            // first row is mocked and is null
219
8
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
8
                *has_null_key = true;
221
8
            }
222
8
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
8
        }
226
227
16
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
16
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
16
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
16
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
8
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
8
        }
235
236
16
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
16
                                            null_map ? null_map->data() : nullptr, true, true,
238
16
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
16
        bool keep_null_key = false;
241
16
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
16
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
16
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
16
        } else if (_parent->parent()
247
16
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
16
                                   .is_null_safe_eq_join()
249
16
                                   .size() == 1 &&
250
16
                   _parent->parent()
251
16
                           ->cast<HashJoinBuildSinkOperatorX>()
252
16
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
16
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
16
                                         _rows, keep_null_key);
259
16
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
16
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
16
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
16
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
16
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
16
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
16
        return Status::OK();
267
16
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
16
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
16
        if (null_map) {
218
            // first row is mocked and is null
219
8
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
8
                *has_null_key = true;
221
8
            }
222
8
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
8
        }
226
227
16
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
16
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
16
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
16
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
8
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
8
        }
235
236
16
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
16
                                            null_map ? null_map->data() : nullptr, true, true,
238
16
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
16
        bool keep_null_key = false;
241
16
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
16
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
16
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
16
        } else if (_parent->parent()
247
16
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
16
                                   .is_null_safe_eq_join()
249
16
                                   .size() == 1 &&
250
16
                   _parent->parent()
251
16
                           ->cast<HashJoinBuildSinkOperatorX>()
252
16
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
16
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
16
                                         _rows, keep_null_key);
259
16
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
16
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
16
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
16
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
16
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
16
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
16
        return Status::OK();
267
16
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
16
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
16
        if (null_map) {
218
            // first row is mocked and is null
219
8
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
8
                *has_null_key = true;
221
8
            }
222
8
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
8
        }
226
227
16
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
16
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
16
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
16
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
8
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
8
        }
235
236
16
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
16
                                            null_map ? null_map->data() : nullptr, true, true,
238
16
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
16
        bool keep_null_key = false;
241
16
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
16
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
16
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
16
        } else if (_parent->parent()
247
16
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
16
                                   .is_null_safe_eq_join()
249
16
                                   .size() == 1 &&
250
16
                   _parent->parent()
251
16
                           ->cast<HashJoinBuildSinkOperatorX>()
252
16
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
16
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
16
                                         _rows, keep_null_key);
259
16
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
16
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
16
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
16
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
16
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
16
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
16
        return Status::OK();
267
16
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
16
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
16
        if (null_map) {
218
            // first row is mocked and is null
219
16
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
8
                *has_null_key = true;
221
8
            }
222
16
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
16
        }
226
227
16
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
16
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
16
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
16
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
8
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
8
        }
235
236
16
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
16
                                            null_map ? null_map->data() : nullptr, true, true,
238
16
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
16
        bool keep_null_key = false;
241
16
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
16
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
16
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
16
        } else if (_parent->parent()
247
16
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
16
                                   .is_null_safe_eq_join()
249
16
                                   .size() == 1 &&
250
16
                   _parent->parent()
251
16
                           ->cast<HashJoinBuildSinkOperatorX>()
252
16
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
16
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
16
                                         _rows, keep_null_key);
259
16
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
16
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
16
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
16
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
16
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
16
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
16
        return Status::OK();
267
16
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
16
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
16
        if (null_map) {
218
            // first row is mocked and is null
219
16
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
8
                *has_null_key = true;
221
8
            }
222
16
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
16
        }
226
227
16
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
16
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
16
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
16
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
8
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
8
        }
235
236
16
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
16
                                            null_map ? null_map->data() : nullptr, true, true,
238
16
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
16
        bool keep_null_key = false;
241
16
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
16
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
16
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
16
        } else if (_parent->parent()
247
16
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
16
                                   .is_null_safe_eq_join()
249
16
                                   .size() == 1 &&
250
16
                   _parent->parent()
251
16
                           ->cast<HashJoinBuildSinkOperatorX>()
252
16
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
16
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
16
                                         _rows, keep_null_key);
259
16
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
16
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
16
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
16
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
16
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
16
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
16
        return Status::OK();
267
16
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
16
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
16
        if (null_map) {
218
            // first row is mocked and is null
219
8
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
8
                *has_null_key = true;
221
8
            }
222
8
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
8
        }
226
227
16
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
16
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
16
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
16
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
8
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
8
        }
235
236
16
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
16
                                            null_map ? null_map->data() : nullptr, true, true,
238
16
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
16
        bool keep_null_key = false;
241
16
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
16
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
16
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
16
        } else if (_parent->parent()
247
16
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
16
                                   .is_null_safe_eq_join()
249
16
                                   .size() == 1 &&
250
16
                   _parent->parent()
251
16
                           ->cast<HashJoinBuildSinkOperatorX>()
252
16
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
16
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
16
                                         _rows, keep_null_key);
259
16
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
16
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
16
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
16
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
16
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
16
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
16
        return Status::OK();
267
16
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
16
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
16
        if (null_map) {
218
            // first row is mocked and is null
219
8
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
8
                *has_null_key = true;
221
8
            }
222
8
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
8
        }
226
227
16
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
16
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
16
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
16
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
8
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
8
        }
235
236
16
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
16
                                            null_map ? null_map->data() : nullptr, true, true,
238
16
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
16
        bool keep_null_key = false;
241
16
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
16
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
16
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
16
        } else if (_parent->parent()
247
16
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
16
                                   .is_null_safe_eq_join()
249
16
                                   .size() == 1 &&
250
16
                   _parent->parent()
251
16
                           ->cast<HashJoinBuildSinkOperatorX>()
252
16
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
16
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
16
                                         _rows, keep_null_key);
259
16
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
16
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
16
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
16
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
16
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
16
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
16
        return Status::OK();
267
16
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
16
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
16
        if (null_map) {
218
            // first row is mocked and is null
219
8
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
8
                *has_null_key = true;
221
8
            }
222
8
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
8
        }
226
227
16
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
16
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
16
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
16
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
8
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
8
        }
235
236
16
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
16
                                            null_map ? null_map->data() : nullptr, true, true,
238
16
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
16
        bool keep_null_key = false;
241
16
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
16
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
16
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
16
        } else if (_parent->parent()
247
16
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
16
                                   .is_null_safe_eq_join()
249
16
                                   .size() == 1 &&
250
16
                   _parent->parent()
251
16
                           ->cast<HashJoinBuildSinkOperatorX>()
252
16
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
16
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
16
                                         _rows, keep_null_key);
259
16
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
16
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
16
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
16
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
16
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
16
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
16
        return Status::OK();
267
16
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
16
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
16
        if (null_map) {
218
            // first row is mocked and is null
219
16
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
8
                *has_null_key = true;
221
8
            }
222
16
            if (short_circuit_for_null && *has_null_key) {
223
8
                return Status::OK();
224
8
            }
225
16
        }
226
227
8
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
8
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
8
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
8
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
8
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
8
                                            null_map ? null_map->data() : nullptr, true, true,
238
8
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
8
        bool keep_null_key = false;
241
8
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
8
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
8
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
8
        } else if (_parent->parent()
247
8
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
8
                                   .is_null_safe_eq_join()
249
8
                                   .size() == 1 &&
250
8
                   _parent->parent()
251
8
                           ->cast<HashJoinBuildSinkOperatorX>()
252
8
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
8
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
8
                                         _rows, keep_null_key);
259
8
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
8
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
8
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
8
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
8
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
8
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
8
        return Status::OK();
267
16
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
16
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
16
        if (null_map) {
218
            // first row is mocked and is null
219
8
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
8
                *has_null_key = true;
221
8
            }
222
8
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
8
        }
226
227
16
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
16
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
16
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
16
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
8
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
8
        }
235
236
16
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
16
                                            null_map ? null_map->data() : nullptr, true, true,
238
16
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
16
        bool keep_null_key = false;
241
16
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
16
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
16
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
16
        } else if (_parent->parent()
247
16
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
16
                                   .is_null_safe_eq_join()
249
16
                                   .size() == 1 &&
250
16
                   _parent->parent()
251
16
                           ->cast<HashJoinBuildSinkOperatorX>()
252
16
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
16
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
16
                                         _rows, keep_null_key);
259
16
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
16
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
16
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
16
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
16
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
16
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
16
        return Status::OK();
267
16
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIhNS_13JoinHashTableIh9HashCRC32IhELb1EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
8
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
8
        if (null_map) {
218
            // first row is mocked and is null
219
4
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
4
                *has_null_key = true;
221
4
            }
222
4
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
4
        }
226
227
8
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
8
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
8
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
8
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
4
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
4
        }
235
236
8
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
8
                                            null_map ? null_map->data() : nullptr, true, true,
238
8
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
8
        bool keep_null_key = false;
241
8
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
8
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
8
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
8
        } else if (_parent->parent()
247
8
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
8
                                   .is_null_safe_eq_join()
249
8
                                   .size() == 1 &&
250
8
                   _parent->parent()
251
8
                           ->cast<HashJoinBuildSinkOperatorX>()
252
8
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
8
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
8
                                         _rows, keep_null_key);
259
8
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
8
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
8
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
8
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
8
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
8
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
8
        return Status::OK();
267
8
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
8
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
8
        if (null_map) {
218
            // first row is mocked and is null
219
4
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
4
                *has_null_key = true;
221
4
            }
222
4
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
4
        }
226
227
8
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
8
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
8
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
8
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
4
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
4
        }
235
236
8
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
8
                                            null_map ? null_map->data() : nullptr, true, true,
238
8
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
8
        bool keep_null_key = false;
241
8
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
8
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
8
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
8
        } else if (_parent->parent()
247
8
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
8
                                   .is_null_safe_eq_join()
249
8
                                   .size() == 1 &&
250
8
                   _parent->parent()
251
8
                           ->cast<HashJoinBuildSinkOperatorX>()
252
8
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
8
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
8
                                         _rows, keep_null_key);
259
8
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
8
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
8
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
8
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
8
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
8
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
8
        return Status::OK();
267
8
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
8
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
8
        if (null_map) {
218
            // first row is mocked and is null
219
4
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
4
                *has_null_key = true;
221
4
            }
222
4
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
4
        }
226
227
8
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
8
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
8
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
8
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
4
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
4
        }
235
236
8
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
8
                                            null_map ? null_map->data() : nullptr, true, true,
238
8
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
8
        bool keep_null_key = false;
241
8
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
8
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
8
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
8
        } else if (_parent->parent()
247
8
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
8
                                   .is_null_safe_eq_join()
249
8
                                   .size() == 1 &&
250
8
                   _parent->parent()
251
8
                           ->cast<HashJoinBuildSinkOperatorX>()
252
8
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
8
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
8
                                         _rows, keep_null_key);
259
8
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
8
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
8
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
8
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
8
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
8
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
8
        return Status::OK();
267
8
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
8
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
8
        if (null_map) {
218
            // first row is mocked and is null
219
8
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
4
                *has_null_key = true;
221
4
            }
222
8
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
8
        }
226
227
8
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
8
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
8
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
8
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
4
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
4
        }
235
236
8
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
8
                                            null_map ? null_map->data() : nullptr, true, true,
238
8
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
8
        bool keep_null_key = false;
241
8
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
8
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
8
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
8
        } else if (_parent->parent()
247
8
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
8
                                   .is_null_safe_eq_join()
249
8
                                   .size() == 1 &&
250
8
                   _parent->parent()
251
8
                           ->cast<HashJoinBuildSinkOperatorX>()
252
8
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
8
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
8
                                         _rows, keep_null_key);
259
8
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
8
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
8
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
8
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
8
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
8
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
8
        return Status::OK();
267
8
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
8
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
8
        if (null_map) {
218
            // first row is mocked and is null
219
8
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
4
                *has_null_key = true;
221
4
            }
222
8
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
8
        }
226
227
8
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
8
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
8
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
8
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
4
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
4
        }
235
236
8
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
8
                                            null_map ? null_map->data() : nullptr, true, true,
238
8
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
8
        bool keep_null_key = false;
241
8
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
8
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
8
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
8
        } else if (_parent->parent()
247
8
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
8
                                   .is_null_safe_eq_join()
249
8
                                   .size() == 1 &&
250
8
                   _parent->parent()
251
8
                           ->cast<HashJoinBuildSinkOperatorX>()
252
8
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
8
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
8
                                         _rows, keep_null_key);
259
8
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
8
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
8
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
8
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
8
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
8
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
8
        return Status::OK();
267
8
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
8
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
8
        if (null_map) {
218
            // first row is mocked and is null
219
4
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
4
                *has_null_key = true;
221
4
            }
222
4
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
4
        }
226
227
8
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
8
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
8
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
8
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
4
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
4
        }
235
236
8
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
8
                                            null_map ? null_map->data() : nullptr, true, true,
238
8
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
8
        bool keep_null_key = false;
241
8
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
8
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
8
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
8
        } else if (_parent->parent()
247
8
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
8
                                   .is_null_safe_eq_join()
249
8
                                   .size() == 1 &&
250
8
                   _parent->parent()
251
8
                           ->cast<HashJoinBuildSinkOperatorX>()
252
8
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
8
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
8
                                         _rows, keep_null_key);
259
8
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
8
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
8
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
8
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
8
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
8
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
8
        return Status::OK();
267
8
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
8
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
8
        if (null_map) {
218
            // first row is mocked and is null
219
4
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
4
                *has_null_key = true;
221
4
            }
222
4
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
4
        }
226
227
8
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
8
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
8
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
8
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
4
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
4
        }
235
236
8
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
8
                                            null_map ? null_map->data() : nullptr, true, true,
238
8
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
8
        bool keep_null_key = false;
241
8
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
8
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
8
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
8
        } else if (_parent->parent()
247
8
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
8
                                   .is_null_safe_eq_join()
249
8
                                   .size() == 1 &&
250
8
                   _parent->parent()
251
8
                           ->cast<HashJoinBuildSinkOperatorX>()
252
8
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
8
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
8
                                         _rows, keep_null_key);
259
8
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
8
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
8
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
8
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
8
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
8
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
8
        return Status::OK();
267
8
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
8
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
8
        if (null_map) {
218
            // first row is mocked and is null
219
4
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
4
                *has_null_key = true;
221
4
            }
222
4
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
4
        }
226
227
8
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
8
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
8
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
8
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
4
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
4
        }
235
236
8
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
8
                                            null_map ? null_map->data() : nullptr, true, true,
238
8
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
8
        bool keep_null_key = false;
241
8
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
8
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
8
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
8
        } else if (_parent->parent()
247
8
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
8
                                   .is_null_safe_eq_join()
249
8
                                   .size() == 1 &&
250
8
                   _parent->parent()
251
8
                           ->cast<HashJoinBuildSinkOperatorX>()
252
8
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
8
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
8
                                         _rows, keep_null_key);
259
8
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
8
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
8
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
8
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
8
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
8
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
8
        return Status::OK();
267
8
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
8
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
8
        if (null_map) {
218
            // first row is mocked and is null
219
8
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
4
                *has_null_key = true;
221
4
            }
222
8
            if (short_circuit_for_null && *has_null_key) {
223
4
                return Status::OK();
224
4
            }
225
8
        }
226
227
4
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
4
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
4
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
4
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
4
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
4
                                            null_map ? null_map->data() : nullptr, true, true,
238
4
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
4
        bool keep_null_key = false;
241
4
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
4
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
4
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
4
        } else if (_parent->parent()
247
4
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
4
                                   .is_null_safe_eq_join()
249
4
                                   .size() == 1 &&
250
4
                   _parent->parent()
251
4
                           ->cast<HashJoinBuildSinkOperatorX>()
252
4
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
4
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
4
                                         _rows, keep_null_key);
259
4
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
4
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
4
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
4
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
4
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
4
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
4
        return Status::OK();
267
8
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
8
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
8
        if (null_map) {
218
            // first row is mocked and is null
219
4
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
4
                *has_null_key = true;
221
4
            }
222
4
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
4
        }
226
227
8
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
8
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
8
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
8
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
4
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
4
        }
235
236
8
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
8
                                            null_map ? null_map->data() : nullptr, true, true,
238
8
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
8
        bool keep_null_key = false;
241
8
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
8
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
8
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
8
        } else if (_parent->parent()
247
8
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
8
                                   .is_null_safe_eq_join()
249
8
                                   .size() == 1 &&
250
8
                   _parent->parent()
251
8
                           ->cast<HashJoinBuildSinkOperatorX>()
252
8
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
8
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
8
                                         _rows, keep_null_key);
259
8
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
8
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
8
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
8
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
8
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
8
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
8
        return Status::OK();
267
8
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectItNS_13JoinHashTableIt9HashCRC32ItELb1EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
34
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
34
        if (null_map) {
218
            // first row is mocked and is null
219
16
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
16
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
16
        }
226
227
34
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
34
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
34
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
34
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
16
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
16
        }
235
236
34
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
34
                                            null_map ? null_map->data() : nullptr, true, true,
238
34
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
34
        bool keep_null_key = false;
241
34
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
34
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
34
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
34
        } else if (_parent->parent()
247
34
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
34
                                   .is_null_safe_eq_join()
249
34
                                   .size() == 1 &&
250
34
                   _parent->parent()
251
34
                           ->cast<HashJoinBuildSinkOperatorX>()
252
34
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
34
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
34
                                         _rows, keep_null_key);
259
34
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
34
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
34
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
34
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
34
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
34
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
34
        return Status::OK();
267
34
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
32
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
32
        if (null_map) {
218
            // first row is mocked and is null
219
16
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
16
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
16
        }
226
227
32
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
32
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
32
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
32
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
16
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
16
        }
235
236
32
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
32
                                            null_map ? null_map->data() : nullptr, true, true,
238
32
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
32
        bool keep_null_key = false;
241
32
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
32
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
32
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
32
        } else if (_parent->parent()
247
32
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
32
                                   .is_null_safe_eq_join()
249
32
                                   .size() == 1 &&
250
32
                   _parent->parent()
251
32
                           ->cast<HashJoinBuildSinkOperatorX>()
252
32
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
32
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
32
                                         _rows, keep_null_key);
259
32
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
32
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
32
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
32
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
32
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
32
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
32
        return Status::OK();
267
32
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
32
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
32
        if (null_map) {
218
            // first row is mocked and is null
219
16
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
16
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
16
        }
226
227
32
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
32
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
32
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
32
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
16
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
16
        }
235
236
32
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
32
                                            null_map ? null_map->data() : nullptr, true, true,
238
32
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
32
        bool keep_null_key = false;
241
32
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
32
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
32
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
32
        } else if (_parent->parent()
247
32
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
32
                                   .is_null_safe_eq_join()
249
32
                                   .size() == 1 &&
250
32
                   _parent->parent()
251
32
                           ->cast<HashJoinBuildSinkOperatorX>()
252
32
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
32
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
32
                                         _rows, keep_null_key);
259
32
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
32
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
32
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
32
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
32
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
32
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
32
        return Status::OK();
267
32
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
32
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
32
        if (null_map) {
218
            // first row is mocked and is null
219
32
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
32
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
32
        }
226
227
32
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
32
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
32
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
32
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
16
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
16
        }
235
236
32
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
32
                                            null_map ? null_map->data() : nullptr, true, true,
238
32
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
32
        bool keep_null_key = false;
241
32
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
32
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
32
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
32
        } else if (_parent->parent()
247
32
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
32
                                   .is_null_safe_eq_join()
249
32
                                   .size() == 1 &&
250
32
                   _parent->parent()
251
32
                           ->cast<HashJoinBuildSinkOperatorX>()
252
32
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
32
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
32
                                         _rows, keep_null_key);
259
32
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
32
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
32
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
32
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
32
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
32
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
32
        return Status::OK();
267
32
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
32
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
32
        if (null_map) {
218
            // first row is mocked and is null
219
32
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
32
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
32
        }
226
227
32
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
32
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
32
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
32
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
16
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
16
        }
235
236
32
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
32
                                            null_map ? null_map->data() : nullptr, true, true,
238
32
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
32
        bool keep_null_key = false;
241
32
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
32
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
32
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
32
        } else if (_parent->parent()
247
32
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
32
                                   .is_null_safe_eq_join()
249
32
                                   .size() == 1 &&
250
32
                   _parent->parent()
251
32
                           ->cast<HashJoinBuildSinkOperatorX>()
252
32
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
32
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
32
                                         _rows, keep_null_key);
259
32
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
32
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
32
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
32
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
32
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
32
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
32
        return Status::OK();
267
32
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
32
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
32
        if (null_map) {
218
            // first row is mocked and is null
219
16
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
16
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
16
        }
226
227
32
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
32
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
32
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
32
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
16
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
16
        }
235
236
32
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
32
                                            null_map ? null_map->data() : nullptr, true, true,
238
32
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
32
        bool keep_null_key = false;
241
32
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
32
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
32
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
32
        } else if (_parent->parent()
247
32
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
32
                                   .is_null_safe_eq_join()
249
32
                                   .size() == 1 &&
250
32
                   _parent->parent()
251
32
                           ->cast<HashJoinBuildSinkOperatorX>()
252
32
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
32
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
32
                                         _rows, keep_null_key);
259
32
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
32
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
32
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
32
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
32
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
32
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
32
        return Status::OK();
267
32
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
32
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
32
        if (null_map) {
218
            // first row is mocked and is null
219
16
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
16
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
16
        }
226
227
32
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
32
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
32
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
32
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
16
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
16
        }
235
236
32
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
32
                                            null_map ? null_map->data() : nullptr, true, true,
238
32
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
32
        bool keep_null_key = false;
241
32
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
32
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
32
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
32
        } else if (_parent->parent()
247
32
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
32
                                   .is_null_safe_eq_join()
249
32
                                   .size() == 1 &&
250
32
                   _parent->parent()
251
32
                           ->cast<HashJoinBuildSinkOperatorX>()
252
32
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
32
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
32
                                         _rows, keep_null_key);
259
32
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
32
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
32
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
32
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
32
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
32
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
32
        return Status::OK();
267
32
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
32
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
32
        if (null_map) {
218
            // first row is mocked and is null
219
16
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
16
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
16
        }
226
227
32
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
32
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
32
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
32
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
16
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
16
        }
235
236
32
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
32
                                            null_map ? null_map->data() : nullptr, true, true,
238
32
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
32
        bool keep_null_key = false;
241
32
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
32
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
32
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
32
        } else if (_parent->parent()
247
32
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
32
                                   .is_null_safe_eq_join()
249
32
                                   .size() == 1 &&
250
32
                   _parent->parent()
251
32
                           ->cast<HashJoinBuildSinkOperatorX>()
252
32
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
32
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
32
                                         _rows, keep_null_key);
259
32
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
32
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
32
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
32
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
32
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
32
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
32
        return Status::OK();
267
32
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
32
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
32
        if (null_map) {
218
            // first row is mocked and is null
219
32
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
32
            if (short_circuit_for_null && *has_null_key) {
223
16
                return Status::OK();
224
16
            }
225
32
        }
226
227
16
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
16
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
16
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
16
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
16
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
16
                                            null_map ? null_map->data() : nullptr, true, true,
238
16
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
16
        bool keep_null_key = false;
241
16
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
16
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
16
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
16
        } else if (_parent->parent()
247
16
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
16
                                   .is_null_safe_eq_join()
249
16
                                   .size() == 1 &&
250
16
                   _parent->parent()
251
16
                           ->cast<HashJoinBuildSinkOperatorX>()
252
16
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
16
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
16
                                         _rows, keep_null_key);
259
16
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
16
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
16
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
16
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
16
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
16
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
16
        return Status::OK();
267
32
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
32
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
32
        if (null_map) {
218
            // first row is mocked and is null
219
16
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
16
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
16
        }
226
227
32
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
32
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
32
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
32
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
16
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
16
        }
235
236
32
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
32
                                            null_map ? null_map->data() : nullptr, true, true,
238
32
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
32
        bool keep_null_key = false;
241
32
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
32
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
32
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
32
        } else if (_parent->parent()
247
32
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
32
                                   .is_null_safe_eq_join()
249
32
                                   .size() == 1 &&
250
32
                   _parent->parent()
251
32
                           ->cast<HashJoinBuildSinkOperatorX>()
252
32
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
32
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
32
                                         _rows, keep_null_key);
259
32
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
32
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
32
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
32
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
32
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
32
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
32
        return Status::OK();
267
32
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIjNS_13JoinHashTableIj9HashCRC32IjELb1EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
80
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
80
        if (null_map) {
218
            // first row is mocked and is null
219
40
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
40
                *has_null_key = true;
221
40
            }
222
40
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
40
        }
226
227
80
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
80
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
80
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
80
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
40
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
40
        }
235
236
80
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
80
                                            null_map ? null_map->data() : nullptr, true, true,
238
80
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
80
        bool keep_null_key = false;
241
80
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
80
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
80
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
80
        } else if (_parent->parent()
247
80
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
80
                                   .is_null_safe_eq_join()
249
80
                                   .size() == 1 &&
250
80
                   _parent->parent()
251
80
                           ->cast<HashJoinBuildSinkOperatorX>()
252
80
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
80
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
80
                                         _rows, keep_null_key);
259
80
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
80
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
80
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
80
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
80
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
80
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
80
        return Status::OK();
267
80
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
80
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
80
        if (null_map) {
218
            // first row is mocked and is null
219
40
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
40
                *has_null_key = true;
221
40
            }
222
40
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
40
        }
226
227
80
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
80
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
80
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
80
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
40
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
40
        }
235
236
80
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
80
                                            null_map ? null_map->data() : nullptr, true, true,
238
80
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
80
        bool keep_null_key = false;
241
80
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
80
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
80
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
80
        } else if (_parent->parent()
247
80
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
80
                                   .is_null_safe_eq_join()
249
80
                                   .size() == 1 &&
250
80
                   _parent->parent()
251
80
                           ->cast<HashJoinBuildSinkOperatorX>()
252
80
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
80
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
80
                                         _rows, keep_null_key);
259
80
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
80
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
80
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
80
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
80
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
80
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
80
        return Status::OK();
267
80
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
80
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
80
        if (null_map) {
218
            // first row is mocked and is null
219
40
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
40
                *has_null_key = true;
221
40
            }
222
40
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
40
        }
226
227
80
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
80
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
80
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
80
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
40
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
40
        }
235
236
80
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
80
                                            null_map ? null_map->data() : nullptr, true, true,
238
80
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
80
        bool keep_null_key = false;
241
80
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
80
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
80
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
80
        } else if (_parent->parent()
247
80
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
80
                                   .is_null_safe_eq_join()
249
80
                                   .size() == 1 &&
250
80
                   _parent->parent()
251
80
                           ->cast<HashJoinBuildSinkOperatorX>()
252
80
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
80
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
80
                                         _rows, keep_null_key);
259
80
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
80
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
80
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
80
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
80
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
80
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
80
        return Status::OK();
267
80
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
80
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
80
        if (null_map) {
218
            // first row is mocked and is null
219
80
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
40
                *has_null_key = true;
221
40
            }
222
80
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
80
        }
226
227
80
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
80
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
80
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
80
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
40
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
40
        }
235
236
80
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
80
                                            null_map ? null_map->data() : nullptr, true, true,
238
80
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
80
        bool keep_null_key = false;
241
80
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
80
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
80
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
80
        } else if (_parent->parent()
247
80
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
80
                                   .is_null_safe_eq_join()
249
80
                                   .size() == 1 &&
250
80
                   _parent->parent()
251
80
                           ->cast<HashJoinBuildSinkOperatorX>()
252
80
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
80
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
80
                                         _rows, keep_null_key);
259
80
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
80
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
80
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
80
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
80
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
80
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
80
        return Status::OK();
267
80
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
80
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
80
        if (null_map) {
218
            // first row is mocked and is null
219
80
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
40
                *has_null_key = true;
221
40
            }
222
80
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
80
        }
226
227
80
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
80
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
80
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
80
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
40
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
40
        }
235
236
80
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
80
                                            null_map ? null_map->data() : nullptr, true, true,
238
80
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
80
        bool keep_null_key = false;
241
80
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
80
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
80
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
80
        } else if (_parent->parent()
247
80
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
80
                                   .is_null_safe_eq_join()
249
80
                                   .size() == 1 &&
250
80
                   _parent->parent()
251
80
                           ->cast<HashJoinBuildSinkOperatorX>()
252
80
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
80
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
80
                                         _rows, keep_null_key);
259
80
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
80
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
80
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
80
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
80
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
80
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
80
        return Status::OK();
267
80
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
80
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
80
        if (null_map) {
218
            // first row is mocked and is null
219
40
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
40
                *has_null_key = true;
221
40
            }
222
40
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
40
        }
226
227
80
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
80
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
80
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
80
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
40
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
40
        }
235
236
80
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
80
                                            null_map ? null_map->data() : nullptr, true, true,
238
80
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
80
        bool keep_null_key = false;
241
80
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
80
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
80
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
80
        } else if (_parent->parent()
247
80
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
80
                                   .is_null_safe_eq_join()
249
80
                                   .size() == 1 &&
250
80
                   _parent->parent()
251
80
                           ->cast<HashJoinBuildSinkOperatorX>()
252
80
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
80
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
80
                                         _rows, keep_null_key);
259
80
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
80
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
80
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
80
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
80
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
80
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
80
        return Status::OK();
267
80
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
80
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
80
        if (null_map) {
218
            // first row is mocked and is null
219
40
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
40
                *has_null_key = true;
221
40
            }
222
40
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
40
        }
226
227
80
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
80
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
80
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
80
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
40
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
40
        }
235
236
80
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
80
                                            null_map ? null_map->data() : nullptr, true, true,
238
80
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
80
        bool keep_null_key = false;
241
80
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
80
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
80
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
80
        } else if (_parent->parent()
247
80
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
80
                                   .is_null_safe_eq_join()
249
80
                                   .size() == 1 &&
250
80
                   _parent->parent()
251
80
                           ->cast<HashJoinBuildSinkOperatorX>()
252
80
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
80
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
80
                                         _rows, keep_null_key);
259
80
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
80
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
80
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
80
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
80
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
80
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
80
        return Status::OK();
267
80
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
80
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
80
        if (null_map) {
218
            // first row is mocked and is null
219
40
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
40
                *has_null_key = true;
221
40
            }
222
40
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
40
        }
226
227
80
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
80
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
80
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
80
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
40
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
40
        }
235
236
80
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
80
                                            null_map ? null_map->data() : nullptr, true, true,
238
80
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
80
        bool keep_null_key = false;
241
80
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
80
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
80
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
80
        } else if (_parent->parent()
247
80
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
80
                                   .is_null_safe_eq_join()
249
80
                                   .size() == 1 &&
250
80
                   _parent->parent()
251
80
                           ->cast<HashJoinBuildSinkOperatorX>()
252
80
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
80
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
80
                                         _rows, keep_null_key);
259
80
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
80
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
80
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
80
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
80
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
80
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
80
        return Status::OK();
267
80
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
80
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
80
        if (null_map) {
218
            // first row is mocked and is null
219
80
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
40
                *has_null_key = true;
221
40
            }
222
80
            if (short_circuit_for_null && *has_null_key) {
223
40
                return Status::OK();
224
40
            }
225
80
        }
226
227
40
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
40
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
40
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
40
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
40
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
40
                                            null_map ? null_map->data() : nullptr, true, true,
238
40
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
40
        bool keep_null_key = false;
241
40
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
40
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
40
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
40
        } else if (_parent->parent()
247
40
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
40
                                   .is_null_safe_eq_join()
249
40
                                   .size() == 1 &&
250
40
                   _parent->parent()
251
40
                           ->cast<HashJoinBuildSinkOperatorX>()
252
40
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
40
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
40
                                         _rows, keep_null_key);
259
40
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
40
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
40
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
40
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
40
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
40
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
40
        return Status::OK();
267
80
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
80
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
80
        if (null_map) {
218
            // first row is mocked and is null
219
40
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
40
                *has_null_key = true;
221
40
            }
222
40
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
40
        }
226
227
80
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
80
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
80
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
80
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
40
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
40
        }
235
236
80
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
80
                                            null_map ? null_map->data() : nullptr, true, true,
238
80
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
80
        bool keep_null_key = false;
241
80
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
80
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
80
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
80
        } else if (_parent->parent()
247
80
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
80
                                   .is_null_safe_eq_join()
249
80
                                   .size() == 1 &&
250
80
                   _parent->parent()
251
80
                           ->cast<HashJoinBuildSinkOperatorX>()
252
80
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
80
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
80
                                         _rows, keep_null_key);
259
80
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
80
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
80
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
80
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
80
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
80
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
80
        return Status::OK();
267
80
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectImNS_13JoinHashTableIm9HashCRC32ImELb1EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
24
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
24
        if (null_map) {
218
            // first row is mocked and is null
219
12
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
12
                *has_null_key = true;
221
12
            }
222
12
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
12
        }
226
227
24
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
24
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
24
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
24
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
12
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
12
        }
235
236
24
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
24
                                            null_map ? null_map->data() : nullptr, true, true,
238
24
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
24
        bool keep_null_key = false;
241
24
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
24
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
24
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
24
        } else if (_parent->parent()
247
24
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
24
                                   .is_null_safe_eq_join()
249
24
                                   .size() == 1 &&
250
24
                   _parent->parent()
251
24
                           ->cast<HashJoinBuildSinkOperatorX>()
252
24
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
24
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
24
                                         _rows, keep_null_key);
259
24
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
24
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
24
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
24
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
24
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
24
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
24
        return Status::OK();
267
24
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
24
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
24
        if (null_map) {
218
            // first row is mocked and is null
219
12
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
12
                *has_null_key = true;
221
12
            }
222
12
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
12
        }
226
227
24
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
24
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
24
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
24
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
12
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
12
        }
235
236
24
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
24
                                            null_map ? null_map->data() : nullptr, true, true,
238
24
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
24
        bool keep_null_key = false;
241
24
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
24
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
24
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
24
        } else if (_parent->parent()
247
24
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
24
                                   .is_null_safe_eq_join()
249
24
                                   .size() == 1 &&
250
24
                   _parent->parent()
251
24
                           ->cast<HashJoinBuildSinkOperatorX>()
252
24
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
24
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
24
                                         _rows, keep_null_key);
259
24
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
24
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
24
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
24
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
24
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
24
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
24
        return Status::OK();
267
24
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
24
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
24
        if (null_map) {
218
            // first row is mocked and is null
219
12
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
12
                *has_null_key = true;
221
12
            }
222
12
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
12
        }
226
227
24
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
24
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
24
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
24
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
12
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
12
        }
235
236
24
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
24
                                            null_map ? null_map->data() : nullptr, true, true,
238
24
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
24
        bool keep_null_key = false;
241
24
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
24
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
24
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
24
        } else if (_parent->parent()
247
24
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
24
                                   .is_null_safe_eq_join()
249
24
                                   .size() == 1 &&
250
24
                   _parent->parent()
251
24
                           ->cast<HashJoinBuildSinkOperatorX>()
252
24
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
24
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
24
                                         _rows, keep_null_key);
259
24
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
24
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
24
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
24
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
24
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
24
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
24
        return Status::OK();
267
24
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
24
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
24
        if (null_map) {
218
            // first row is mocked and is null
219
24
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
12
                *has_null_key = true;
221
12
            }
222
24
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
24
        }
226
227
24
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
24
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
24
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
24
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
12
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
12
        }
235
236
24
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
24
                                            null_map ? null_map->data() : nullptr, true, true,
238
24
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
24
        bool keep_null_key = false;
241
24
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
24
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
24
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
24
        } else if (_parent->parent()
247
24
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
24
                                   .is_null_safe_eq_join()
249
24
                                   .size() == 1 &&
250
24
                   _parent->parent()
251
24
                           ->cast<HashJoinBuildSinkOperatorX>()
252
24
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
24
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
24
                                         _rows, keep_null_key);
259
24
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
24
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
24
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
24
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
24
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
24
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
24
        return Status::OK();
267
24
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
24
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
24
        if (null_map) {
218
            // first row is mocked and is null
219
24
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
12
                *has_null_key = true;
221
12
            }
222
24
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
24
        }
226
227
24
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
24
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
24
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
24
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
12
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
12
        }
235
236
24
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
24
                                            null_map ? null_map->data() : nullptr, true, true,
238
24
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
24
        bool keep_null_key = false;
241
24
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
24
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
24
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
24
        } else if (_parent->parent()
247
24
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
24
                                   .is_null_safe_eq_join()
249
24
                                   .size() == 1 &&
250
24
                   _parent->parent()
251
24
                           ->cast<HashJoinBuildSinkOperatorX>()
252
24
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
24
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
24
                                         _rows, keep_null_key);
259
24
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
24
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
24
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
24
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
24
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
24
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
24
        return Status::OK();
267
24
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
24
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
24
        if (null_map) {
218
            // first row is mocked and is null
219
12
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
12
                *has_null_key = true;
221
12
            }
222
12
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
12
        }
226
227
24
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
24
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
24
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
24
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
12
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
12
        }
235
236
24
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
24
                                            null_map ? null_map->data() : nullptr, true, true,
238
24
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
24
        bool keep_null_key = false;
241
24
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
24
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
24
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
24
        } else if (_parent->parent()
247
24
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
24
                                   .is_null_safe_eq_join()
249
24
                                   .size() == 1 &&
250
24
                   _parent->parent()
251
24
                           ->cast<HashJoinBuildSinkOperatorX>()
252
24
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
24
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
24
                                         _rows, keep_null_key);
259
24
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
24
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
24
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
24
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
24
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
24
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
24
        return Status::OK();
267
24
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
24
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
24
        if (null_map) {
218
            // first row is mocked and is null
219
12
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
12
                *has_null_key = true;
221
12
            }
222
12
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
12
        }
226
227
24
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
24
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
24
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
24
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
12
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
12
        }
235
236
24
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
24
                                            null_map ? null_map->data() : nullptr, true, true,
238
24
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
24
        bool keep_null_key = false;
241
24
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
24
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
24
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
24
        } else if (_parent->parent()
247
24
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
24
                                   .is_null_safe_eq_join()
249
24
                                   .size() == 1 &&
250
24
                   _parent->parent()
251
24
                           ->cast<HashJoinBuildSinkOperatorX>()
252
24
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
24
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
24
                                         _rows, keep_null_key);
259
24
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
24
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
24
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
24
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
24
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
24
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
24
        return Status::OK();
267
24
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
24
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
24
        if (null_map) {
218
            // first row is mocked and is null
219
12
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
12
                *has_null_key = true;
221
12
            }
222
12
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
12
        }
226
227
24
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
24
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
24
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
24
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
12
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
12
        }
235
236
24
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
24
                                            null_map ? null_map->data() : nullptr, true, true,
238
24
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
24
        bool keep_null_key = false;
241
24
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
24
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
24
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
24
        } else if (_parent->parent()
247
24
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
24
                                   .is_null_safe_eq_join()
249
24
                                   .size() == 1 &&
250
24
                   _parent->parent()
251
24
                           ->cast<HashJoinBuildSinkOperatorX>()
252
24
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
24
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
24
                                         _rows, keep_null_key);
259
24
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
24
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
24
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
24
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
24
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
24
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
24
        return Status::OK();
267
24
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
24
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
24
        if (null_map) {
218
            // first row is mocked and is null
219
24
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
12
                *has_null_key = true;
221
12
            }
222
24
            if (short_circuit_for_null && *has_null_key) {
223
12
                return Status::OK();
224
12
            }
225
24
        }
226
227
12
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
12
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
12
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
12
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
12
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
12
                                            null_map ? null_map->data() : nullptr, true, true,
238
12
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
12
        bool keep_null_key = false;
241
12
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
12
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
12
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
12
        } else if (_parent->parent()
247
12
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
12
                                   .is_null_safe_eq_join()
249
12
                                   .size() == 1 &&
250
12
                   _parent->parent()
251
12
                           ->cast<HashJoinBuildSinkOperatorX>()
252
12
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
12
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
12
                                         _rows, keep_null_key);
259
12
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
12
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
12
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
12
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
12
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
12
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
12
        return Status::OK();
267
24
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
24
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
24
        if (null_map) {
218
            // first row is mocked and is null
219
12
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
12
                *has_null_key = true;
221
12
            }
222
12
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
12
        }
226
227
24
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
24
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
24
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
24
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
12
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
12
        }
235
236
24
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
24
                                            null_map ? null_map->data() : nullptr, true, true,
238
24
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
24
        bool keep_null_key = false;
241
24
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
24
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
24
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
24
        } else if (_parent->parent()
247
24
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
24
                                   .is_null_safe_eq_join()
249
24
                                   .size() == 1 &&
250
24
                   _parent->parent()
251
24
                           ->cast<HashJoinBuildSinkOperatorX>()
252
24
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
24
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
24
                                         _rows, keep_null_key);
259
24
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
24
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
24
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
24
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
24
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
24
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
24
        return Status::OK();
267
24
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_21MethodOneNumberDirectIN4wide7integerILm128EjEENS_13JoinHashTableIS4_9HashCRC32IS4_ELb1EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
392
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
392
        if (null_map) {
218
            // first row is mocked and is null
219
294
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
294
                *has_null_key = true;
221
294
            }
222
294
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
294
        }
226
227
392
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
392
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
392
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
392
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
392
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
392
                                            null_map ? null_map->data() : nullptr, true, true,
238
392
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
392
        bool keep_null_key = false;
241
392
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
392
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
392
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
392
        } else if (_parent->parent()
247
392
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
392
                                   .is_null_safe_eq_join()
249
392
                                   .size() == 1 &&
250
392
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
392
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
392
                                         _rows, keep_null_key);
259
392
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
392
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
392
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
392
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
392
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
392
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
392
        return Status::OK();
267
392
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
392
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
392
        if (null_map) {
218
            // first row is mocked and is null
219
294
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
294
                *has_null_key = true;
221
294
            }
222
294
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
294
        }
226
227
392
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
392
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
392
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
392
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
392
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
392
                                            null_map ? null_map->data() : nullptr, true, true,
238
392
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
392
        bool keep_null_key = false;
241
392
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
392
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
392
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
392
        } else if (_parent->parent()
247
392
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
392
                                   .is_null_safe_eq_join()
249
392
                                   .size() == 1 &&
250
392
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
392
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
392
                                         _rows, keep_null_key);
259
392
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
392
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
392
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
392
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
392
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
392
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
392
        return Status::OK();
267
392
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
392
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
392
        if (null_map) {
218
            // first row is mocked and is null
219
294
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
294
                *has_null_key = true;
221
294
            }
222
294
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
294
        }
226
227
392
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
392
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
392
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
392
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
392
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
392
                                            null_map ? null_map->data() : nullptr, true, true,
238
392
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
392
        bool keep_null_key = false;
241
392
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
392
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
392
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
392
        } else if (_parent->parent()
247
392
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
392
                                   .is_null_safe_eq_join()
249
392
                                   .size() == 1 &&
250
392
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
392
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
392
                                         _rows, keep_null_key);
259
392
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
392
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
392
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
392
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
392
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
392
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
392
        return Status::OK();
267
392
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
392
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
392
        if (null_map) {
218
            // first row is mocked and is null
219
392
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
294
                *has_null_key = true;
221
294
            }
222
392
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
392
        }
226
227
392
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
392
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
392
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
392
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
392
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
392
                                            null_map ? null_map->data() : nullptr, true, true,
238
392
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
392
        bool keep_null_key = false;
241
392
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
392
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
392
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
392
        } else if (_parent->parent()
247
392
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
392
                                   .is_null_safe_eq_join()
249
392
                                   .size() == 1 &&
250
392
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
392
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
392
                                         _rows, keep_null_key);
259
392
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
392
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
392
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
392
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
392
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
392
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
392
        return Status::OK();
267
392
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
392
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
392
        if (null_map) {
218
            // first row is mocked and is null
219
392
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
294
                *has_null_key = true;
221
294
            }
222
392
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
392
        }
226
227
392
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
392
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
392
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
392
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
392
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
392
                                            null_map ? null_map->data() : nullptr, true, true,
238
392
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
392
        bool keep_null_key = false;
241
392
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
392
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
392
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
392
        } else if (_parent->parent()
247
392
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
392
                                   .is_null_safe_eq_join()
249
392
                                   .size() == 1 &&
250
392
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
392
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
392
                                         _rows, keep_null_key);
259
392
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
392
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
392
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
392
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
392
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
392
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
392
        return Status::OK();
267
392
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
392
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
392
        if (null_map) {
218
            // first row is mocked and is null
219
294
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
294
                *has_null_key = true;
221
294
            }
222
294
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
294
        }
226
227
392
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
392
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
392
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
392
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
392
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
392
                                            null_map ? null_map->data() : nullptr, true, true,
238
392
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
392
        bool keep_null_key = false;
241
392
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
392
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
392
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
392
        } else if (_parent->parent()
247
392
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
392
                                   .is_null_safe_eq_join()
249
392
                                   .size() == 1 &&
250
392
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
392
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
392
                                         _rows, keep_null_key);
259
392
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
392
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
392
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
392
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
392
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
392
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
392
        return Status::OK();
267
392
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
392
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
392
        if (null_map) {
218
            // first row is mocked and is null
219
294
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
294
                *has_null_key = true;
221
294
            }
222
294
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
294
        }
226
227
392
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
392
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
392
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
392
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
392
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
392
                                            null_map ? null_map->data() : nullptr, true, true,
238
392
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
392
        bool keep_null_key = false;
241
392
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
392
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
392
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
392
        } else if (_parent->parent()
247
392
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
392
                                   .is_null_safe_eq_join()
249
392
                                   .size() == 1 &&
250
392
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
392
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
392
                                         _rows, keep_null_key);
259
392
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
392
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
392
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
392
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
392
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
392
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
392
        return Status::OK();
267
392
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
392
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
392
        if (null_map) {
218
            // first row is mocked and is null
219
294
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
294
                *has_null_key = true;
221
294
            }
222
294
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
294
        }
226
227
392
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
392
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
392
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
392
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
392
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
392
                                            null_map ? null_map->data() : nullptr, true, true,
238
392
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
392
        bool keep_null_key = false;
241
392
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
392
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
392
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
392
        } else if (_parent->parent()
247
392
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
392
                                   .is_null_safe_eq_join()
249
392
                                   .size() == 1 &&
250
392
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
392
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
392
                                         _rows, keep_null_key);
259
392
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
392
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
392
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
392
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
392
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
392
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
392
        return Status::OK();
267
392
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
392
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
392
        if (null_map) {
218
            // first row is mocked and is null
219
392
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
294
                *has_null_key = true;
221
294
            }
222
392
            if (short_circuit_for_null && *has_null_key) {
223
294
                return Status::OK();
224
294
            }
225
392
        }
226
227
98
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
98
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
98
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
98
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
98
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
98
                                            null_map ? null_map->data() : nullptr, true, true,
238
98
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
98
        bool keep_null_key = false;
241
98
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
98
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
98
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
98
        } else if (_parent->parent()
247
98
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
98
                                   .is_null_safe_eq_join()
249
98
                                   .size() == 1 &&
250
98
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
98
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
98
                                         _rows, keep_null_key);
259
98
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
98
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
98
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
98
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
98
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
98
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
98
        return Status::OK();
267
392
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
392
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
392
        if (null_map) {
218
            // first row is mocked and is null
219
294
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
294
                *has_null_key = true;
221
294
            }
222
294
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
294
        }
226
227
392
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
392
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
392
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
392
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
392
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
392
                                            null_map ? null_map->data() : nullptr, true, true,
238
392
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
392
        bool keep_null_key = false;
241
392
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
392
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
392
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
392
        } else if (_parent->parent()
247
392
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
392
                                   .is_null_safe_eq_join()
249
392
                                   .size() == 1 &&
250
392
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
392
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
392
                                         _rows, keep_null_key);
259
392
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
392
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
392
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
392
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
392
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
392
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
392
        return Status::OK();
267
392
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIm9HashCRC32ImELb0EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS6_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
320
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
320
        if (null_map) {
218
            // first row is mocked and is null
219
240
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
240
                *has_null_key = true;
221
240
            }
222
240
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
240
        }
226
227
320
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
320
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
320
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
320
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
320
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
320
                                            null_map ? null_map->data() : nullptr, true, true,
238
320
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
320
        bool keep_null_key = false;
241
320
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
320
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
320
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
320
        } else if (_parent->parent()
247
320
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
320
                                   .is_null_safe_eq_join()
249
320
                                   .size() == 1 &&
250
320
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
320
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
320
                                         _rows, keep_null_key);
259
320
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
320
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
320
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
320
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
320
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
320
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
320
        return Status::OK();
267
320
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
320
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
320
        if (null_map) {
218
            // first row is mocked and is null
219
240
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
240
                *has_null_key = true;
221
240
            }
222
240
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
240
        }
226
227
320
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
320
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
320
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
320
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
320
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
320
                                            null_map ? null_map->data() : nullptr, true, true,
238
320
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
320
        bool keep_null_key = false;
241
320
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
320
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
320
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
320
        } else if (_parent->parent()
247
320
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
320
                                   .is_null_safe_eq_join()
249
320
                                   .size() == 1 &&
250
320
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
320
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
320
                                         _rows, keep_null_key);
259
320
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
320
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
320
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
320
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
320
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
320
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
320
        return Status::OK();
267
320
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
320
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
320
        if (null_map) {
218
            // first row is mocked and is null
219
240
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
240
                *has_null_key = true;
221
240
            }
222
240
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
240
        }
226
227
320
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
320
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
320
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
320
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
320
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
320
                                            null_map ? null_map->data() : nullptr, true, true,
238
320
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
320
        bool keep_null_key = false;
241
320
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
320
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
320
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
320
        } else if (_parent->parent()
247
320
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
320
                                   .is_null_safe_eq_join()
249
320
                                   .size() == 1 &&
250
320
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
320
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
320
                                         _rows, keep_null_key);
259
320
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
320
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
320
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
320
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
320
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
320
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
320
        return Status::OK();
267
320
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
320
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
320
        if (null_map) {
218
            // first row is mocked and is null
219
320
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
240
                *has_null_key = true;
221
240
            }
222
320
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
320
        }
226
227
320
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
320
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
320
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
320
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
320
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
320
                                            null_map ? null_map->data() : nullptr, true, true,
238
320
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
320
        bool keep_null_key = false;
241
320
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
320
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
320
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
320
        } else if (_parent->parent()
247
320
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
320
                                   .is_null_safe_eq_join()
249
320
                                   .size() == 1 &&
250
320
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
320
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
320
                                         _rows, keep_null_key);
259
320
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
320
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
320
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
320
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
320
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
320
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
320
        return Status::OK();
267
320
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
320
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
320
        if (null_map) {
218
            // first row is mocked and is null
219
320
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
240
                *has_null_key = true;
221
240
            }
222
320
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
320
        }
226
227
320
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
320
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
320
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
320
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
320
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
320
                                            null_map ? null_map->data() : nullptr, true, true,
238
320
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
320
        bool keep_null_key = false;
241
320
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
320
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
320
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
320
        } else if (_parent->parent()
247
320
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
320
                                   .is_null_safe_eq_join()
249
320
                                   .size() == 1 &&
250
320
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
320
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
320
                                         _rows, keep_null_key);
259
320
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
320
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
320
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
320
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
320
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
320
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
320
        return Status::OK();
267
320
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
320
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
320
        if (null_map) {
218
            // first row is mocked and is null
219
240
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
240
                *has_null_key = true;
221
240
            }
222
240
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
240
        }
226
227
320
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
320
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
320
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
320
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
320
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
320
                                            null_map ? null_map->data() : nullptr, true, true,
238
320
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
320
        bool keep_null_key = false;
241
320
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
320
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
320
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
320
        } else if (_parent->parent()
247
320
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
320
                                   .is_null_safe_eq_join()
249
320
                                   .size() == 1 &&
250
320
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
320
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
320
                                         _rows, keep_null_key);
259
320
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
320
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
320
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
320
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
320
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
320
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
320
        return Status::OK();
267
320
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
320
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
320
        if (null_map) {
218
            // first row is mocked and is null
219
240
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
240
                *has_null_key = true;
221
240
            }
222
240
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
240
        }
226
227
320
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
320
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
320
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
320
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
320
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
320
                                            null_map ? null_map->data() : nullptr, true, true,
238
320
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
320
        bool keep_null_key = false;
241
320
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
320
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
320
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
320
        } else if (_parent->parent()
247
320
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
320
                                   .is_null_safe_eq_join()
249
320
                                   .size() == 1 &&
250
320
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
320
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
320
                                         _rows, keep_null_key);
259
320
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
320
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
320
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
320
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
320
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
320
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
320
        return Status::OK();
267
320
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
320
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
320
        if (null_map) {
218
            // first row is mocked and is null
219
240
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
240
                *has_null_key = true;
221
240
            }
222
240
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
240
        }
226
227
320
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
320
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
320
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
320
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
320
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
320
                                            null_map ? null_map->data() : nullptr, true, true,
238
320
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
320
        bool keep_null_key = false;
241
320
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
320
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
320
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
320
        } else if (_parent->parent()
247
320
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
320
                                   .is_null_safe_eq_join()
249
320
                                   .size() == 1 &&
250
320
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
320
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
320
                                         _rows, keep_null_key);
259
320
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
320
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
320
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
320
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
320
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
320
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
320
        return Status::OK();
267
320
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
320
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
320
        if (null_map) {
218
            // first row is mocked and is null
219
320
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
240
                *has_null_key = true;
221
240
            }
222
320
            if (short_circuit_for_null && *has_null_key) {
223
240
                return Status::OK();
224
240
            }
225
320
        }
226
227
80
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
80
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
80
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
80
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
80
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
80
                                            null_map ? null_map->data() : nullptr, true, true,
238
80
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
80
        bool keep_null_key = false;
241
80
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
80
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
80
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
80
        } else if (_parent->parent()
247
80
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
80
                                   .is_null_safe_eq_join()
249
80
                                   .size() == 1 &&
250
80
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
80
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
80
                                         _rows, keep_null_key);
259
80
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
80
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
80
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
80
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
80
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
80
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
80
        return Status::OK();
267
320
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
320
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
320
        if (null_map) {
218
            // first row is mocked and is null
219
240
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
240
                *has_null_key = true;
221
240
            }
222
240
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
240
        }
226
227
320
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
320
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
320
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
320
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
320
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
320
                                            null_map ? null_map->data() : nullptr, true, true,
238
320
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
320
        bool keep_null_key = false;
241
320
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
320
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
320
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
320
        } else if (_parent->parent()
247
320
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
320
                                   .is_null_safe_eq_join()
249
320
                                   .size() == 1 &&
250
320
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
320
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
320
                                         _rows, keep_null_key);
259
320
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
320
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
320
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
320
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
320
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
320
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
320
        return Status::OK();
267
320
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt72E9HashCRC32IS3_ELb0EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
600
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
600
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
600
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
600
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
600
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
600
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
600
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
600
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
600
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
800
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
800
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
800
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
800
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
800
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
800
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
600
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
600
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
600
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
600
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
600
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
600
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
600
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
600
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
600
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
800
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
800
            if (short_circuit_for_null && *has_null_key) {
223
600
                return Status::OK();
224
600
            }
225
800
        }
226
227
200
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
200
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
200
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
200
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
200
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
200
                                            null_map ? null_map->data() : nullptr, true, true,
238
200
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
200
        bool keep_null_key = false;
241
200
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
200
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
200
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
200
        } else if (_parent->parent()
247
200
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
200
                                   .is_null_safe_eq_join()
249
200
                                   .size() == 1 &&
250
200
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
200
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
200
                                         _rows, keep_null_key);
259
200
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
200
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
200
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
200
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
200
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
200
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
200
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
600
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
600
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
600
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_6UInt96E9HashCRC32IS3_ELb0EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt104E9HashCRC32IS3_ELb0EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
600
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
600
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
600
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
600
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
600
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
600
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
600
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
600
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
600
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
800
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
800
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
800
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
800
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
800
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
800
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
600
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
600
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
600
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
600
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
600
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
600
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
600
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
600
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
600
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
800
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
800
            if (short_circuit_for_null && *has_null_key) {
223
600
                return Status::OK();
224
600
            }
225
800
        }
226
227
200
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
200
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
200
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
200
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
200
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
200
                                            null_map ? null_map->data() : nullptr, true, true,
238
200
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
200
        bool keep_null_key = false;
241
200
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
200
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
200
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
200
        } else if (_parent->parent()
247
200
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
200
                                   .is_null_safe_eq_join()
249
200
                                   .size() == 1 &&
250
200
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
200
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
200
                                         _rows, keep_null_key);
259
200
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
200
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
200
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
200
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
200
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
200
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
200
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
800
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
800
        if (null_map) {
218
            // first row is mocked and is null
219
600
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
600
                *has_null_key = true;
221
600
            }
222
600
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
600
        }
226
227
800
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
800
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
800
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
800
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
800
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
800
                                            null_map ? null_map->data() : nullptr, true, true,
238
800
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
800
        bool keep_null_key = false;
241
800
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
800
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
800
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
800
        } else if (_parent->parent()
247
800
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
800
                                   .is_null_safe_eq_join()
249
800
                                   .size() == 1 &&
250
800
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
800
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
800
                                         _rows, keep_null_key);
259
800
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
800
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
800
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
800
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
800
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
800
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
800
        return Status::OK();
267
800
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm128EjEE9HashCRC32IS5_ELb0EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
96
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
96
        if (null_map) {
218
            // first row is mocked and is null
219
72
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
72
                *has_null_key = true;
221
72
            }
222
72
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
72
        }
226
227
96
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
96
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
96
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
96
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
96
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
96
                                            null_map ? null_map->data() : nullptr, true, true,
238
96
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
96
        bool keep_null_key = false;
241
96
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
96
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
96
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
96
        } else if (_parent->parent()
247
96
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
96
                                   .is_null_safe_eq_join()
249
96
                                   .size() == 1 &&
250
96
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
96
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
96
                                         _rows, keep_null_key);
259
96
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
96
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
96
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
96
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
96
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
96
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
96
        return Status::OK();
267
96
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
96
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
96
        if (null_map) {
218
            // first row is mocked and is null
219
72
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
72
                *has_null_key = true;
221
72
            }
222
72
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
72
        }
226
227
96
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
96
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
96
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
96
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
96
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
96
                                            null_map ? null_map->data() : nullptr, true, true,
238
96
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
96
        bool keep_null_key = false;
241
96
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
96
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
96
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
96
        } else if (_parent->parent()
247
96
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
96
                                   .is_null_safe_eq_join()
249
96
                                   .size() == 1 &&
250
96
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
96
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
96
                                         _rows, keep_null_key);
259
96
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
96
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
96
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
96
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
96
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
96
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
96
        return Status::OK();
267
96
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
96
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
96
        if (null_map) {
218
            // first row is mocked and is null
219
72
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
72
                *has_null_key = true;
221
72
            }
222
72
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
72
        }
226
227
96
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
96
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
96
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
96
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
96
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
96
                                            null_map ? null_map->data() : nullptr, true, true,
238
96
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
96
        bool keep_null_key = false;
241
96
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
96
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
96
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
96
        } else if (_parent->parent()
247
96
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
96
                                   .is_null_safe_eq_join()
249
96
                                   .size() == 1 &&
250
96
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
96
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
96
                                         _rows, keep_null_key);
259
96
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
96
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
96
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
96
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
96
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
96
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
96
        return Status::OK();
267
96
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
96
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
96
        if (null_map) {
218
            // first row is mocked and is null
219
96
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
72
                *has_null_key = true;
221
72
            }
222
96
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
96
        }
226
227
96
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
96
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
96
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
96
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
96
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
96
                                            null_map ? null_map->data() : nullptr, true, true,
238
96
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
96
        bool keep_null_key = false;
241
96
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
96
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
96
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
96
        } else if (_parent->parent()
247
96
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
96
                                   .is_null_safe_eq_join()
249
96
                                   .size() == 1 &&
250
96
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
96
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
96
                                         _rows, keep_null_key);
259
96
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
96
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
96
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
96
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
96
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
96
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
96
        return Status::OK();
267
96
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
96
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
96
        if (null_map) {
218
            // first row is mocked and is null
219
96
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
72
                *has_null_key = true;
221
72
            }
222
96
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
96
        }
226
227
96
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
96
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
96
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
96
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
96
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
96
                                            null_map ? null_map->data() : nullptr, true, true,
238
96
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
96
        bool keep_null_key = false;
241
96
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
96
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
96
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
96
        } else if (_parent->parent()
247
96
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
96
                                   .is_null_safe_eq_join()
249
96
                                   .size() == 1 &&
250
96
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
96
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
96
                                         _rows, keep_null_key);
259
96
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
96
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
96
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
96
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
96
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
96
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
96
        return Status::OK();
267
96
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
96
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
96
        if (null_map) {
218
            // first row is mocked and is null
219
72
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
72
                *has_null_key = true;
221
72
            }
222
72
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
72
        }
226
227
96
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
96
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
96
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
96
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
96
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
96
                                            null_map ? null_map->data() : nullptr, true, true,
238
96
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
96
        bool keep_null_key = false;
241
96
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
96
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
96
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
96
        } else if (_parent->parent()
247
96
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
96
                                   .is_null_safe_eq_join()
249
96
                                   .size() == 1 &&
250
96
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
96
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
96
                                         _rows, keep_null_key);
259
96
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
96
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
96
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
96
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
96
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
96
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
96
        return Status::OK();
267
96
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
96
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
96
        if (null_map) {
218
            // first row is mocked and is null
219
72
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
72
                *has_null_key = true;
221
72
            }
222
72
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
72
        }
226
227
96
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
96
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
96
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
96
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
96
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
96
                                            null_map ? null_map->data() : nullptr, true, true,
238
96
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
96
        bool keep_null_key = false;
241
96
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
96
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
96
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
96
        } else if (_parent->parent()
247
96
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
96
                                   .is_null_safe_eq_join()
249
96
                                   .size() == 1 &&
250
96
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
96
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
96
                                         _rows, keep_null_key);
259
96
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
96
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
96
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
96
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
96
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
96
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
96
        return Status::OK();
267
96
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
96
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
96
        if (null_map) {
218
            // first row is mocked and is null
219
72
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
72
                *has_null_key = true;
221
72
            }
222
72
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
72
        }
226
227
96
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
96
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
96
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
96
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
96
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
96
                                            null_map ? null_map->data() : nullptr, true, true,
238
96
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
96
        bool keep_null_key = false;
241
96
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
96
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
96
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
96
        } else if (_parent->parent()
247
96
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
96
                                   .is_null_safe_eq_join()
249
96
                                   .size() == 1 &&
250
96
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
96
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
96
                                         _rows, keep_null_key);
259
96
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
96
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
96
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
96
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
96
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
96
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
96
        return Status::OK();
267
96
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
96
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
96
        if (null_map) {
218
            // first row is mocked and is null
219
96
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
72
                *has_null_key = true;
221
72
            }
222
96
            if (short_circuit_for_null && *has_null_key) {
223
72
                return Status::OK();
224
72
            }
225
96
        }
226
227
24
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
24
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
24
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
24
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
24
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
24
                                            null_map ? null_map->data() : nullptr, true, true,
238
24
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
24
        bool keep_null_key = false;
241
24
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
24
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
24
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
24
        } else if (_parent->parent()
247
24
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
24
                                   .is_null_safe_eq_join()
249
24
                                   .size() == 1 &&
250
24
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
24
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
24
                                         _rows, keep_null_key);
259
24
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
24
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
24
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
24
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
24
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
24
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
24
        return Status::OK();
267
96
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
96
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
96
        if (null_map) {
218
            // first row is mocked and is null
219
72
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
72
                *has_null_key = true;
221
72
            }
222
72
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
72
        }
226
227
96
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
96
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
96
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
96
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
96
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
96
                                            null_map ? null_map->data() : nullptr, true, true,
238
96
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
96
        bool keep_null_key = false;
241
96
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
96
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
96
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
96
        } else if (_parent->parent()
247
96
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
96
                                   .is_null_safe_eq_join()
249
96
                                   .size() == 1 &&
250
96
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
96
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
96
                                         _rows, keep_null_key);
259
96
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
96
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
96
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
96
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
96
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
96
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
96
        return Status::OK();
267
96
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableINS_7UInt136E9HashCRC32IS3_ELb0EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
792
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
792
        if (null_map) {
218
            // first row is mocked and is null
219
594
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
594
                *has_null_key = true;
221
594
            }
222
594
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
594
        }
226
227
792
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
792
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
792
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
792
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
792
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
792
                                            null_map ? null_map->data() : nullptr, true, true,
238
792
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
792
        bool keep_null_key = false;
241
792
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
792
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
792
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
792
        } else if (_parent->parent()
247
792
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
792
                                   .is_null_safe_eq_join()
249
792
                                   .size() == 1 &&
250
792
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
792
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
792
                                         _rows, keep_null_key);
259
792
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
792
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
792
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
792
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
792
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
792
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
792
        return Status::OK();
267
792
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
792
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
792
        if (null_map) {
218
            // first row is mocked and is null
219
594
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
594
                *has_null_key = true;
221
594
            }
222
594
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
594
        }
226
227
792
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
792
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
792
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
792
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
792
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
792
                                            null_map ? null_map->data() : nullptr, true, true,
238
792
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
792
        bool keep_null_key = false;
241
792
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
792
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
792
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
792
        } else if (_parent->parent()
247
792
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
792
                                   .is_null_safe_eq_join()
249
792
                                   .size() == 1 &&
250
792
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
792
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
792
                                         _rows, keep_null_key);
259
792
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
792
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
792
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
792
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
792
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
792
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
792
        return Status::OK();
267
792
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
792
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
792
        if (null_map) {
218
            // first row is mocked and is null
219
594
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
594
                *has_null_key = true;
221
594
            }
222
594
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
594
        }
226
227
792
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
792
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
792
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
792
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
792
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
792
                                            null_map ? null_map->data() : nullptr, true, true,
238
792
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
792
        bool keep_null_key = false;
241
792
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
792
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
792
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
792
        } else if (_parent->parent()
247
792
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
792
                                   .is_null_safe_eq_join()
249
792
                                   .size() == 1 &&
250
792
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
792
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
792
                                         _rows, keep_null_key);
259
792
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
792
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
792
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
792
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
792
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
792
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
792
        return Status::OK();
267
792
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
792
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
792
        if (null_map) {
218
            // first row is mocked and is null
219
792
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
594
                *has_null_key = true;
221
594
            }
222
792
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
792
        }
226
227
792
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
792
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
792
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
792
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
792
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
792
                                            null_map ? null_map->data() : nullptr, true, true,
238
792
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
792
        bool keep_null_key = false;
241
792
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
792
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
792
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
792
        } else if (_parent->parent()
247
792
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
792
                                   .is_null_safe_eq_join()
249
792
                                   .size() == 1 &&
250
792
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
792
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
792
                                         _rows, keep_null_key);
259
792
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
792
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
792
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
792
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
792
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
792
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
792
        return Status::OK();
267
792
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
792
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
792
        if (null_map) {
218
            // first row is mocked and is null
219
792
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
594
                *has_null_key = true;
221
594
            }
222
792
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
792
        }
226
227
792
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
792
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
792
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
792
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
792
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
792
                                            null_map ? null_map->data() : nullptr, true, true,
238
792
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
792
        bool keep_null_key = false;
241
792
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
792
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
792
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
792
        } else if (_parent->parent()
247
792
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
792
                                   .is_null_safe_eq_join()
249
792
                                   .size() == 1 &&
250
792
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
792
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
792
                                         _rows, keep_null_key);
259
792
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
792
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
792
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
792
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
792
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
792
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
792
        return Status::OK();
267
792
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
792
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
792
        if (null_map) {
218
            // first row is mocked and is null
219
594
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
594
                *has_null_key = true;
221
594
            }
222
594
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
594
        }
226
227
792
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
792
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
792
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
792
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
792
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
792
                                            null_map ? null_map->data() : nullptr, true, true,
238
792
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
792
        bool keep_null_key = false;
241
792
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
792
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
792
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
792
        } else if (_parent->parent()
247
792
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
792
                                   .is_null_safe_eq_join()
249
792
                                   .size() == 1 &&
250
792
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
792
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
792
                                         _rows, keep_null_key);
259
792
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
792
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
792
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
792
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
792
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
792
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
792
        return Status::OK();
267
792
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
792
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
792
        if (null_map) {
218
            // first row is mocked and is null
219
594
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
594
                *has_null_key = true;
221
594
            }
222
594
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
594
        }
226
227
792
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
792
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
792
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
792
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
792
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
792
                                            null_map ? null_map->data() : nullptr, true, true,
238
792
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
792
        bool keep_null_key = false;
241
792
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
792
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
792
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
792
        } else if (_parent->parent()
247
792
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
792
                                   .is_null_safe_eq_join()
249
792
                                   .size() == 1 &&
250
792
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
792
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
792
                                         _rows, keep_null_key);
259
792
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
792
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
792
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
792
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
792
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
792
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
792
        return Status::OK();
267
792
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
792
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
792
        if (null_map) {
218
            // first row is mocked and is null
219
594
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
594
                *has_null_key = true;
221
594
            }
222
594
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
594
        }
226
227
792
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
792
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
792
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
792
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
792
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
792
                                            null_map ? null_map->data() : nullptr, true, true,
238
792
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
792
        bool keep_null_key = false;
241
792
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
792
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
792
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
792
        } else if (_parent->parent()
247
792
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
792
                                   .is_null_safe_eq_join()
249
792
                                   .size() == 1 &&
250
792
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
792
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
792
                                         _rows, keep_null_key);
259
792
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
792
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
792
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
792
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
792
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
792
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
792
        return Status::OK();
267
792
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
792
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
792
        if (null_map) {
218
            // first row is mocked and is null
219
792
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
594
                *has_null_key = true;
221
594
            }
222
792
            if (short_circuit_for_null && *has_null_key) {
223
594
                return Status::OK();
224
594
            }
225
792
        }
226
227
198
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
198
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
198
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
198
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
198
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
198
                                            null_map ? null_map->data() : nullptr, true, true,
238
198
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
198
        bool keep_null_key = false;
241
198
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
198
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
198
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
198
        } else if (_parent->parent()
247
198
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
198
                                   .is_null_safe_eq_join()
249
198
                                   .size() == 1 &&
250
198
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
198
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
198
                                         _rows, keep_null_key);
259
198
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
198
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
198
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
198
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
198
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
198
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
198
        return Status::OK();
267
792
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
792
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
792
        if (null_map) {
218
            // first row is mocked and is null
219
594
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
594
                *has_null_key = true;
221
594
            }
222
594
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
594
        }
226
227
792
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
792
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
792
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
792
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
792
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
792
                                            null_map ? null_map->data() : nullptr, true, true,
238
792
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
792
        bool keep_null_key = false;
241
792
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
792
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
792
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
792
        } else if (_parent->parent()
247
792
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
792
                                   .is_null_safe_eq_join()
249
792
                                   .size() == 1 &&
250
792
                   _parent->parent()
251
0
                           ->cast<HashJoinBuildSinkOperatorX>()
252
0
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
792
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
792
                                         _rows, keep_null_key);
259
792
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
792
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
792
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
792
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
792
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
792
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
792
        return Status::OK();
267
792
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_15MethodKeysFixedINS_13JoinHashTableIN4wide7integerILm256EjEE9HashCRC32IS5_ELb0EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS9_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi0ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
32
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
32
        if (null_map) {
218
            // first row is mocked and is null
219
16
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
16
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
16
        }
226
227
32
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
32
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
32
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
32
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
16
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
16
        }
235
236
32
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
32
                                            null_map ? null_map->data() : nullptr, true, true,
238
32
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
32
        bool keep_null_key = false;
241
32
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
32
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
32
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
32
        } else if (_parent->parent()
247
32
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
32
                                   .is_null_safe_eq_join()
249
32
                                   .size() == 1 &&
250
32
                   _parent->parent()
251
32
                           ->cast<HashJoinBuildSinkOperatorX>()
252
32
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
32
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
32
                                         _rows, keep_null_key);
259
32
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
32
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
32
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
32
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
32
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
32
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
32
        return Status::OK();
267
32
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi0ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi0ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi0ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi2ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
33
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
33
        if (null_map) {
218
            // first row is mocked and is null
219
17
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
17
                *has_null_key = true;
221
17
            }
222
17
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
17
        }
226
227
33
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
33
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
33
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
33
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
17
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
17
        }
235
236
33
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
33
                                            null_map ? null_map->data() : nullptr, true, true,
238
33
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
33
        bool keep_null_key = false;
241
33
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
33
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
33
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
33
        } else if (_parent->parent()
247
33
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
33
                                   .is_null_safe_eq_join()
249
33
                                   .size() == 1 &&
250
33
                   _parent->parent()
251
33
                           ->cast<HashJoinBuildSinkOperatorX>()
252
33
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
33
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
33
                                         _rows, keep_null_key);
259
33
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
33
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
33
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
33
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
33
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
33
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
33
        return Status::OK();
267
33
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi2ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi2ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi2ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi8ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
33
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
33
        if (null_map) {
218
            // first row is mocked and is null
219
17
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
17
                *has_null_key = true;
221
17
            }
222
17
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
17
        }
226
227
33
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
33
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
33
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
33
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
17
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
17
        }
235
236
33
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
33
                                            null_map ? null_map->data() : nullptr, true, true,
238
33
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
33
        bool keep_null_key = false;
241
33
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
33
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
33
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
33
        } else if (_parent->parent()
247
33
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
33
                                   .is_null_safe_eq_join()
249
33
                                   .size() == 1 &&
250
33
                   _parent->parent()
251
33
                           ->cast<HashJoinBuildSinkOperatorX>()
252
33
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
33
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
33
                                         _rows, keep_null_key);
259
33
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
33
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
33
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
33
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
33
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
33
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
33
        return Status::OK();
267
33
    }
_ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi8ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
1
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
1
        if (null_map) {
218
            // first row is mocked and is null
219
1
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
1
                *has_null_key = true;
221
1
            }
222
1
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
1
        }
226
227
1
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
1
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
1
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
1
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
1
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
1
        }
235
236
1
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
1
                                            null_map ? null_map->data() : nullptr, true, true,
238
1
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
1
        bool keep_null_key = false;
241
1
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
1
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
1
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
1
        } else if (_parent->parent()
247
1
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
1
                                   .is_null_safe_eq_join()
249
1
                                   .size() == 1 &&
250
1
                   _parent->parent()
251
1
                           ->cast<HashJoinBuildSinkOperatorX>()
252
1
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
1
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
1
                                         _rows, keep_null_key);
259
1
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
1
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
1
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
1
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
1
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
1
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
1
        return Status::OK();
267
1
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi8ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi8ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi1ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
32
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
32
        if (null_map) {
218
            // first row is mocked and is null
219
32
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
32
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
32
        }
226
227
32
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
32
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
32
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
32
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
16
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
16
        }
235
236
32
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
32
                                            null_map ? null_map->data() : nullptr, true, true,
238
32
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
32
        bool keep_null_key = false;
241
32
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
32
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
32
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
32
        } else if (_parent->parent()
247
32
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
32
                                   .is_null_safe_eq_join()
249
32
                                   .size() == 1 &&
250
32
                   _parent->parent()
251
32
                           ->cast<HashJoinBuildSinkOperatorX>()
252
32
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
32
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
32
                                         _rows, keep_null_key);
259
32
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
32
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
32
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
32
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
32
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
32
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
32
        return Status::OK();
267
32
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi1ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi1ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi1ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi4ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
32
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
32
        if (null_map) {
218
            // first row is mocked and is null
219
32
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
32
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
32
        }
226
227
32
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
32
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
32
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
32
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
16
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
16
        }
235
236
32
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
32
                                            null_map ? null_map->data() : nullptr, true, true,
238
32
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
32
        bool keep_null_key = false;
241
32
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
32
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
32
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
32
        } else if (_parent->parent()
247
32
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
32
                                   .is_null_safe_eq_join()
249
32
                                   .size() == 1 &&
250
32
                   _parent->parent()
251
32
                           ->cast<HashJoinBuildSinkOperatorX>()
252
32
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
32
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
32
                                         _rows, keep_null_key);
259
32
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
32
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
32
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
32
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
32
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
32
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
32
        return Status::OK();
267
32
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi4ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi4ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi4ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi3ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
32
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
32
        if (null_map) {
218
            // first row is mocked and is null
219
16
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
16
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
16
        }
226
227
32
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
32
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
32
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
32
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
16
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
16
        }
235
236
32
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
32
                                            null_map ? null_map->data() : nullptr, true, true,
238
32
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
32
        bool keep_null_key = false;
241
32
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
32
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
32
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
32
        } else if (_parent->parent()
247
32
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
32
                                   .is_null_safe_eq_join()
249
32
                                   .size() == 1 &&
250
32
                   _parent->parent()
251
32
                           ->cast<HashJoinBuildSinkOperatorX>()
252
32
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
32
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
32
                                         _rows, keep_null_key);
259
32
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
32
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
32
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
32
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
32
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
32
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
32
        return Status::OK();
267
32
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi3ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi3ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi3ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi5ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi5ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi5ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi5ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi7ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
33
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
33
        if (null_map) {
218
            // first row is mocked and is null
219
17
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
17
                *has_null_key = true;
221
17
            }
222
17
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
17
        }
226
227
33
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
33
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
33
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
33
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
17
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
17
        }
235
236
33
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
33
                                            null_map ? null_map->data() : nullptr, true, true,
238
33
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
33
        bool keep_null_key = false;
241
33
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
33
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
33
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
33
        } else if (_parent->parent()
247
33
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
33
                                   .is_null_safe_eq_join()
249
33
                                   .size() == 1 &&
250
33
                   _parent->parent()
251
33
                           ->cast<HashJoinBuildSinkOperatorX>()
252
33
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
33
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
33
                                         _rows, keep_null_key);
259
33
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
33
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
33
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
33
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
33
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
33
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
33
        return Status::OK();
267
33
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi7ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi7ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi7ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi9ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
32
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
32
        if (null_map) {
218
            // first row is mocked and is null
219
16
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
16
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
16
        }
226
227
32
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
32
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
32
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
32
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
16
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
16
        }
235
236
32
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
32
                                            null_map ? null_map->data() : nullptr, true, true,
238
32
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
32
        bool keep_null_key = false;
241
32
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
32
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
32
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
32
        } else if (_parent->parent()
247
32
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
32
                                   .is_null_safe_eq_join()
249
32
                                   .size() == 1 &&
250
32
                   _parent->parent()
251
32
                           ->cast<HashJoinBuildSinkOperatorX>()
252
32
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
32
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
32
                                         _rows, keep_null_key);
259
32
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
32
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
32
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
32
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
32
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
32
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
32
        return Status::OK();
267
32
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi9ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi9ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi9ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi10ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi10ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi10ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
32
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
32
        if (null_map) {
218
            // first row is mocked and is null
219
32
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
32
            if (short_circuit_for_null && *has_null_key) {
223
16
                return Status::OK();
224
16
            }
225
32
        }
226
227
16
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
16
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
16
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
16
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
0
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
0
        }
235
236
16
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
16
                                            null_map ? null_map->data() : nullptr, true, true,
238
16
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
16
        bool keep_null_key = false;
241
16
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
16
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
16
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
16
        } else if (_parent->parent()
247
16
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
16
                                   .is_null_safe_eq_join()
249
16
                                   .size() == 1 &&
250
16
                   _parent->parent()
251
16
                           ->cast<HashJoinBuildSinkOperatorX>()
252
16
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
16
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
16
                                         _rows, keep_null_key);
259
16
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
16
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
16
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
16
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
16
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
16
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
16
        return Status::OK();
267
32
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi10ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
_ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi11ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Line
Count
Source
216
32
    Status run(HashTableContext& hash_table_ctx, ConstNullMapPtr null_map, bool* has_null_key) {
217
32
        if (null_map) {
218
            // first row is mocked and is null
219
16
            if (simd::contain_one(null_map->data() + 1, _rows - 1)) {
220
16
                *has_null_key = true;
221
16
            }
222
16
            if (short_circuit_for_null && *has_null_key) {
223
0
                return Status::OK();
224
0
            }
225
16
        }
226
227
32
        SCOPED_TIMER(_parent->_build_table_insert_timer);
228
32
        hash_table_ctx.hash_table->template prepare_build<JoinOpType>(
229
32
                _rows, _batch_size, *has_null_key, hash_table_ctx.direct_mapping_range());
230
231
        // In order to make the null keys equal when using single null eq, all null keys need to be set to default value.
232
32
        if (_build_raw_ptrs.size() == 1 && null_map && *has_null_key) {
233
16
            _build_raw_ptrs[0]->assume_mutable()->replace_column_null_data(null_map->data());
234
16
        }
235
236
32
        hash_table_ctx.init_serialized_keys(_build_raw_ptrs, _rows,
237
32
                                            null_map ? null_map->data() : nullptr, true, true,
238
32
                                            hash_table_ctx.hash_table->get_bucket_size());
239
        // only 2 cases need to access the null value in hash table
240
32
        bool keep_null_key = false;
241
32
        if ((JoinOpType == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN ||
242
32
             JoinOpType == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN) &&
243
32
            with_other_conjuncts) {
244
            // null aware join with other conjuncts
245
0
            keep_null_key = true;
246
32
        } else if (_parent->parent()
247
32
                                   ->cast<HashJoinBuildSinkOperatorX>()
248
32
                                   .is_null_safe_eq_join()
249
32
                                   .size() == 1 &&
250
32
                   _parent->parent()
251
32
                           ->cast<HashJoinBuildSinkOperatorX>()
252
32
                           .is_null_safe_eq_join()[0]) {
253
            // single null safe eq
254
0
            keep_null_key = true;
255
0
        }
256
257
32
        hash_table_ctx.hash_table->build(hash_table_ctx.keys, hash_table_ctx.bucket_nums.data(),
258
32
                                         _rows, keep_null_key);
259
32
        hash_table_ctx.bucket_nums.resize(_batch_size);
260
32
        hash_table_ctx.bucket_nums.shrink_to_fit();
261
262
32
        COUNTER_SET(_parent->_hash_table_memory_usage,
263
32
                    (int64_t)hash_table_ctx.hash_table->get_byte_size());
264
32
        COUNTER_SET(_parent->_build_arena_memory_usage,
265
32
                    (int64_t)hash_table_ctx.serialized_keys_size(true));
266
32
        return Status::OK();
267
32
    }
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi11ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi11ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi11ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi12ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi12ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi12ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi12ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi14ELb0ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi14ELb0ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi14ELb1ELb0EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
Unexecuted instantiation: _ZN5doris21ProcessHashTableBuildINS_19MethodStringNoCacheINS_13JoinHashTableINS_9StringRefE11DefaultHashIS3_vELb0EEEEEE3runILi14ELb1ELb1EEENS_6StatusERS7_PKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEPb
268
269
private:
270
    const uint32_t _rows;
271
    ColumnRawPtrs& _build_raw_ptrs;
272
    HashJoinBuildSinkLocalState* _parent = nullptr;
273
    int _batch_size;
274
    RuntimeState* _state = nullptr;
275
};
276
277
} // namespace doris
278
#include "common/compile_check_end.h"