/root/doris/be/src/vec/functions/dictionary.cpp
Line | Count | Source |
1 | | // Licensed to the Apache Software Foundation (ASF) under one |
2 | | // or more contributor license agreements. See the NOTICE file |
3 | | // distributed with this work for additional information |
4 | | // regarding copyright ownership. The ASF licenses this file |
5 | | // to you under the Apache License, Version 2.0 (the |
6 | | // "License"); you may not use this file except in compliance |
7 | | // with the License. You may obtain a copy of the License at |
8 | | // |
9 | | // http://www.apache.org/licenses/LICENSE-2.0 |
10 | | // |
11 | | // Unless required by applicable law or agreed to in writing, |
12 | | // software distributed under the License is distributed on an |
13 | | // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
14 | | // KIND, either express or implied. See the License for the |
15 | | // specific language governing permissions and limitations |
16 | | // under the License. |
17 | | |
18 | | #include "vec/functions/dictionary.h" |
19 | | |
20 | | #include <variant> |
21 | | |
22 | | #include "runtime/thread_context.h" |
23 | | #include "vec/columns/column.h" |
24 | | #include "vec/data_types/data_type_decimal.h" |
25 | | #include "vec/data_types/data_type_ipv4.h" |
26 | | #include "vec/data_types/data_type_nullable.h" |
27 | | #include "vec/data_types/data_type_number.h" // IWYU pragma: keep |
28 | | |
29 | | namespace doris::vectorized { |
30 | | |
31 | | IDictionary::IDictionary(std::string name, std::vector<DictionaryAttribute> attributes) |
32 | 694 | : _dict_name(std::move(name)), _attributes(std::move(attributes)) { |
33 | 1.39k | for (size_t i = 0; i < _attributes.size(); i++) { |
34 | 700 | const auto& name = _attributes[i].name; |
35 | 700 | if (_name_to_attributes_index.contains(name)) { |
36 | 0 | throw doris::Exception(ErrorCode::INVALID_ARGUMENT, |
37 | 0 | "The names of attributes should not have duplicates : {}", name); |
38 | 0 | } |
39 | 700 | _name_to_attributes_index[name] = i; |
40 | 700 | } |
41 | 694 | } |
42 | | |
43 | 694 | IDictionary::~IDictionary() { |
44 | 694 | if (_mem_tracker) { |
45 | 5 | SCOPED_SWITCH_THREAD_MEM_TRACKER_LIMITER(_mem_tracker); |
46 | 5 | std::vector<ValueData> {}.swap(_values_data); |
47 | 5 | std::string {}.swap(_dict_name); |
48 | 5 | std::vector<DictionaryAttribute> {}.swap(_attributes); |
49 | 5 | _name_to_attributes_index.clear(); |
50 | 5 | } |
51 | 694 | } |
52 | | |
53 | 0 | bool IDictionary::has_attribute(const std::string& name) const { |
54 | 0 | return _name_to_attributes_index.contains(name); |
55 | 0 | } |
56 | | |
57 | 2.07k | size_t IDictionary::attribute_index(const std::string& name) const { |
58 | 2.07k | auto it = _name_to_attributes_index.find(name); |
59 | 2.07k | if (it == _name_to_attributes_index.end()) { |
60 | 0 | throw doris::Exception(ErrorCode::INVALID_ARGUMENT, "no this attribute : {}", name); |
61 | 0 | } |
62 | 2.07k | size_t idx = it->second; |
63 | 2.07k | return idx; |
64 | 2.07k | } |
65 | | |
66 | 0 | bool IDictionary::attribute_is_nullable(size_t idx) const { |
67 | 0 | return _attributes[idx].type->is_nullable(); |
68 | 0 | } |
69 | | |
70 | | std::variant<std::false_type, std::true_type> IDictionary::attribute_nullable_variant( |
71 | 1.03k | size_t idx) const { |
72 | 1.03k | return vectorized::make_bool_variant(_attributes[idx].type->is_nullable()); |
73 | 1.03k | } |
74 | | |
75 | 0 | DataTypePtr IDictionary::get_attribute_type(const std::string& name) const { |
76 | 0 | auto it = _name_to_attributes_index.find(name); |
77 | 0 | if (it == _name_to_attributes_index.end()) { |
78 | 0 | throw doris::Exception(ErrorCode::INVALID_ARGUMENT, "no this attribute : {}", name); |
79 | 0 | } |
80 | 0 | size_t idx = it->second; |
81 | 0 | return remove_nullable(_attributes[idx].type); |
82 | 0 | } |
83 | | |
84 | 7 | size_t IDictionary::allocated_bytes() const { |
85 | 7 | size_t bytes = 0; |
86 | 7 | for (const auto& value_data : _values_data) { |
87 | 7 | std::visit( |
88 | 7 | [&](auto&& arg) { |
89 | 7 | const auto* column = arg.get(); |
90 | 7 | bytes += column->allocated_bytes(); |
91 | 7 | if (arg.get_null_map()) { |
92 | 0 | bytes += arg.get_null_map()->allocated_bytes(); |
93 | 0 | } |
94 | 7 | }, Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_14DataTypeNumberILNS_13PrimitiveTypeE2EEEEEEEDaOT_ Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_14DataTypeNumberILNS_13PrimitiveTypeE3EEEEEEEDaOT_ Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_14DataTypeNumberILNS_13PrimitiveTypeE4EEEEEEEDaOT_ dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_14DataTypeNumberILNS_13PrimitiveTypeE5EEEEEEEDaOT_ Line | Count | Source | 88 | 7 | [&](auto&& arg) { | 89 | 7 | const auto* column = arg.get(); | 90 | 7 | bytes += column->allocated_bytes(); | 91 | 7 | if (arg.get_null_map()) { | 92 | 0 | bytes += arg.get_null_map()->allocated_bytes(); | 93 | 0 | } | 94 | 7 | }, |
Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_14DataTypeNumberILNS_13PrimitiveTypeE6EEEEEEEDaOT_ Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_14DataTypeNumberILNS_13PrimitiveTypeE7EEEEEEEDaOT_ Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEEEEDaOT_ Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEEEEDaOT_ Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_12DataTypeIPv4EEEEEDaOT_ Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_12DataTypeIPv6EEEEEDaOT_ Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_14DataTypeStringEEEEEDaOT_ Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaOT_ Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_14DataTypeDateV2EEEEEDaOT_ Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_18DataTypeDateTimeV2EEEEEDaOT_ Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_15DataTypeDecimalILNS_13PrimitiveTypeE28EEEEEEEDaOT_ Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_15DataTypeDecimalILNS_13PrimitiveTypeE29EEEEEEEDaOT_ Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_15DataTypeDecimalILNS_13PrimitiveTypeE30EEEEEEEDaOT_ Unexecuted instantiation: dictionary.cpp:_ZZNK5doris10vectorized11IDictionary15allocated_bytesEvENK3$_0clIRKNS1_14ColumnWithTypeINS0_15DataTypeDecimalILNS_13PrimitiveTypeE35EEEEEEEDaOT_ |
95 | 7 | value_data); |
96 | 7 | } |
97 | 7 | return bytes; |
98 | 7 | } |
99 | | |
100 | 694 | void IDictionary::load_values(const std::vector<ColumnPtr>& values_column) { |
101 | | // load value column |
102 | 694 | _values_data.resize(values_column.size()); |
103 | 1.39k | for (size_t i = 0; i < values_column.size(); i++) { |
104 | 700 | const DataTypePtr value_type_without_nullable = remove_nullable(_attributes[i].type); |
105 | 700 | ColumnPtr value_column_without_nullable = remove_nullable(values_column[i]); |
106 | 700 | if (_attributes[i].type->is_nullable() != values_column[i]->is_nullable()) { |
107 | 0 | throw doris::Exception( |
108 | 0 | ErrorCode::INVALID_ARGUMENT, |
109 | 0 | "Dictionary({}) attribute {} type is : {} , column is : {} Not supported", |
110 | 0 | dict_name(), _attributes[i].name, _attributes[i].type->get_name(), |
111 | 0 | values_column[i]->get_name()); |
112 | 0 | } |
113 | 700 | bool valid = |
114 | 700 | IDictionary::cast_type(value_type_without_nullable.get(), [&](const auto& type) { |
115 | 700 | using ValueRealDataType = std::decay_t<decltype(type)>; |
116 | 700 | auto& att = _values_data[i]; |
117 | 700 | auto init_column_with_type = [&](auto& column_with_type) { |
118 | 700 | column_with_type.column = value_column_without_nullable; |
119 | | // if original value is nullable, the null_map must be not null |
120 | 700 | if (values_column[i]->is_nullable()) { |
121 | 3 | column_with_type.null_map = |
122 | 3 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( |
123 | 3 | values_column[i].get()) |
124 | 3 | ->get_null_map_column_ptr(); |
125 | 697 | } else { |
126 | 697 | column_with_type.null_map = nullptr; |
127 | 697 | } |
128 | 700 | att = column_with_type; |
129 | 700 | }; Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE2EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSK_ dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE2EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeISG_EEEEDaSK_ Line | Count | Source | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 0 | column_with_type.null_map = | 122 | 0 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 0 | values_column[i].get()) | 124 | 0 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; |
Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE3EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSK_ dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE3EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeISG_EEEEDaSK_ Line | Count | Source | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 0 | column_with_type.null_map = | 122 | 0 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 0 | values_column[i].get()) | 124 | 0 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; |
Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE4EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSK_ dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE4EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeISG_EEEEDaSK_ Line | Count | Source | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 0 | column_with_type.null_map = | 122 | 0 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 0 | values_column[i].get()) | 124 | 0 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; |
Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE5EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSK_ dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE5EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeISG_EEEEDaSK_ Line | Count | Source | 117 | 65 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 65 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 65 | if (values_column[i]->is_nullable()) { | 121 | 3 | column_with_type.null_map = | 122 | 3 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 3 | values_column[i].get()) | 124 | 3 | ->get_null_map_column_ptr(); | 125 | 62 | } else { | 126 | 62 | column_with_type.null_map = nullptr; | 127 | 62 | } | 128 | 65 | att = column_with_type; | 129 | 65 | }; |
Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE6EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSK_ dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE6EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeISG_EEEEDaSK_ Line | Count | Source | 117 | 58 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 58 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 58 | if (values_column[i]->is_nullable()) { | 121 | 0 | column_with_type.null_map = | 122 | 0 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 0 | values_column[i].get()) | 124 | 0 | ->get_null_map_column_ptr(); | 125 | 58 | } else { | 126 | 58 | column_with_type.null_map = nullptr; | 127 | 58 | } | 128 | 58 | att = column_with_type; | 129 | 58 | }; |
Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE7EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSK_ dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE7EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeISG_EEEEDaSK_ Line | Count | Source | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 0 | column_with_type.null_map = | 122 | 0 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 0 | values_column[i].get()) | 124 | 0 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; |
Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSK_ dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeISG_EEEEDaSK_ Line | Count | Source | 117 | 53 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 53 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 53 | if (values_column[i]->is_nullable()) { | 121 | 0 | column_with_type.null_map = | 122 | 0 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 0 | values_column[i].get()) | 124 | 0 | ->get_null_map_column_ptr(); | 125 | 53 | } else { | 126 | 53 | column_with_type.null_map = nullptr; | 127 | 53 | } | 128 | 53 | att = column_with_type; | 129 | 53 | }; |
Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSK_ dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeISG_EEEEDaSK_ Line | Count | Source | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 0 | column_with_type.null_map = | 122 | 0 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 0 | values_column[i].get()) | 124 | 0 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; |
Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_12DataTypeIPv4EEEDaRKT_ENKUlRSF_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSI_ dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_12DataTypeIPv4EEEDaRKT_ENKUlRSF_E_clINS1_14ColumnWithTypeISE_EEEEDaSI_ Line | Count | Source | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 0 | column_with_type.null_map = | 122 | 0 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 0 | values_column[i].get()) | 124 | 0 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; |
Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_12DataTypeIPv6EEEDaRKT_ENKUlRSF_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSI_ dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_12DataTypeIPv6EEEDaRKT_ENKUlRSF_E_clINS1_14ColumnWithTypeISE_EEEEDaSI_ Line | Count | Source | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 0 | column_with_type.null_map = | 122 | 0 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 0 | values_column[i].get()) | 124 | 0 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; |
dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeStringEEEDaRKT_ENKUlRSF_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSI_ Line | Count | Source | 117 | 27 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 27 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 27 | if (values_column[i]->is_nullable()) { | 121 | 0 | column_with_type.null_map = | 122 | 0 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 0 | values_column[i].get()) | 124 | 0 | ->get_null_map_column_ptr(); | 125 | 27 | } else { | 126 | 27 | column_with_type.null_map = nullptr; | 127 | 27 | } | 128 | 27 | att = column_with_type; | 129 | 27 | }; |
dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeStringEEEDaRKT_ENKUlRSF_E_clINS1_14ColumnWithTypeISE_EEEEDaSI_ Line | Count | Source | 117 | 29 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 29 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 29 | if (values_column[i]->is_nullable()) { | 121 | 0 | column_with_type.null_map = | 122 | 0 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 0 | values_column[i].get()) | 124 | 0 | ->get_null_map_column_ptr(); | 125 | 29 | } else { | 126 | 29 | column_with_type.null_map = nullptr; | 127 | 29 | } | 128 | 29 | att = column_with_type; | 129 | 29 | }; |
Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeDateV2EEEDaRKT_ENKUlRSF_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSI_ dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeDateV2EEEDaRKT_ENKUlRSF_E_clINS1_14ColumnWithTypeISE_EEEEDaSI_ Line | Count | Source | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 0 | column_with_type.null_map = | 122 | 0 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 0 | values_column[i].get()) | 124 | 0 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; |
Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_18DataTypeDateTimeV2EEEDaRKT_ENKUlRSF_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSI_ dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_18DataTypeDateTimeV2EEEDaRKT_ENKUlRSF_E_clINS1_14ColumnWithTypeISE_EEEEDaSI_ Line | Count | Source | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 0 | column_with_type.null_map = | 122 | 0 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 0 | values_column[i].get()) | 124 | 0 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; |
Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_15DataTypeDecimalILNS_13PrimitiveTypeE28EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSK_ Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_15DataTypeDecimalILNS_13PrimitiveTypeE28EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeISG_EEEEDaSK_ Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_15DataTypeDecimalILNS_13PrimitiveTypeE29EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSK_ Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_15DataTypeDecimalILNS_13PrimitiveTypeE29EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeISG_EEEEDaSK_ Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_15DataTypeDecimalILNS_13PrimitiveTypeE30EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSK_ Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_15DataTypeDecimalILNS_13PrimitiveTypeE30EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeISG_EEEEDaSK_ Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_15DataTypeDecimalILNS_13PrimitiveTypeE35EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeINS1_20DictDataTypeString64EEEEEDaSK_ Unexecuted instantiation: dictionary.cpp:_ZZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_15DataTypeDecimalILNS_13PrimitiveTypeE35EEEEEDaRKT_ENKUlRSH_E_clINS1_14ColumnWithTypeISG_EEEEDaSK_ |
130 | | |
131 | 700 | if (value_column_without_nullable->is_column_string64()) { |
132 | 27 | ColumnWithType<DictDataTypeString64> column_with_type; |
133 | 27 | init_column_with_type(column_with_type); |
134 | 673 | } else { |
135 | 673 | ColumnWithType<ValueRealDataType> column_with_type; |
136 | 673 | init_column_with_type(column_with_type); |
137 | 673 | } |
138 | 700 | return true; |
139 | 700 | }); dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE2EEEEEDaRKT_ Line | Count | Source | 114 | 52 | IDictionary::cast_type(value_type_without_nullable.get(), [&](const auto& type) { | 115 | 52 | using ValueRealDataType = std::decay_t<decltype(type)>; | 116 | 52 | auto& att = _values_data[i]; | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 52 | column_with_type.null_map = | 122 | 52 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 52 | values_column[i].get()) | 124 | 52 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; | 130 | | | 131 | 52 | if (value_column_without_nullable->is_column_string64()) { | 132 | 0 | ColumnWithType<DictDataTypeString64> column_with_type; | 133 | 0 | init_column_with_type(column_with_type); | 134 | 52 | } else { | 135 | 52 | ColumnWithType<ValueRealDataType> column_with_type; | 136 | 52 | init_column_with_type(column_with_type); | 137 | 52 | } | 138 | 52 | return true; | 139 | 52 | }); |
dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE3EEEEEDaRKT_ Line | Count | Source | 114 | 52 | IDictionary::cast_type(value_type_without_nullable.get(), [&](const auto& type) { | 115 | 52 | using ValueRealDataType = std::decay_t<decltype(type)>; | 116 | 52 | auto& att = _values_data[i]; | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 52 | column_with_type.null_map = | 122 | 52 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 52 | values_column[i].get()) | 124 | 52 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; | 130 | | | 131 | 52 | if (value_column_without_nullable->is_column_string64()) { | 132 | 0 | ColumnWithType<DictDataTypeString64> column_with_type; | 133 | 0 | init_column_with_type(column_with_type); | 134 | 52 | } else { | 135 | 52 | ColumnWithType<ValueRealDataType> column_with_type; | 136 | 52 | init_column_with_type(column_with_type); | 137 | 52 | } | 138 | 52 | return true; | 139 | 52 | }); |
dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE4EEEEEDaRKT_ Line | Count | Source | 114 | 52 | IDictionary::cast_type(value_type_without_nullable.get(), [&](const auto& type) { | 115 | 52 | using ValueRealDataType = std::decay_t<decltype(type)>; | 116 | 52 | auto& att = _values_data[i]; | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 52 | column_with_type.null_map = | 122 | 52 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 52 | values_column[i].get()) | 124 | 52 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; | 130 | | | 131 | 52 | if (value_column_without_nullable->is_column_string64()) { | 132 | 0 | ColumnWithType<DictDataTypeString64> column_with_type; | 133 | 0 | init_column_with_type(column_with_type); | 134 | 52 | } else { | 135 | 52 | ColumnWithType<ValueRealDataType> column_with_type; | 136 | 52 | init_column_with_type(column_with_type); | 137 | 52 | } | 138 | 52 | return true; | 139 | 52 | }); |
dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE5EEEEEDaRKT_ Line | Count | Source | 114 | 65 | IDictionary::cast_type(value_type_without_nullable.get(), [&](const auto& type) { | 115 | 65 | using ValueRealDataType = std::decay_t<decltype(type)>; | 116 | 65 | auto& att = _values_data[i]; | 117 | 65 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 65 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 65 | if (values_column[i]->is_nullable()) { | 121 | 65 | column_with_type.null_map = | 122 | 65 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 65 | values_column[i].get()) | 124 | 65 | ->get_null_map_column_ptr(); | 125 | 65 | } else { | 126 | 65 | column_with_type.null_map = nullptr; | 127 | 65 | } | 128 | 65 | att = column_with_type; | 129 | 65 | }; | 130 | | | 131 | 65 | if (value_column_without_nullable->is_column_string64()) { | 132 | 0 | ColumnWithType<DictDataTypeString64> column_with_type; | 133 | 0 | init_column_with_type(column_with_type); | 134 | 65 | } else { | 135 | 65 | ColumnWithType<ValueRealDataType> column_with_type; | 136 | 65 | init_column_with_type(column_with_type); | 137 | 65 | } | 138 | 65 | return true; | 139 | 65 | }); |
dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE6EEEEEDaRKT_ Line | Count | Source | 114 | 58 | IDictionary::cast_type(value_type_without_nullable.get(), [&](const auto& type) { | 115 | 58 | using ValueRealDataType = std::decay_t<decltype(type)>; | 116 | 58 | auto& att = _values_data[i]; | 117 | 58 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 58 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 58 | if (values_column[i]->is_nullable()) { | 121 | 58 | column_with_type.null_map = | 122 | 58 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 58 | values_column[i].get()) | 124 | 58 | ->get_null_map_column_ptr(); | 125 | 58 | } else { | 126 | 58 | column_with_type.null_map = nullptr; | 127 | 58 | } | 128 | 58 | att = column_with_type; | 129 | 58 | }; | 130 | | | 131 | 58 | if (value_column_without_nullable->is_column_string64()) { | 132 | 0 | ColumnWithType<DictDataTypeString64> column_with_type; | 133 | 0 | init_column_with_type(column_with_type); | 134 | 58 | } else { | 135 | 58 | ColumnWithType<ValueRealDataType> column_with_type; | 136 | 58 | init_column_with_type(column_with_type); | 137 | 58 | } | 138 | 58 | return true; | 139 | 58 | }); |
dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE7EEEEEDaRKT_ Line | Count | Source | 114 | 52 | IDictionary::cast_type(value_type_without_nullable.get(), [&](const auto& type) { | 115 | 52 | using ValueRealDataType = std::decay_t<decltype(type)>; | 116 | 52 | auto& att = _values_data[i]; | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 52 | column_with_type.null_map = | 122 | 52 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 52 | values_column[i].get()) | 124 | 52 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; | 130 | | | 131 | 52 | if (value_column_without_nullable->is_column_string64()) { | 132 | 0 | ColumnWithType<DictDataTypeString64> column_with_type; | 133 | 0 | init_column_with_type(column_with_type); | 134 | 52 | } else { | 135 | 52 | ColumnWithType<ValueRealDataType> column_with_type; | 136 | 52 | init_column_with_type(column_with_type); | 137 | 52 | } | 138 | 52 | return true; | 139 | 52 | }); |
dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEEDaRKT_ Line | Count | Source | 114 | 53 | IDictionary::cast_type(value_type_without_nullable.get(), [&](const auto& type) { | 115 | 53 | using ValueRealDataType = std::decay_t<decltype(type)>; | 116 | 53 | auto& att = _values_data[i]; | 117 | 53 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 53 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 53 | if (values_column[i]->is_nullable()) { | 121 | 53 | column_with_type.null_map = | 122 | 53 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 53 | values_column[i].get()) | 124 | 53 | ->get_null_map_column_ptr(); | 125 | 53 | } else { | 126 | 53 | column_with_type.null_map = nullptr; | 127 | 53 | } | 128 | 53 | att = column_with_type; | 129 | 53 | }; | 130 | | | 131 | 53 | if (value_column_without_nullable->is_column_string64()) { | 132 | 0 | ColumnWithType<DictDataTypeString64> column_with_type; | 133 | 0 | init_column_with_type(column_with_type); | 134 | 53 | } else { | 135 | 53 | ColumnWithType<ValueRealDataType> column_with_type; | 136 | 53 | init_column_with_type(column_with_type); | 137 | 53 | } | 138 | 53 | return true; | 139 | 53 | }); |
dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEEDaRKT_ Line | Count | Source | 114 | 52 | IDictionary::cast_type(value_type_without_nullable.get(), [&](const auto& type) { | 115 | 52 | using ValueRealDataType = std::decay_t<decltype(type)>; | 116 | 52 | auto& att = _values_data[i]; | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 52 | column_with_type.null_map = | 122 | 52 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 52 | values_column[i].get()) | 124 | 52 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; | 130 | | | 131 | 52 | if (value_column_without_nullable->is_column_string64()) { | 132 | 0 | ColumnWithType<DictDataTypeString64> column_with_type; | 133 | 0 | init_column_with_type(column_with_type); | 134 | 52 | } else { | 135 | 52 | ColumnWithType<ValueRealDataType> column_with_type; | 136 | 52 | init_column_with_type(column_with_type); | 137 | 52 | } | 138 | 52 | return true; | 139 | 52 | }); |
dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_12DataTypeIPv4EEEDaRKT_ Line | Count | Source | 114 | 52 | IDictionary::cast_type(value_type_without_nullable.get(), [&](const auto& type) { | 115 | 52 | using ValueRealDataType = std::decay_t<decltype(type)>; | 116 | 52 | auto& att = _values_data[i]; | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 52 | column_with_type.null_map = | 122 | 52 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 52 | values_column[i].get()) | 124 | 52 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; | 130 | | | 131 | 52 | if (value_column_without_nullable->is_column_string64()) { | 132 | 0 | ColumnWithType<DictDataTypeString64> column_with_type; | 133 | 0 | init_column_with_type(column_with_type); | 134 | 52 | } else { | 135 | 52 | ColumnWithType<ValueRealDataType> column_with_type; | 136 | 52 | init_column_with_type(column_with_type); | 137 | 52 | } | 138 | 52 | return true; | 139 | 52 | }); |
dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_12DataTypeIPv6EEEDaRKT_ Line | Count | Source | 114 | 52 | IDictionary::cast_type(value_type_without_nullable.get(), [&](const auto& type) { | 115 | 52 | using ValueRealDataType = std::decay_t<decltype(type)>; | 116 | 52 | auto& att = _values_data[i]; | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 52 | column_with_type.null_map = | 122 | 52 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 52 | values_column[i].get()) | 124 | 52 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; | 130 | | | 131 | 52 | if (value_column_without_nullable->is_column_string64()) { | 132 | 0 | ColumnWithType<DictDataTypeString64> column_with_type; | 133 | 0 | init_column_with_type(column_with_type); | 134 | 52 | } else { | 135 | 52 | ColumnWithType<ValueRealDataType> column_with_type; | 136 | 52 | init_column_with_type(column_with_type); | 137 | 52 | } | 138 | 52 | return true; | 139 | 52 | }); |
dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeStringEEEDaRKT_ Line | Count | Source | 114 | 56 | IDictionary::cast_type(value_type_without_nullable.get(), [&](const auto& type) { | 115 | 56 | using ValueRealDataType = std::decay_t<decltype(type)>; | 116 | 56 | auto& att = _values_data[i]; | 117 | 56 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 56 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 56 | if (values_column[i]->is_nullable()) { | 121 | 56 | column_with_type.null_map = | 122 | 56 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 56 | values_column[i].get()) | 124 | 56 | ->get_null_map_column_ptr(); | 125 | 56 | } else { | 126 | 56 | column_with_type.null_map = nullptr; | 127 | 56 | } | 128 | 56 | att = column_with_type; | 129 | 56 | }; | 130 | | | 131 | 56 | if (value_column_without_nullable->is_column_string64()) { | 132 | 27 | ColumnWithType<DictDataTypeString64> column_with_type; | 133 | 27 | init_column_with_type(column_with_type); | 134 | 29 | } else { | 135 | 29 | ColumnWithType<ValueRealDataType> column_with_type; | 136 | 29 | init_column_with_type(column_with_type); | 137 | 29 | } | 138 | 56 | return true; | 139 | 56 | }); |
dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_14DataTypeDateV2EEEDaRKT_ Line | Count | Source | 114 | 52 | IDictionary::cast_type(value_type_without_nullable.get(), [&](const auto& type) { | 115 | 52 | using ValueRealDataType = std::decay_t<decltype(type)>; | 116 | 52 | auto& att = _values_data[i]; | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 52 | column_with_type.null_map = | 122 | 52 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 52 | values_column[i].get()) | 124 | 52 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; | 130 | | | 131 | 52 | if (value_column_without_nullable->is_column_string64()) { | 132 | 0 | ColumnWithType<DictDataTypeString64> column_with_type; | 133 | 0 | init_column_with_type(column_with_type); | 134 | 52 | } else { | 135 | 52 | ColumnWithType<ValueRealDataType> column_with_type; | 136 | 52 | init_column_with_type(column_with_type); | 137 | 52 | } | 138 | 52 | return true; | 139 | 52 | }); |
dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_18DataTypeDateTimeV2EEEDaRKT_ Line | Count | Source | 114 | 52 | IDictionary::cast_type(value_type_without_nullable.get(), [&](const auto& type) { | 115 | 52 | using ValueRealDataType = std::decay_t<decltype(type)>; | 116 | 52 | auto& att = _values_data[i]; | 117 | 52 | auto init_column_with_type = [&](auto& column_with_type) { | 118 | 52 | column_with_type.column = value_column_without_nullable; | 119 | | // if original value is nullable, the null_map must be not null | 120 | 52 | if (values_column[i]->is_nullable()) { | 121 | 52 | column_with_type.null_map = | 122 | 52 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>( | 123 | 52 | values_column[i].get()) | 124 | 52 | ->get_null_map_column_ptr(); | 125 | 52 | } else { | 126 | 52 | column_with_type.null_map = nullptr; | 127 | 52 | } | 128 | 52 | att = column_with_type; | 129 | 52 | }; | 130 | | | 131 | 52 | if (value_column_without_nullable->is_column_string64()) { | 132 | 0 | ColumnWithType<DictDataTypeString64> column_with_type; | 133 | 0 | init_column_with_type(column_with_type); | 134 | 52 | } else { | 135 | 52 | ColumnWithType<ValueRealDataType> column_with_type; | 136 | 52 | init_column_with_type(column_with_type); | 137 | 52 | } | 138 | 52 | return true; | 139 | 52 | }); |
Unexecuted instantiation: dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_15DataTypeDecimalILNS_13PrimitiveTypeE28EEEEEDaRKT_ Unexecuted instantiation: dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_15DataTypeDecimalILNS_13PrimitiveTypeE29EEEEEDaRKT_ Unexecuted instantiation: dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_15DataTypeDecimalILNS_13PrimitiveTypeE30EEEEEDaRKT_ Unexecuted instantiation: dictionary.cpp:_ZZN5doris10vectorized11IDictionary11load_valuesERKSt6vectorINS_3COWINS0_7IColumnEE13immutable_ptrIS4_EESaIS7_EEENK3$_0clINS0_15DataTypeDecimalILNS_13PrimitiveTypeE35EEEEEDaRKT_ |
140 | 700 | if (!valid) { |
141 | 0 | throw doris::Exception( |
142 | 0 | ErrorCode::INVALID_ARGUMENT, |
143 | 0 | "Dictionary({}) attribute {} type is : {} , column is : {} Not supported", |
144 | 0 | dict_name(), _attributes[i].name, _attributes[i].type->get_name(), |
145 | 0 | values_column[i]->get_name()); |
146 | 0 | } |
147 | 700 | } |
148 | 694 | } |
149 | | |
150 | | } // namespace doris::vectorized |