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 |