be/src/core/column/column.h
Line | Count | Source |
1 | | // Licensed to the Apache Software Foundation (ASF) under one |
2 | | // or more contributor license agreements. See the NOTICE file |
3 | | // distributed with this work for additional information |
4 | | // regarding copyright ownership. The ASF licenses this file |
5 | | // to you under the Apache License, Version 2.0 (the |
6 | | // "License"); you may not use this file except in compliance |
7 | | // with the License. You may obtain a copy of the License at |
8 | | // |
9 | | // http://www.apache.org/licenses/LICENSE-2.0 |
10 | | // |
11 | | // Unless required by applicable law or agreed to in writing, |
12 | | // software distributed under the License is distributed on an |
13 | | // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
14 | | // KIND, either express or implied. See the License for the |
15 | | // specific language governing permissions and limitations |
16 | | // under the License. |
17 | | // This file is copied from |
18 | | // https://github.com/ClickHouse/ClickHouse/blob/master/src/Columns/IColumn.h |
19 | | // and modified by Doris |
20 | | |
21 | | #pragma once |
22 | | |
23 | | #include <cstdint> |
24 | | #include <functional> |
25 | | #include <string> |
26 | | #include <type_traits> |
27 | | #include <utility> |
28 | | #include <vector> |
29 | | |
30 | | #include "common/status.h" |
31 | | #include "core/assert_cast.h" |
32 | | #include "core/cow.h" |
33 | | #include "core/data_type/define_primitive_type.h" |
34 | | #include "core/field.h" |
35 | | #include "core/pod_array_fwd.h" |
36 | | #include "core/string_ref.h" |
37 | | #include "core/typeid_cast.h" |
38 | | #include "core/types.h" |
39 | | #include "exec/sort/hybrid_sorter.h" |
40 | | #include "storage/olap_common.h" |
41 | | |
42 | | namespace doris { |
43 | | class SipHash; |
44 | | } |
45 | | |
46 | | namespace doris { |
47 | | |
48 | | class Arena; |
49 | | class ColumnSorter; |
50 | | |
51 | | using EqualFlags = std::vector<uint8_t>; |
52 | | using EqualRange = std::pair<int, int>; |
53 | | |
54 | | /// Declares interface to store columns in memory. |
55 | | class IColumn : public COW<IColumn> { |
56 | | private: |
57 | | friend class COW<IColumn>; |
58 | | |
59 | | /// Creates the same column with the same data. |
60 | | /// This is internal method to use from COW. |
61 | | /// It performs shallow copy with copy-ctor and not useful from outside. |
62 | | /// If you want to copy column for modification, look at 'mutate' method. |
63 | | virtual MutablePtr clone() const = 0; |
64 | | |
65 | | public: |
66 | | // 64bit offsets now only Array type used, so we make it protected |
67 | | // to avoid use IColumn::Offset64 directly. |
68 | | // please use ColumnArray::Offset64 instead if we need. |
69 | | using Offset64 = UInt64; |
70 | | using Offsets64 = PaddedPODArray<Offset64>; |
71 | | |
72 | | // 32bit offsets for string |
73 | | using Offset = UInt32; |
74 | | using Offsets = PaddedPODArray<Offset>; |
75 | | |
76 | | /// Name of a Column. It is used in info messages. |
77 | | virtual std::string get_name() const = 0; |
78 | | |
79 | | // used to check the column data is valid or not. |
80 | 158k | virtual void sanity_check() const { |
81 | | // do nothing by default, but some column may need to check |
82 | 158k | } |
83 | | |
84 | | /** If column isn't constant, returns nullptr (or itself). |
85 | | * If column is constant, transforms constant to full column (if column type allows such transform) and return it. |
86 | | */ |
87 | 511k | virtual Ptr convert_to_full_column_if_const() const { return get_ptr(); } |
88 | | |
89 | | /** If in join. the StringColumn size may overflow uint32_t, we need convert to uint64_t to ColumnString64 |
90 | | * The Column: ColumnString, ColumnNullable, ColumnArray, ColumnStruct need impl the code |
91 | | */ |
92 | 78.7k | virtual Ptr convert_column_if_overflow() { return get_ptr(); } |
93 | | |
94 | | /// If column isn't ColumnDictionary, return itself. |
95 | | /// If column is ColumnDictionary, transforms is to predicate column. |
96 | 1.97k | virtual MutablePtr convert_to_predicate_column_if_dictionary() { return get_ptr(); } |
97 | | |
98 | | /// If column is ColumnDictionary, and is a range comparison predicate, convert dict encoding |
99 | 1.60k | virtual void convert_dict_codes_if_necessary() {} |
100 | | |
101 | | /// If column is ColumnDictionary, and is a bloom filter predicate, generate_hash_values |
102 | 0 | virtual void initialize_hash_values_for_runtime_filter() {} |
103 | | |
104 | | /// Creates empty column with the same type. |
105 | 138k | virtual MutablePtr clone_empty() const { return clone_resized(0); } |
106 | | |
107 | | /// Creates column with the same type and specified size. |
108 | | /// If size is less current size, then data is cut. |
109 | | /// If size is greater, than default values are appended. |
110 | 0 | virtual MutablePtr clone_resized(size_t s) const { |
111 | 0 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
112 | 0 | "Method clone_resized is not supported for " + get_name()); |
113 | 0 | return nullptr; |
114 | 0 | } |
115 | | |
116 | | // Only used in ColumnVariant to handle lifecycle of variant. Other columns would do nothing. |
117 | 2 | virtual void finalize() {} |
118 | | |
119 | | // Only used on ColumnDictionary |
120 | 467 | virtual void set_rowset_segment_id(std::pair<RowsetId, uint32_t> rowset_segment_id) {} |
121 | | |
122 | 0 | virtual std::pair<RowsetId, uint32_t> get_rowset_segment_id() const { return {}; } |
123 | | |
124 | | /// Returns number of values in column. |
125 | | virtual size_t size() const = 0; |
126 | | |
127 | | /// There are no values in columns. |
128 | 165k | bool empty() const { return size() == 0; } |
129 | | |
130 | | /// Returns value of n-th element in universal Field representation. |
131 | | /// Is used in rare cases, since creation of Field instance is expensive usually. |
132 | | virtual Field operator[](size_t n) const = 0; |
133 | | |
134 | | /// Like the previous one, but avoids extra copying if Field is in a container, for example. |
135 | | virtual void get(size_t n, Field& res) const = 0; |
136 | | |
137 | | /// If possible, returns pointer to memory chunk which contains n-th element (if it isn't possible, throws an exception) |
138 | | /// Is used to optimize some computations (in aggregation, for example). |
139 | | /// this function is used in ColumnString, ColumnFixedString, ColumnVector, not support in ColumnArray|ColumnMap... |
140 | | /// and should be pair with insert_data |
141 | 6 | virtual StringRef get_data_at(size_t n) const { |
142 | 6 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
143 | 6 | "Method get_data_at is not supported for " + get_name()); |
144 | 6 | } |
145 | | |
146 | 1 | virtual Int64 get_int(size_t /*n*/) const { |
147 | 1 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
148 | 1 | "Method get_int is not supported for " + get_name()); |
149 | 0 | return 0; |
150 | 1 | } |
151 | | |
152 | 10.1k | virtual bool is_null_at(size_t /*n*/) const { return false; } |
153 | | |
154 | | /** If column is numeric, return value of n-th element, casted to bool. |
155 | | * For NULL values of Nullable column returns false. |
156 | | * Otherwise throw an exception. |
157 | | */ |
158 | 1 | virtual bool get_bool(size_t /*n*/) const { |
159 | 1 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
160 | 1 | "Method get_bool is not supported for " + get_name()); |
161 | 0 | return false; |
162 | 1 | } |
163 | | |
164 | | /// Removes all elements outside of specified range. |
165 | | /// Is used in LIMIT operation, for example. |
166 | 344 | virtual Ptr cut(size_t start, size_t length) const final { |
167 | 344 | MutablePtr res = clone_empty(); |
168 | 344 | res->insert_range_from(*this, start, length); |
169 | 344 | return res; |
170 | 344 | } |
171 | | |
172 | | /** |
173 | | * erase data from 'start' and length elements from the column. |
174 | | * @param length The number of elements to remove from the start position of the column |
175 | | * @throws doris::Exception with NOT_IMPLEMENTED_ERROR if the operation is not supported |
176 | | * for this column type |
177 | | * eg: erase(3, 2) means remove the idx 3 and 4 elements (0-based) |
178 | | */ |
179 | 0 | virtual void erase(size_t start, size_t length) { |
180 | 0 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
181 | 0 | "Method erase is not supported for " + get_name()); |
182 | 0 | } |
183 | | |
184 | | /// cut or expand inplace. `this` would be moved, only the return value is avaliable. |
185 | 316 | virtual Ptr shrink(size_t length) const final { |
186 | | // NOLINTBEGIN(performance-move-const-arg) |
187 | 316 | MutablePtr res = std::move(*this).mutate(); |
188 | 316 | res->resize(length); |
189 | | // NOLINTEND(performance-move-const-arg) |
190 | 316 | return res->get_ptr(); |
191 | 316 | } |
192 | | |
193 | | /// Appends new value at the end of column (column's size is increased by 1). |
194 | | /// Is used to transform raw strings to Blocks (for example, inside input format parsers) |
195 | | virtual void insert(const Field& x) = 0; |
196 | | |
197 | | /// Appends n-th element from other column with the same type. |
198 | | /// Is used in merge-sort and merges. It could be implemented in inherited classes more optimally than default implementation. |
199 | | virtual void insert_from(const IColumn& src, size_t n); |
200 | | |
201 | | /// Appends range of elements from other column with the same type. |
202 | | /// Could be used to concatenate columns. |
203 | | virtual void insert_range_from(const IColumn& src, size_t start, size_t length) = 0; |
204 | | |
205 | | /// Appends range of elements from other column with the same type. |
206 | | /// Do not need throw execption in ColumnString overflow uint32, only |
207 | | /// use in join |
208 | | virtual void insert_range_from_ignore_overflow(const IColumn& src, size_t start, |
209 | 78.6k | size_t length) { |
210 | 78.6k | insert_range_from(src, start, length); |
211 | 78.6k | } |
212 | | |
213 | | /// Appends one element from other column with the same type multiple times. |
214 | 18 | virtual void insert_many_from(const IColumn& src, size_t position, size_t length) { |
215 | 96 | for (size_t i = 0; i < length; ++i) { |
216 | 78 | insert_from(src, position); |
217 | 78 | } |
218 | 18 | } |
219 | | |
220 | | // insert the data of target columns into self column according to positions |
221 | | // positions[i] means index of srcs whitch need to insert_from |
222 | | // the virtual function overhead of multiple calls to insert_from can be reduced to once |
223 | | virtual void insert_from_multi_column(const std::vector<const IColumn*>& srcs, |
224 | | const std::vector<size_t>& positions) = 0; |
225 | | |
226 | | /// Appends a batch elements from other column with the same type |
227 | | /// Also here should make sure indices_end is bigger than indices_begin |
228 | | /// indices_begin + indices_end represent the row indices of column src |
229 | | virtual void insert_indices_from(const IColumn& src, const uint32_t* indices_begin, |
230 | | const uint32_t* indices_end) = 0; |
231 | | |
232 | | /// Appends data located in specified memory chunk if it is possible (throws an exception if it cannot be implemented). |
233 | | /// used in ColumnString, ColumnFixedString, ColumnVector, not support in ColumnArray|ColumnMap... |
234 | | /// Is used to optimize some computations (in aggregation, for example). |
235 | | /// Parameter length could be ignored if column values have fixed size. |
236 | | /// All data will be inserted as single element |
237 | 1 | virtual void insert_data(const char* pos, size_t length) { |
238 | 1 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
239 | 1 | "Method insert_data is not supported for " + get_name()); |
240 | 1 | } |
241 | | |
242 | 44 | virtual void insert_many_fix_len_data(const char* pos, size_t num) { |
243 | 44 | throw doris::Exception( |
244 | 44 | ErrorCode::NOT_IMPLEMENTED_ERROR, |
245 | 44 | "Method insert_many_fix_len_data is not supported for " + get_name()); |
246 | 44 | } |
247 | | |
248 | | // todo(zeno) Use dict_args temp object to cover all arguments |
249 | | virtual void insert_many_dict_data(const int32_t* data_array, size_t start_index, |
250 | | const StringRef* dict, size_t data_num, |
251 | 44 | uint32_t dict_num = 0) { |
252 | 44 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
253 | 44 | "Method insert_many_dict_data is not supported for " + get_name()); |
254 | 44 | } |
255 | | |
256 | | /// Insert binary data into column from a continuous buffer, the implementation maybe copy all binary data |
257 | | /// in one single time. |
258 | | virtual void insert_many_continuous_binary_data(const char* data, const uint32_t* offsets, |
259 | 44 | const size_t num) { |
260 | 44 | throw doris::Exception( |
261 | 44 | ErrorCode::NOT_IMPLEMENTED_ERROR, |
262 | 44 | "Method insert_many_continuous_binary_data is not supported for " + get_name()); |
263 | 44 | } |
264 | | |
265 | | /// Insert `num` string entries with real length information but no actual |
266 | | /// character data. Used by OFFSET_ONLY reading mode where actual string |
267 | | /// content is not needed but length information must be preserved. |
268 | 0 | virtual void insert_offsets_from_lengths(const uint32_t* lengths, size_t num) { |
269 | 0 | throw doris::Exception( |
270 | 0 | ErrorCode::NOT_IMPLEMENTED_ERROR, |
271 | 0 | "Method insert_offsets_from_lengths is not supported for " + get_name()); |
272 | 0 | } |
273 | | |
274 | 44 | virtual void insert_many_strings(const StringRef* strings, size_t num) { |
275 | 44 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
276 | 44 | "Method insert_many_strings is not supported for " + get_name()); |
277 | 44 | } |
278 | | |
279 | | virtual void insert_many_strings_overflow(const StringRef* strings, size_t num, |
280 | 44 | size_t max_length) { |
281 | 44 | throw doris::Exception( |
282 | 44 | ErrorCode::NOT_IMPLEMENTED_ERROR, |
283 | 44 | "Method insert_many_strings_overflow is not supported for " + get_name()); |
284 | 44 | } |
285 | | |
286 | | // Here `pos` points to the memory data type is the same as the data type of the column. |
287 | | // This function is used by `insert_keys_into_columns` in AggregationNode. |
288 | 1 | virtual void insert_many_raw_data(const char* pos, size_t num) { |
289 | 1 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
290 | 1 | "Method insert_many_raw_data is not supported for " + get_name()); |
291 | 1 | } |
292 | | |
293 | 6 | void insert_data_repeatedly(const char* pos, size_t length, size_t data_num) { |
294 | 12 | for (size_t i = 0; i < data_num; ++i) { |
295 | 6 | insert_data(pos, length); |
296 | 6 | } |
297 | 6 | } |
298 | | |
299 | | /// Appends "default value". |
300 | | /// Is used when there are need to increase column size, but inserting value doesn't make sense. |
301 | | /// For example, ColumnNullable(Nested) absolutely ignores values of nested column if it is marked as NULL. |
302 | | virtual void insert_default() = 0; |
303 | | |
304 | | /// Appends "default value" multiple times. |
305 | 1.74k | virtual void insert_many_defaults(size_t length) { |
306 | 47.8M | for (size_t i = 0; i < length; ++i) { |
307 | 47.8M | insert_default(); |
308 | 47.8M | } |
309 | 1.74k | } |
310 | | |
311 | | /** Removes last n elements. |
312 | | * Is used to support exception-safety of several operations. |
313 | | * For example, sometimes insertion should be reverted if we catch an exception during operation processing. |
314 | | * If column has less than n elements or n == 0 - undefined behavior. |
315 | | */ |
316 | | virtual void pop_back(size_t n) = 0; |
317 | | |
318 | | /** Serializes n-th element. Serialized element should be placed continuously inside Arena's memory. |
319 | | * Serialized value can be deserialized to reconstruct original object. Is used in aggregation. |
320 | | * The method is similar to get_data_at(), but can work when element's value cannot be mapped to existing continuous memory chunk, |
321 | | * For example, to obtain unambiguous representation of Array of strings, strings data should be interleaved with their sizes. |
322 | | * Parameter begin should be used with Arena::alloc_continue. |
323 | | */ |
324 | | virtual StringRef serialize_value_into_arena(size_t n, Arena& arena, |
325 | | char const*& begin) const = 0; |
326 | | |
327 | | /// Deserializes a value that was serialized using IColumn::serialize_value_into_arena method. |
328 | | /// Returns pointer to the position after the read data. |
329 | | virtual const char* deserialize_and_insert_from_arena(const char* pos) = 0; |
330 | | |
331 | | // todo: Consider replacing stringref with slice. |
332 | 0 | virtual void serialize(StringRef* keys, size_t num_rows) const { |
333 | 0 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
334 | 0 | "Method serialize is not supported for " + get_name()); |
335 | 0 | } |
336 | | |
337 | | virtual void serialize_with_nullable(StringRef* keys, size_t num_rows, const bool has_null, |
338 | | const uint8_t* __restrict null_map) const; |
339 | | |
340 | | // This function deserializes group-by keys into column in the vectorized way. |
341 | 0 | virtual void deserialize(StringRef* keys, const size_t num_rows) { |
342 | 0 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
343 | 0 | "Method deserialize is not supported for " + get_name()); |
344 | 0 | } |
345 | | |
346 | | virtual void deserialize_with_nullable(StringRef* keys, const size_t num_rows, |
347 | | PaddedPODArray<UInt8>& null_map); |
348 | | |
349 | | /// The exact size to serialize the `row`-th row data in this column. |
350 | 0 | virtual size_t serialize_size_at(size_t row) const { |
351 | 0 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
352 | 0 | "Column {} should not be serialized.", get_name()); |
353 | 0 | } |
354 | | /// `serialize_impl` is the implementation to serialize a column into a continuous memory. |
355 | 0 | virtual size_t serialize_impl(char* pos, const size_t row) const { |
356 | 0 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
357 | 0 | "Method serialize_impl is not supported for " + get_name()); |
358 | 0 | } |
359 | | /// `deserialize_impl` will deserialize data which is serialized by `serialize_impl`. |
360 | 0 | virtual size_t deserialize_impl(const char* pos) { |
361 | 0 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
362 | 0 | "Method deserialize_impl is not supported for " + get_name()); |
363 | 0 | } |
364 | | |
365 | | /// Return the size of largest row. |
366 | | /// This is for calculating the memory size for vectorized serialization of aggregation keys. |
367 | 0 | virtual size_t get_max_row_byte_size() const { |
368 | 0 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
369 | 0 | "Method get_max_row_byte_size is not supported for " + get_name()); |
370 | 0 | return 0; |
371 | 0 | } |
372 | | |
373 | | /// TODO: SipHash is slower than city or xx hash, rethink we should have a new interface |
374 | | /// Update state of hash function with value of n-th element. |
375 | | /// On subsequent calls of this method for sequence of column values of arbitrary types, |
376 | | /// passed bytes to hash must identify sequence of values unambiguously. |
377 | 3 | virtual void update_hash_with_value(size_t n, SipHash& hash) const { |
378 | 3 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
379 | 3 | "Method update_hash_with_value is not supported for " + get_name()); |
380 | 3 | } |
381 | | |
382 | | /// Update state of hash function with value of n elements to avoid the virtual function call |
383 | | /// null_data to mark whether need to do hash compute, null_data == nullptr |
384 | | /// means all element need to do hash function, else only *null_data != 0 need to do hash func |
385 | | /// do xxHash here, faster than other sip hash |
386 | | virtual void update_hashes_with_value(uint64_t* __restrict hashes, |
387 | 0 | const uint8_t* __restrict null_data = nullptr) const { |
388 | 0 | throw doris::Exception( |
389 | 0 | ErrorCode::NOT_IMPLEMENTED_ERROR, |
390 | 0 | "Method update_hashes_with_value is not supported for " + get_name()); |
391 | 0 | } |
392 | | |
393 | | // use range for one hash value to avoid virtual function call in loop |
394 | | virtual void update_xxHash_with_value(size_t start, size_t end, uint64_t& hash, |
395 | 0 | const uint8_t* __restrict null_data) const { |
396 | 0 | throw doris::Exception( |
397 | 0 | ErrorCode::NOT_IMPLEMENTED_ERROR, |
398 | 0 | "Method update_xxHash_with_value is not supported for " + get_name()); |
399 | 0 | } |
400 | | |
401 | | /// Update state of crc32 hash function with value of n elements to avoid the virtual function call |
402 | | /// null_data to mark whether need to do hash compute, null_data == nullptr |
403 | | /// means all element need to do hash function, else only *null_data != 0 need to do hash func |
404 | | virtual void update_crcs_with_value(uint32_t* __restrict hash, PrimitiveType type, |
405 | | uint32_t rows, uint32_t offset = 0, |
406 | 0 | const uint8_t* __restrict null_data = nullptr) const { |
407 | 0 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
408 | 0 | "Method update_crcs_with_value is not supported for " + get_name()); |
409 | 0 | } |
410 | | |
411 | | // use range for one hash value to avoid virtual function call in loop |
412 | | virtual void update_crc_with_value(size_t start, size_t end, uint32_t& hash, |
413 | 0 | const uint8_t* __restrict null_data) const { |
414 | 0 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
415 | 0 | "Method update_crc_with_value is not supported for " + get_name()); |
416 | 0 | } |
417 | | |
418 | | virtual void update_crc32c_batch(uint32_t* __restrict hashes, |
419 | 0 | const uint8_t* __restrict null_map) const { |
420 | 0 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
421 | 0 | "Method update_crc32c_batch is not supported for " + get_name()); |
422 | 0 | } |
423 | | |
424 | | // use range for one hash value to avoid virtual function call in loop |
425 | | virtual void update_crc32c_single(size_t start, size_t end, uint32_t& hash, |
426 | 0 | const uint8_t* __restrict null_map) const { |
427 | 0 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
428 | 0 | "Method update_crc32c_single is not supported for " + get_name()); |
429 | 0 | } |
430 | | |
431 | | /** Removes elements that don't match the filter. |
432 | | * Is used in WHERE and HAVING operations. |
433 | | * If result_size_hint > 0, then makes advance reserve(result_size_hint) for the result column; |
434 | | * if 0, then don't makes reserve(), |
435 | | * otherwise (i.e. < 0), makes reserve() using size of source column. |
436 | | */ |
437 | | using Filter = PaddedPODArray<UInt8>; |
438 | | virtual Ptr filter(const Filter& filt, ssize_t result_size_hint) const = 0; |
439 | | |
440 | | /// This function will modify the original table. |
441 | | /// Return rows number after filtered. |
442 | | virtual size_t filter(const Filter& filter) = 0; |
443 | | |
444 | | /** |
445 | | * used by lazy materialization to filter column by selected rowids |
446 | | * Q: Why use IColumn* as args type instead of MutablePtr or ImmutablePtr ? |
447 | | * A: If use MutablePtr/ImmutablePtr as col_ptr's type, which means there could be many |
448 | | * convert(convert MutablePtr to ImmutablePtr or convert ImmutablePtr to MutablePtr) |
449 | | * happends in filter_by_selector because of mem-reuse logic or ColumnNullable, I think this is meaningless; |
450 | | * So using raw ptr directly here. |
451 | | * NOTICE: only column_nullable and predict_column, column_dictionary now support filter_by_selector |
452 | | * // nullable -> predict_column |
453 | | * // string (dictionary) -> column_dictionary |
454 | | */ |
455 | 1 | virtual Status filter_by_selector(const uint16_t* sel, size_t sel_size, IColumn* col_ptr) { |
456 | 1 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
457 | 1 | "Method filter_by_selector is not supported for {}, only " |
458 | 1 | "column_nullable, column_dictionary and predict_column support", |
459 | 1 | get_name()); |
460 | 1 | } |
461 | | |
462 | | /// Permutes elements using specified permutation. Is used in sortings. |
463 | | /// limit - if it isn't 0, puts only first limit elements in the result. |
464 | | using Permutation = PaddedPODArray<size_t>; |
465 | | virtual MutablePtr permute(const Permutation& perm, size_t limit) const = 0; |
466 | | |
467 | | /** Compares (*this)[n] and rhs[m]. Column rhs should have the same type. |
468 | | * Returns negative number, 0, or positive number (*this)[n] is less, equal, greater than rhs[m] respectively. |
469 | | * Is used in sortings. |
470 | | * |
471 | | * If one of element's value is NaN or NULLs, then: |
472 | | * - if nan_direction_hint == -1, NaN and NULLs are considered as least than everything other; |
473 | | * - if nan_direction_hint == 1, NaN and NULLs are considered as greatest than everything other. |
474 | | * For example, if nan_direction_hint == -1 is used by descending sorting, NaNs will be at the end. |
475 | | * |
476 | | * For non Nullable and non floating point types, nan_direction_hint is ignored. |
477 | | * For array/map/struct types, we compare with nested column element and offsets size |
478 | | */ |
479 | 7 | virtual int compare_at(size_t n, size_t m, const IColumn& rhs, int nan_direction_hint) const { |
480 | 7 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, "compare_at for " + get_name()); |
481 | 7 | } |
482 | | |
483 | | /** |
484 | | * To compare all rows in this column with another row (with row_id = rhs_row_id in column rhs) |
485 | | * @param nan_direction_hint and direction indicates the ordering. |
486 | | * @param cmp_res if we already has a comparison result for row i, e.g. cmp_res[i] = 1, we can skip row i |
487 | | * @param filter this stores comparison results for all rows. filter[i] = 1 means row i is less than row rhs_row_id in rhs |
488 | | */ |
489 | | virtual void compare_internal(size_t rhs_row_id, const IColumn& rhs, int nan_direction_hint, |
490 | | int direction, std::vector<uint8_t>& cmp_res, |
491 | | uint8_t* __restrict filter) const; |
492 | | |
493 | | /** Returns a permutation that sorts elements of this column, |
494 | | * i.e. perm[i]-th element of source column should be i-th element of sorted column. |
495 | | * reverse - true: descending order, false: ascending order. |
496 | | * limit - if isn't 0, then only first limit elements of the result column could be sorted. |
497 | | * nan_direction_hint - see above. |
498 | | */ |
499 | | virtual void get_permutation(bool reverse, size_t limit, int nan_direction_hint, |
500 | 0 | HybridSorter& sorter, Permutation& res) const { |
501 | 0 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
502 | 0 | "get_permutation for " + get_name()); |
503 | 0 | } |
504 | | |
505 | | #ifdef BE_TEST |
506 | | void get_permutation_default(bool reverse, size_t limit, int nan_direction_hint, |
507 | 1.18k | Permutation& res) const { |
508 | 1.18k | HybridSorter sorter; |
509 | 1.18k | get_permutation(reverse, limit, nan_direction_hint, sorter, res); |
510 | 1.18k | } |
511 | | #endif |
512 | | |
513 | | /** Split column to smaller columns. Each value goes to column index, selected by corresponding element of 'selector'. |
514 | | * Selector must contain values from 0 to num_columns - 1. |
515 | | * For default implementation, see column_impl.h |
516 | | */ |
517 | | using ColumnIndex = UInt32; |
518 | | using Selector = PaddedPODArray<ColumnIndex>; |
519 | | |
520 | | // The append_data_by_selector function requires the column to implement the insert_from function. |
521 | | // In fact, this function is just calling insert_from but without the overhead of a virtual function. |
522 | | |
523 | | virtual void append_data_by_selector(MutablePtr& res, const Selector& selector) const = 0; |
524 | | virtual void insert_duplicate_fields(const Field& x, const size_t n) = 0; |
525 | | |
526 | | // Here, begin and end represent the range of the Selector. |
527 | | virtual void append_data_by_selector(MutablePtr& res, const Selector& selector, size_t begin, |
528 | | size_t end) const = 0; |
529 | | |
530 | | /// Insert data from several other columns according to source mask (used in vertical merge). |
531 | | /// For now it is a helper to de-virtualize calls to insert*() functions inside gather loop |
532 | | /// (descendants should call gatherer_stream.gather(*this) to implement this function.) |
533 | | /// TODO: interface decoupled from ColumnGathererStream that allows non-generic specializations. |
534 | | // virtual void gather(ColumnGathererStream & gatherer_stream) = 0; |
535 | | |
536 | | /// Reserves memory for specified amount of elements. If reservation isn't possible, does nothing. |
537 | | /// It affects performance only (not correctness). |
538 | 2.44k | virtual void reserve(size_t /*n*/) {} |
539 | | |
540 | | /// Resize memory for specified amount of elements. If reservation isn't possible, does nothing. |
541 | | /// It affects performance only (not correctness). |
542 | | /// Note. resize means not only change column self but also sub-columns if have. |
543 | 0 | virtual void resize(size_t /*n*/) {} |
544 | | |
545 | | /// Size of column data in memory (may be approximate) - for profiling. Zero, if could not be determined. |
546 | | virtual size_t byte_size() const = 0; |
547 | | |
548 | | /** |
549 | | * @brief Checks whether the current column has enough capacity to accommodate the given source column. |
550 | | * |
551 | | * This pure virtual function should be implemented by derived classes to determine whether the |
552 | | * current column has enough reserved memory to hold the data of the specified `src` column. |
553 | | * |
554 | | * @param src The source column whose data needs to be checked for fitting into the current column. |
555 | | * @return true if the current column has enough capacity to hold the `src` data, false otherwise. |
556 | | */ |
557 | | virtual bool has_enough_capacity(const IColumn& src) const = 0; |
558 | | |
559 | | /// Size of memory, allocated for column. |
560 | | /// This is greater or equals to byte_size due to memory reservation in containers. |
561 | | /// Zero, if could not be determined. |
562 | | virtual size_t allocated_bytes() const = 0; |
563 | | |
564 | | /// If the column contains subcolumns (such as Array, Nullable, etc), do callback on them. |
565 | | /// Shallow: doesn't do recursive calls; don't do call for itself. |
566 | | using ColumnCallback = std::function<void(WrappedPtr&)>; |
567 | | using ImutableColumnCallback = std::function<void(const IColumn&)>; |
568 | 891k | virtual void for_each_subcolumn(ColumnCallback) {} |
569 | | |
570 | | /// Columns have equal structure. |
571 | | /// If true - you can use "compare_at", "insert_from", etc. methods. |
572 | 1 | virtual bool structure_equals(const IColumn&) const { |
573 | 1 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
574 | 1 | "Method structure_equals is not supported for " + get_name()); |
575 | 0 | return false; |
576 | 1 | } |
577 | | |
578 | | // Recursively make a mutable column tree. Use this rvalue member when the |
579 | | // current column object is being consumed. Shared nodes are cloned, while |
580 | | // exclusive nodes are reused through the COW fast path. |
581 | 779k | MutablePtr mutate() const&& { |
582 | 779k | MutablePtr res = shallow_mutate(); |
583 | 779k | res->for_each_subcolumn([](WrappedPtr& subcolumn) { |
584 | 274k | static_cast<IColumn::Ptr&>(subcolumn) = |
585 | 274k | std::move(*static_cast<const IColumn::Ptr&>(subcolumn)).mutate(); |
586 | 274k | }); |
587 | 779k | return res; |
588 | 779k | } |
589 | | |
590 | | // COW entry point for a ColumnPtr. Passing the pointer by value keeps the |
591 | | // original owner alive until the top-level detach succeeds; passing |
592 | | // std::move(ptr) explicitly consumes that owner. Subcolumns are still |
593 | | // recursively detached as needed. |
594 | 291k | static MutablePtr mutate(Ptr ptr) { |
595 | 291k | MutablePtr res = ptr->shallow_mutate(); /// Now use_count is 2. |
596 | 291k | ptr.reset(); /// Reset use_count to 1. |
597 | 292k | res->for_each_subcolumn([](WrappedPtr& subcolumn) { |
598 | 292k | static_cast<IColumn::Ptr&>(subcolumn) = |
599 | 292k | std::move(*static_cast<const IColumn::Ptr&>(subcolumn)).mutate(); |
600 | 292k | }); |
601 | 291k | return res; |
602 | 291k | } |
603 | | |
604 | | /** Some columns can contain another columns inside. |
605 | | * So, we have a tree of columns. But not all combinations are possible. |
606 | | * There are the following rules: |
607 | | * |
608 | | * ColumnConst may be only at top. It cannot be inside any column. |
609 | | * ColumnNullable can contain only simple columns. |
610 | | */ |
611 | | |
612 | | /// Various properties on behaviour of column type. |
613 | | |
614 | | /// It's true for ColumnNullable only. |
615 | 844k | virtual bool is_nullable() const { return false; } |
616 | | /// It's true for ColumnNullable, can be true or false for ColumnConst, etc. |
617 | 0 | virtual bool is_concrete_nullable() const { return false; } |
618 | | |
619 | | // true if column has null element |
620 | 3 | virtual bool has_null() const { return false; } |
621 | | |
622 | | // true if column has null element [begin, end) |
623 | 443 | virtual bool has_null(size_t begin, size_t end) const { return false; } |
624 | | |
625 | 131k | virtual bool is_exclusive() const { return use_count() == 1; } |
626 | | |
627 | | /// Clear data of column, just like vector clear |
628 | | virtual void clear() = 0; |
629 | | |
630 | | /** Memory layout properties. |
631 | | * |
632 | | * Each value of a column can be placed in memory contiguously or not. |
633 | | * |
634 | | * Example: simple columns like UInt64 or FixedString store their values contiguously in single memory buffer. |
635 | | * |
636 | | * Example: Tuple store values of each component in separate subcolumn, so the values of Tuples with at least two components are not contiguous. |
637 | | * Another example is Nullable. Each value have null flag, that is stored separately, so the value is not contiguous in memory. |
638 | | * |
639 | | * There are some important cases, when values are not stored contiguously, but for each value, you can get contiguous memory segment, |
640 | | * that will unambiguously identify the value. In this case, methods get_data_at and insert_data are implemented. |
641 | | * Example: String column: bytes of strings are stored concatenated in one memory buffer |
642 | | * and offsets to that buffer are stored in another buffer. The same is for Array of fixed-size contiguous elements. |
643 | | * |
644 | | * To avoid confusion between these cases, we don't have isContiguous method. |
645 | | */ |
646 | | // todo: We should support a non-const version of get_raw_data that returns a Slice. |
647 | 2 | virtual StringRef get_raw_data() const { |
648 | 2 | throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, |
649 | 2 | "Column {} is not a contiguous block of memory", get_name()); |
650 | 2 | } |
651 | | |
652 | | // Column is ColumnString/ColumnArray/ColumnMap or other variable length column at every row |
653 | 16 | virtual bool is_variable_length() const { return false; } |
654 | | |
655 | 61 | virtual bool is_column_string() const { return false; } |
656 | | |
657 | 1.94k | virtual bool is_column_string64() const { return false; } |
658 | | |
659 | 2.35k | virtual bool is_column_dictionary() const { return false; } |
660 | | |
661 | | /// If the only value column can contain is NULL. |
662 | 14.8k | virtual bool only_null() const { return false; } |
663 | | |
664 | | /** |
665 | | * ColumnSorter is used to sort each columns in a Block. In this sorting pattern, sorting a |
666 | | * column will produce a list of EqualRange which has the same elements respectively. And for |
667 | | * next column in this block, we only need to sort rows in those `range`. |
668 | | * |
669 | | * Besides, we do not materialize sorted data eagerly. Instead, the intermediate sorting results |
670 | | * are represendted by permutation and data will be materialized after all of columns are sorted. |
671 | | * |
672 | | * @sorter: ColumnSorter is used to do sorting. |
673 | | * @flags : indicates if current item equals to the previous one. |
674 | | * @perms : permutation after sorting |
675 | | * @range : EqualRange which has the same elements respectively. |
676 | | * @last_column : indicates if this column is the last in this block. |
677 | | */ |
678 | | virtual void sort_column(const ColumnSorter* sorter, EqualFlags& flags, |
679 | | IColumn::Permutation& perms, EqualRange& range, |
680 | | bool last_column) const; |
681 | | |
682 | 2.97M | virtual ~IColumn() = default; |
683 | 2.96M | IColumn() = default; |
684 | 5.23k | IColumn(const IColumn&) = default; |
685 | | |
686 | | /** Print column name, size, and recursively print all subcolumns. |
687 | | */ |
688 | | String dump_structure() const; |
689 | | |
690 | | // count how many const column including self |
691 | | int count_const_column() const; |
692 | | |
693 | | bool null_map_check() const; |
694 | | |
695 | | // const column nested check, eg. const(nullable(...)) is allowed |
696 | | // const(array(const(...))) is not allowed |
697 | | bool const_nested_check() const; |
698 | | |
699 | | // column boolean check, only allow 0 and 1 |
700 | | bool column_boolean_check() const; |
701 | | |
702 | | Status column_self_check() const; |
703 | | |
704 | | // only used in agg value replace for column which is not variable length, eg.BlockReader::_copy_value_data |
705 | | // usage: self_column.replace_column_data(other_column, other_column's row index, self_column's row index) |
706 | | virtual void replace_column_data(const IColumn&, size_t row, size_t self_row = 0) = 0; |
707 | | |
708 | | // Batch version of replace_column_data for replacing continuous range of data |
709 | | // Used in sparse column compaction optimization for better performance |
710 | | // Default implementation calls replace_column_data in a loop |
711 | | // Subclasses (e.g., ColumnVector, ColumnDecimal) can override with optimized memcpy |
712 | | virtual void replace_column_data_range(const IColumn& src, size_t src_start, size_t count, |
713 | 0 | size_t self_start) { |
714 | 0 | for (size_t i = 0; i < count; ++i) { |
715 | 0 | replace_column_data(src, src_start + i, self_start + i); |
716 | 0 | } |
717 | 0 | } |
718 | | // Whether this column type supports efficient in-place range replacement. |
719 | | // Returns true for fixed-width types (ColumnVector, ColumnDecimal) that can use memcpy. |
720 | | // Returns false for variable-length types (ColumnString, ColumnArray, etc.) that require |
721 | | // more complex handling. Used by sparse column compaction to choose the right code path. |
722 | 0 | virtual bool support_replace_column_data_range() const { return false; } |
723 | | |
724 | | // replace data to default value if null, used to avoid null data output decimal check failure |
725 | | // usage: nested_column.replace_column_null_data(nested_null_map.data()) |
726 | | // only wrok on column_vector and column column decimal, there will be no behavior when other columns type call this method |
727 | 192 | virtual void replace_column_null_data(const uint8_t* __restrict null_map) {} |
728 | | // whether support replace null data, default return false |
729 | | // column_vector and column_decimal override this method to return true |
730 | 86 | virtual bool support_replace_column_null_data() const { return false; } |
731 | | |
732 | | // For float/double types, replace -0.0 with 0.0, set NaN to quiet NaN, |
733 | | // used to ensure data hash equality for -0.0 and +0.0, e.g. aggregate and join |
734 | 0 | virtual void replace_float_special_values() {} |
735 | | |
736 | | protected: |
737 | | template <typename Derived> |
738 | 418 | void append_data_by_selector_impl(MutablePtr& res, const Selector& selector) const { |
739 | 418 | append_data_by_selector_impl<Derived>(res, selector, 0, selector.size()); |
740 | 418 | } Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_23ColumnFixedLengthObjectEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_14ColumnNullableEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_11ColumnConstEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_13ColumnNothingEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE _ZNK5doris7IColumn28append_data_by_selector_implINS_9ColumnStrIjEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 738 | 1 | void append_data_by_selector_impl(MutablePtr& res, const Selector& selector) const { | 739 | 1 | append_data_by_selector_impl<Derived>(res, selector, 0, selector.size()); | 740 | 1 | } |
Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_11ColumnArrayEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE39EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE36EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE37EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE27EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE42EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_15ColumnVarbinaryEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 738 | 1 | void append_data_by_selector_impl(MutablePtr& res, const Selector& selector) const { | 739 | 1 | append_data_by_selector_impl<Derived>(res, selector, 0, selector.size()); | 740 | 1 | } |
_ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 738 | 416 | void append_data_by_selector_impl(MutablePtr& res, const Selector& selector) const { | 739 | 416 | append_data_by_selector_impl<Derived>(res, selector, 0, selector.size()); | 740 | 416 | } |
Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE12EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE26EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE11EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE25EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_13ColumnDictI32EEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE15EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE23EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnStructEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_9ColumnMapEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_13ColumnVariantEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: block_test.cpp:_ZNK5doris7IColumn28append_data_by_selector_implINS_12_GLOBAL__N_118ThrowOnCloneColumnEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_17ColumnComplexTypeILNS_13PrimitiveTypeE22EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_17ColumnComplexTypeILNS_13PrimitiveTypeE19EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_17ColumnComplexTypeILNS_13PrimitiveTypeE24EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_9ColumnStrImEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE11EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE2EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE3EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE4EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE5EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE6EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE7EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE8EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE9EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE25EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE12EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE26EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE10EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE20EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE28EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE29EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE30EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE35EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE36EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE37EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE38EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE42EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE |
741 | | template <typename Derived> |
742 | 0 | void insert_impl(const Field& x, const size_t n) { |
743 | 0 | for (size_t i = 0; i < n; ++i) { |
744 | 0 | static_cast<Derived&>(*this).insert(x); |
745 | 0 | } |
746 | 0 | } Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_23ColumnFixedLengthObjectEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_14ColumnNullableEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_11ColumnConstEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_13ColumnNothingEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_9ColumnStrIjEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_11ColumnArrayEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE39EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE36EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE37EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE27EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE42EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_15ColumnVarbinaryEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE12EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE26EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE11EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE25EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_13ColumnDictI32EEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE15EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE23EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnStructEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_9ColumnMapEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_13ColumnVariantEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEEvRKNS_5FieldEm Unexecuted instantiation: block_test.cpp:_ZN5doris7IColumn11insert_implINS_12_GLOBAL__N_118ThrowOnCloneColumnEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_17ColumnComplexTypeILNS_13PrimitiveTypeE22EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_17ColumnComplexTypeILNS_13PrimitiveTypeE19EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_17ColumnComplexTypeILNS_13PrimitiveTypeE24EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_9ColumnStrImEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE11EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE2EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE3EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE4EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE5EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE6EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE7EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE8EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE9EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE25EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE12EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE26EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE10EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE20EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE28EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE29EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE30EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE35EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE36EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE37EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_12ColumnVectorILNS_13PrimitiveTypeE38EEEEEvRKNS_5FieldEm Unexecuted instantiation: _ZN5doris7IColumn11insert_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE42EEEEEvRKNS_5FieldEm |
747 | | template <typename Derived> |
748 | | void append_data_by_selector_impl(MutablePtr& res, const Selector& selector, size_t begin, |
749 | 510 | size_t end) const { |
750 | 510 | size_t num_rows = size(); |
751 | | |
752 | 510 | if (num_rows < selector.size()) { |
753 | 0 | throw doris::Exception(ErrorCode::INTERNAL_ERROR, |
754 | 0 | "Size of selector: {} is larger than size of column: {}", |
755 | 0 | selector.size(), num_rows); |
756 | 0 | } |
757 | 510 | DCHECK_GE(end, begin); |
758 | 510 | DCHECK_LE(end, selector.size()); |
759 | 510 | static_cast<Derived&>(*res).insert_indices_from(*this, &selector[begin], &selector[end]); |
760 | 510 | } Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_23ColumnFixedLengthObjectEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Line | Count | Source | 749 | 44 | size_t end) const { | 750 | 44 | size_t num_rows = size(); | 751 | | | 752 | 44 | if (num_rows < selector.size()) { | 753 | 0 | throw doris::Exception(ErrorCode::INTERNAL_ERROR, | 754 | 0 | "Size of selector: {} is larger than size of column: {}", | 755 | 0 | selector.size(), num_rows); | 756 | 0 | } | 757 | 44 | DCHECK_GE(end, begin); | 758 | | DCHECK_LE(end, selector.size()); | 759 | 44 | static_cast<Derived&>(*res).insert_indices_from(*this, &selector[begin], &selector[end]); | 760 | 44 | } |
Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_14ColumnNullableEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_11ColumnConstEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_13ColumnNothingEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm _ZNK5doris7IColumn28append_data_by_selector_implINS_9ColumnStrIjEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Line | Count | Source | 749 | 1 | size_t end) const { | 750 | 1 | size_t num_rows = size(); | 751 | | | 752 | 1 | if (num_rows < selector.size()) { | 753 | 0 | throw doris::Exception(ErrorCode::INTERNAL_ERROR, | 754 | 0 | "Size of selector: {} is larger than size of column: {}", | 755 | 0 | selector.size(), num_rows); | 756 | 0 | } | 757 | 1 | DCHECK_GE(end, begin); | 758 | | DCHECK_LE(end, selector.size()); | 759 | 1 | static_cast<Derived&>(*res).insert_indices_from(*this, &selector[begin], &selector[end]); | 760 | 1 | } |
Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm _ZNK5doris7IColumn28append_data_by_selector_implINS_11ColumnArrayEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Line | Count | Source | 749 | 43 | size_t end) const { | 750 | 43 | size_t num_rows = size(); | 751 | | | 752 | 43 | if (num_rows < selector.size()) { | 753 | 0 | throw doris::Exception(ErrorCode::INTERNAL_ERROR, | 754 | 0 | "Size of selector: {} is larger than size of column: {}", | 755 | 0 | selector.size(), num_rows); | 756 | 0 | } | 757 | 43 | DCHECK_GE(end, begin); | 758 | | DCHECK_LE(end, selector.size()); | 759 | 43 | static_cast<Derived&>(*res).insert_indices_from(*this, &selector[begin], &selector[end]); | 760 | 43 | } |
Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE39EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE36EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Line | Count | Source | 749 | 1 | size_t end) const { | 750 | 1 | size_t num_rows = size(); | 751 | | | 752 | 1 | if (num_rows < selector.size()) { | 753 | 0 | throw doris::Exception(ErrorCode::INTERNAL_ERROR, | 754 | 0 | "Size of selector: {} is larger than size of column: {}", | 755 | 0 | selector.size(), num_rows); | 756 | 0 | } | 757 | 1 | DCHECK_GE(end, begin); | 758 | | DCHECK_LE(end, selector.size()); | 759 | 1 | static_cast<Derived&>(*res).insert_indices_from(*this, &selector[begin], &selector[end]); | 760 | 1 | } |
_ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE37EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Line | Count | Source | 749 | 1 | size_t end) const { | 750 | 1 | size_t num_rows = size(); | 751 | | | 752 | 1 | if (num_rows < selector.size()) { | 753 | 0 | throw doris::Exception(ErrorCode::INTERNAL_ERROR, | 754 | 0 | "Size of selector: {} is larger than size of column: {}", | 755 | 0 | selector.size(), num_rows); | 756 | 0 | } | 757 | 1 | DCHECK_GE(end, begin); | 758 | | DCHECK_LE(end, selector.size()); | 759 | 1 | static_cast<Derived&>(*res).insert_indices_from(*this, &selector[begin], &selector[end]); | 760 | 1 | } |
Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE27EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE42EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_15ColumnVarbinaryEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Line | Count | Source | 749 | 1 | size_t end) const { | 750 | 1 | size_t num_rows = size(); | 751 | | | 752 | 1 | if (num_rows < selector.size()) { | 753 | 0 | throw doris::Exception(ErrorCode::INTERNAL_ERROR, | 754 | 0 | "Size of selector: {} is larger than size of column: {}", | 755 | 0 | selector.size(), num_rows); | 756 | 0 | } | 757 | 1 | DCHECK_GE(end, begin); | 758 | | DCHECK_LE(end, selector.size()); | 759 | 1 | static_cast<Derived&>(*res).insert_indices_from(*this, &selector[begin], &selector[end]); | 760 | 1 | } |
_ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Line | Count | Source | 749 | 419 | size_t end) const { | 750 | 419 | size_t num_rows = size(); | 751 | | | 752 | 419 | if (num_rows < selector.size()) { | 753 | 0 | throw doris::Exception(ErrorCode::INTERNAL_ERROR, | 754 | 0 | "Size of selector: {} is larger than size of column: {}", | 755 | 0 | selector.size(), num_rows); | 756 | 0 | } | 757 | 419 | DCHECK_GE(end, begin); | 758 | | DCHECK_LE(end, selector.size()); | 759 | 419 | static_cast<Derived&>(*res).insert_indices_from(*this, &selector[begin], &selector[end]); | 760 | 419 | } |
Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE12EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE26EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE11EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE25EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_13ColumnDictI32EEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE15EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE23EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnStructEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_9ColumnMapEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_13ColumnVariantEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: block_test.cpp:_ZNK5doris7IColumn28append_data_by_selector_implINS_12_GLOBAL__N_118ThrowOnCloneColumnEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_17ColumnComplexTypeILNS_13PrimitiveTypeE22EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_17ColumnComplexTypeILNS_13PrimitiveTypeE19EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_17ColumnComplexTypeILNS_13PrimitiveTypeE24EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_9ColumnStrImEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE11EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE2EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE3EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE4EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE5EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE6EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE7EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE8EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE9EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE25EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE12EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE26EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE10EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE20EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE28EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE29EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE30EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE35EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE36EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE37EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_12ColumnVectorILNS_13PrimitiveTypeE38EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm Unexecuted instantiation: _ZNK5doris7IColumn28append_data_by_selector_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE42EEEEEvRNS_3COWIS0_E11mutable_ptrIS0_EERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEmm |
761 | | template <typename Derived> |
762 | | void insert_from_multi_column_impl(const std::vector<const IColumn*>& srcs, |
763 | 117 | const std::vector<size_t>& positions) { |
764 | 117 | reserve(size() + srcs.size()); |
765 | 528 | for (size_t i = 0; i < srcs.size(); ++i) { |
766 | 411 | static_cast<Derived&>(*this).insert_from(*srcs[i], positions[i]); |
767 | 411 | } |
768 | 117 | } Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_23ColumnFixedLengthObjectEEEvRKSt6vectorIPKS0_SaIS5_EERKS3_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE _ZN5doris7IColumn29insert_from_multi_column_implINS_14ColumnNullableEEEvRKSt6vectorIPKS0_SaIS5_EERKS3_ImSaImEE Line | Count | Source | 763 | 65 | const std::vector<size_t>& positions) { | 764 | 65 | reserve(size() + srcs.size()); | 765 | 268 | for (size_t i = 0; i < srcs.size(); ++i) { | 766 | 203 | static_cast<Derived&>(*this).insert_from(*srcs[i], positions[i]); | 767 | 203 | } | 768 | 65 | } |
Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_11ColumnConstEEEvRKSt6vectorIPKS0_SaIS5_EERKS3_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_13ColumnNothingEEEvRKSt6vectorIPKS0_SaIS5_EERKS3_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_9ColumnStrIjEEEEvRKSt6vectorIPKS0_SaIS6_EERKS4_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_11ColumnArrayEEEvRKSt6vectorIPKS0_SaIS5_EERKS3_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE39EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE36EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE37EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE27EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE42EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_15ColumnVarbinaryEEEvRKSt6vectorIPKS0_SaIS5_EERKS3_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Line | Count | Source | 763 | 26 | const std::vector<size_t>& positions) { | 764 | 26 | reserve(size() + srcs.size()); | 765 | 130 | for (size_t i = 0; i < srcs.size(); ++i) { | 766 | 104 | static_cast<Derived&>(*this).insert_from(*srcs[i], positions[i]); | 767 | 104 | } | 768 | 26 | } |
_ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Line | Count | Source | 763 | 26 | const std::vector<size_t>& positions) { | 764 | 26 | reserve(size() + srcs.size()); | 765 | 130 | for (size_t i = 0; i < srcs.size(); ++i) { | 766 | 104 | static_cast<Derived&>(*this).insert_from(*srcs[i], positions[i]); | 767 | 104 | } | 768 | 26 | } |
Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE12EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE26EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE11EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE25EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_13ColumnDictI32EEEvRKSt6vectorIPKS0_SaIS5_EERKS3_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE15EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE23EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnStructEEEvRKSt6vectorIPKS0_SaIS5_EERKS3_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_9ColumnMapEEEvRKSt6vectorIPKS0_SaIS5_EERKS3_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_13ColumnVariantEEEvRKSt6vectorIPKS0_SaIS5_EERKS3_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: block_test.cpp:_ZN5doris7IColumn29insert_from_multi_column_implINS_12_GLOBAL__N_118ThrowOnCloneColumnEEEvRKSt6vectorIPKS0_SaIS6_EERKS4_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_17ColumnComplexTypeILNS_13PrimitiveTypeE22EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_17ColumnComplexTypeILNS_13PrimitiveTypeE19EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_17ColumnComplexTypeILNS_13PrimitiveTypeE24EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_9ColumnStrImEEEEvRKSt6vectorIPKS0_SaIS6_EERKS4_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE11EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE2EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE3EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE4EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE5EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE6EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE7EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE8EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE9EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE25EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE12EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE26EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE10EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE20EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE28EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE29EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE30EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE35EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE36EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE37EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_12ColumnVectorILNS_13PrimitiveTypeE38EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE Unexecuted instantiation: _ZN5doris7IColumn29insert_from_multi_column_implINS_19PredicateColumnTypeILNS_13PrimitiveTypeE42EEEEEvRKSt6vectorIPKS0_SaIS7_EERKS5_ImSaImEE |
769 | | |
770 | | // Used to check nested const occurrences; const is only allowed at the top level. |
771 | | // e.g. const(nullable(...)) is allowed. |
772 | | // const(array(const(...))) is not allowed. |
773 | | void check_const_only_in_top_level() const; |
774 | | }; |
775 | | |
776 | | using ColumnPtr = IColumn::Ptr; |
777 | | using MutableColumnPtr = IColumn::MutablePtr; |
778 | | using Columns = std::vector<ColumnPtr>; |
779 | | using MutableColumns = std::vector<MutableColumnPtr>; |
780 | | using ColumnPtrs = std::vector<ColumnPtr>; |
781 | | using ColumnRawPtrs = std::vector<const IColumn*>; |
782 | | |
783 | | template <typename... Args> |
784 | | struct IsMutableColumns; |
785 | | |
786 | | template <typename Arg, typename... Args> |
787 | | struct IsMutableColumns<Arg, Args...> { |
788 | | static const bool value = |
789 | | std::is_assignable<MutableColumnPtr&&, Arg>::value && IsMutableColumns<Args...>::value; |
790 | | }; |
791 | | |
792 | | template <> |
793 | | struct IsMutableColumns<> { |
794 | | static const bool value = true; |
795 | | }; |
796 | | |
797 | | // prefer assert_cast than check_and_get |
798 | | template <typename Type> |
799 | 1.67M | const Type* check_and_get_column(const IColumn& column) { |
800 | 1.67M | return typeid_cast<const Type*>(&column); |
801 | 1.67M | } _ZN5doris20check_and_get_columnINS_11ColumnArrayEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 116 | const Type* check_and_get_column(const IColumn& column) { | 800 | 116 | return typeid_cast<const Type*>(&column); | 801 | 116 | } |
_ZN5doris20check_and_get_columnINS_23ColumnFixedLengthObjectEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 7 | const Type* check_and_get_column(const IColumn& column) { | 800 | 7 | return typeid_cast<const Type*>(&column); | 801 | 7 | } |
_ZN5doris20check_and_get_columnINS_13ColumnVariantEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 112 | const Type* check_and_get_column(const IColumn& column) { | 800 | 112 | return typeid_cast<const Type*>(&column); | 801 | 112 | } |
_ZN5doris20check_and_get_columnINS_13ColumnNothingEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 33 | const Type* check_and_get_column(const IColumn& column) { | 800 | 33 | return typeid_cast<const Type*>(&column); | 801 | 33 | } |
_ZN5doris20check_and_get_columnINS_11ColumnConstEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 22.1k | const Type* check_and_get_column(const IColumn& column) { | 800 | 22.1k | return typeid_cast<const Type*>(&column); | 801 | 22.1k | } |
_ZN5doris20check_and_get_columnINS_14ColumnNullableEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 481k | const Type* check_and_get_column(const IColumn& column) { | 800 | 481k | return typeid_cast<const Type*>(&column); | 801 | 481k | } |
_ZN5doris20check_and_get_columnIKNS_14ColumnNullableEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 1.10k | const Type* check_and_get_column(const IColumn& column) { | 800 | 1.10k | return typeid_cast<const Type*>(&column); | 801 | 1.10k | } |
_ZN5doris20check_and_get_columnINS_9ColumnStrIjEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 33.9k | const Type* check_and_get_column(const IColumn& column) { | 800 | 33.9k | return typeid_cast<const Type*>(&column); | 801 | 33.9k | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 25.8k | const Type* check_and_get_column(const IColumn& column) { | 800 | 25.8k | return typeid_cast<const Type*>(&column); | 801 | 25.8k | } |
_ZN5doris20check_and_get_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 7.85k | const Type* check_and_get_column(const IColumn& column) { | 800 | 7.85k | return typeid_cast<const Type*>(&column); | 801 | 7.85k | } |
_ZN5doris20check_and_get_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 11 | const Type* check_and_get_column(const IColumn& column) { | 800 | 11 | return typeid_cast<const Type*>(&column); | 801 | 11 | } |
_ZN5doris20check_and_get_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 31.3k | const Type* check_and_get_column(const IColumn& column) { | 800 | 31.3k | return typeid_cast<const Type*>(&column); | 801 | 31.3k | } |
Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEEPKT_RKNS_7IColumnE _ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 963k | const Type* check_and_get_column(const IColumn& column) { | 800 | 963k | return typeid_cast<const Type*>(&column); | 801 | 963k | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE39EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 6.39k | const Type* check_and_get_column(const IColumn& column) { | 800 | 6.39k | return typeid_cast<const Type*>(&column); | 801 | 6.39k | } |
_ZN5doris20check_and_get_columnINS_17ColumnComplexTypeILNS_13PrimitiveTypeE22EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 2 | const Type* check_and_get_column(const IColumn& column) { | 800 | 2 | return typeid_cast<const Type*>(&column); | 801 | 2 | } |
Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEEPKT_RKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_17ColumnComplexTypeILNS_13PrimitiveTypeE19EEEEEPKT_RKNS_7IColumnE _ZN5doris20check_and_get_columnINS_9ColumnMapEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 2 | const Type* check_and_get_column(const IColumn& column) { | 800 | 2 | return typeid_cast<const Type*>(&column); | 801 | 2 | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 9.13k | const Type* check_and_get_column(const IColumn& column) { | 800 | 9.13k | return typeid_cast<const Type*>(&column); | 801 | 9.13k | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 7.90k | const Type* check_and_get_column(const IColumn& column) { | 800 | 7.90k | return typeid_cast<const Type*>(&column); | 801 | 7.90k | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 8.82k | const Type* check_and_get_column(const IColumn& column) { | 800 | 8.82k | return typeid_cast<const Type*>(&column); | 801 | 8.82k | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 7.87k | const Type* check_and_get_column(const IColumn& column) { | 800 | 7.87k | return typeid_cast<const Type*>(&column); | 801 | 7.87k | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 7.96k | const Type* check_and_get_column(const IColumn& column) { | 800 | 7.96k | return typeid_cast<const Type*>(&column); | 801 | 7.96k | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 7.90k | const Type* check_and_get_column(const IColumn& column) { | 800 | 7.90k | return typeid_cast<const Type*>(&column); | 801 | 7.90k | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE11EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 7.84k | const Type* check_and_get_column(const IColumn& column) { | 800 | 7.84k | return typeid_cast<const Type*>(&column); | 801 | 7.84k | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE25EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 7.84k | const Type* check_and_get_column(const IColumn& column) { | 800 | 7.84k | return typeid_cast<const Type*>(&column); | 801 | 7.84k | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE12EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 7.84k | const Type* check_and_get_column(const IColumn& column) { | 800 | 7.84k | return typeid_cast<const Type*>(&column); | 801 | 7.84k | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE26EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 7.84k | const Type* check_and_get_column(const IColumn& column) { | 800 | 7.84k | return typeid_cast<const Type*>(&column); | 801 | 7.84k | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE36EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 7.87k | const Type* check_and_get_column(const IColumn& column) { | 800 | 7.87k | return typeid_cast<const Type*>(&column); | 801 | 7.87k | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE37EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 7.87k | const Type* check_and_get_column(const IColumn& column) { | 800 | 7.87k | return typeid_cast<const Type*>(&column); | 801 | 7.87k | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE27EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 7.84k | const Type* check_and_get_column(const IColumn& column) { | 800 | 7.84k | return typeid_cast<const Type*>(&column); | 801 | 7.84k | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE42EEEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 2 | const Type* check_and_get_column(const IColumn& column) { | 800 | 2 | return typeid_cast<const Type*>(&column); | 801 | 2 | } |
Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_17ColumnComplexTypeILNS_13PrimitiveTypeE24EEEEEPKT_RKNS_7IColumnE _ZN5doris20check_and_get_columnINS_12ColumnStructEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 4 | const Type* check_and_get_column(const IColumn& column) { | 800 | 4 | return typeid_cast<const Type*>(&column); | 801 | 4 | } |
_ZN5doris20check_and_get_columnINS_15ColumnVarbinaryEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 3 | const Type* check_and_get_column(const IColumn& column) { | 800 | 3 | return typeid_cast<const Type*>(&column); | 801 | 3 | } |
Unexecuted instantiation: _ZN5doris20check_and_get_columnIKNS_11ColumnConstEEEPKT_RKNS_7IColumnE _ZN5doris20check_and_get_columnIKNS_13ColumnVariantEEEPKT_RKNS_7IColumnE Line | Count | Source | 799 | 641 | const Type* check_and_get_column(const IColumn& column) { | 800 | 641 | return typeid_cast<const Type*>(&column); | 801 | 641 | } |
|
802 | | |
803 | | template <typename Type> |
804 | 262 | Type* check_and_get_column(IColumn& column) { |
805 | 262 | return typeid_cast<Type*>(&column); |
806 | 262 | } _ZN5doris20check_and_get_columnINS_11ColumnArrayEEEPT_RNS_7IColumnE Line | Count | Source | 804 | 2 | Type* check_and_get_column(IColumn& column) { | 805 | 2 | return typeid_cast<Type*>(&column); | 806 | 2 | } |
_ZN5doris20check_and_get_columnINS_23ColumnFixedLengthObjectEEEPT_RNS_7IColumnE Line | Count | Source | 804 | 221 | Type* check_and_get_column(IColumn& column) { | 805 | 221 | return typeid_cast<Type*>(&column); | 806 | 221 | } |
_ZN5doris20check_and_get_columnINS_14ColumnNullableEEEPT_RNS_7IColumnE Line | Count | Source | 804 | 12 | Type* check_and_get_column(IColumn& column) { | 805 | 12 | return typeid_cast<Type*>(&column); | 806 | 12 | } |
_ZN5doris20check_and_get_columnINS_9ColumnMapEEEPT_RNS_7IColumnE Line | Count | Source | 804 | 3 | Type* check_and_get_column(IColumn& column) { | 805 | 3 | return typeid_cast<Type*>(&column); | 806 | 3 | } |
_ZN5doris20check_and_get_columnINS_13ColumnNothingEEEPT_RNS_7IColumnE Line | Count | Source | 804 | 24 | Type* check_and_get_column(IColumn& column) { | 805 | 24 | return typeid_cast<Type*>(&column); | 806 | 24 | } |
|
807 | | |
808 | | template <typename Type> |
809 | 73.9M | const Type* check_and_get_column(const IColumn* column) { |
810 | 73.9M | return typeid_cast<const Type*>(column); |
811 | 73.9M | } _ZN5doris20check_and_get_columnINS_14ColumnNullableEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 307k | const Type* check_and_get_column(const IColumn* column) { | 810 | 307k | return typeid_cast<const Type*>(column); | 811 | 307k | } |
_ZN5doris20check_and_get_columnINS_11ColumnConstEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 73.3M | const Type* check_and_get_column(const IColumn* column) { | 810 | 73.3M | return typeid_cast<const Type*>(column); | 811 | 73.3M | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 199 | const Type* check_and_get_column(const IColumn* column) { | 810 | 199 | return typeid_cast<const Type*>(column); | 811 | 199 | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 326 | const Type* check_and_get_column(const IColumn* column) { | 810 | 326 | return typeid_cast<const Type*>(column); | 811 | 326 | } |
_ZN5doris20check_and_get_columnINS_9ColumnStrIjEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 28.1k | const Type* check_and_get_column(const IColumn* column) { | 810 | 28.1k | return typeid_cast<const Type*>(column); | 811 | 28.1k | } |
_ZN5doris20check_and_get_columnINS_11ColumnArrayEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 15.5k | const Type* check_and_get_column(const IColumn* column) { | 810 | 15.5k | return typeid_cast<const Type*>(column); | 811 | 15.5k | } |
_ZN5doris20check_and_get_columnINS_9ColumnStrImEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 43 | const Type* check_and_get_column(const IColumn* column) { | 810 | 43 | return typeid_cast<const Type*>(column); | 811 | 43 | } |
Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE37EEEEEPKT_PKNS_7IColumnE _ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE25EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 23 | const Type* check_and_get_column(const IColumn* column) { | 810 | 23 | return typeid_cast<const Type*>(column); | 811 | 23 | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE26EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 81 | const Type* check_and_get_column(const IColumn* column) { | 810 | 81 | return typeid_cast<const Type*>(column); | 811 | 81 | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE42EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 2 | const Type* check_and_get_column(const IColumn* column) { | 810 | 2 | return typeid_cast<const Type*>(column); | 811 | 2 | } |
_ZN5doris20check_and_get_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 730 | const Type* check_and_get_column(const IColumn* column) { | 810 | 730 | return typeid_cast<const Type*>(column); | 811 | 730 | } |
_ZN5doris20check_and_get_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 1.21k | const Type* check_and_get_column(const IColumn* column) { | 810 | 1.21k | return typeid_cast<const Type*>(column); | 811 | 1.21k | } |
_ZN5doris20check_and_get_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 682 | const Type* check_and_get_column(const IColumn* column) { | 810 | 682 | return typeid_cast<const Type*>(column); | 811 | 682 | } |
_ZN5doris20check_and_get_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 1.33k | const Type* check_and_get_column(const IColumn* column) { | 810 | 1.33k | return typeid_cast<const Type*>(column); | 811 | 1.33k | } |
_ZN5doris20check_and_get_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 1.48k | const Type* check_and_get_column(const IColumn* column) { | 810 | 1.48k | return typeid_cast<const Type*>(column); | 811 | 1.48k | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 147 | const Type* check_and_get_column(const IColumn* column) { | 810 | 147 | return typeid_cast<const Type*>(column); | 811 | 147 | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 155 | const Type* check_and_get_column(const IColumn* column) { | 810 | 155 | return typeid_cast<const Type*>(column); | 811 | 155 | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 236 | const Type* check_and_get_column(const IColumn* column) { | 810 | 236 | return typeid_cast<const Type*>(column); | 811 | 236 | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 508 | const Type* check_and_get_column(const IColumn* column) { | 810 | 508 | return typeid_cast<const Type*>(column); | 811 | 508 | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 521 | const Type* check_and_get_column(const IColumn* column) { | 810 | 521 | return typeid_cast<const Type*>(column); | 811 | 521 | } |
Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_13ColumnVariantEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE6EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE11EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE12EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE5EEEEEPKT_PKNS_7IColumnE _ZN5doris20check_and_get_columnINS_13ColumnNothingEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 231k | const Type* check_and_get_column(const IColumn* column) { | 810 | 231k | return typeid_cast<const Type*>(column); | 811 | 231k | } |
_ZN5doris20check_and_get_columnINS_9ColumnMapEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 13 | const Type* check_and_get_column(const IColumn* column) { | 810 | 13 | return typeid_cast<const Type*>(column); | 811 | 13 | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 297 | const Type* check_and_get_column(const IColumn* column) { | 810 | 297 | return typeid_cast<const Type*>(column); | 811 | 297 | } |
_ZN5doris20check_and_get_columnINS_12ColumnStructEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 7 | const Type* check_and_get_column(const IColumn* column) { | 810 | 7 | return typeid_cast<const Type*>(column); | 811 | 7 | } |
Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE11EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE12EEEEEPKT_PKNS_7IColumnE _ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE27EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 928 | const Type* check_and_get_column(const IColumn* column) { | 810 | 928 | return typeid_cast<const Type*>(column); | 811 | 928 | } |
Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE36EEEEEPKT_PKNS_7IColumnE _ZN5doris20check_and_get_columnIKNS_14ColumnNullableEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 12 | const Type* check_and_get_column(const IColumn* column) { | 810 | 12 | return typeid_cast<const Type*>(column); | 811 | 12 | } |
_ZN5doris20check_and_get_columnINS_17ColumnComplexTypeILNS_13PrimitiveTypeE22EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 8 | const Type* check_and_get_column(const IColumn* column) { | 810 | 8 | return typeid_cast<const Type*>(column); | 811 | 8 | } |
_ZN5doris20check_and_get_columnINS_15ColumnVarbinaryEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 176 | const Type* check_and_get_column(const IColumn* column) { | 810 | 176 | return typeid_cast<const Type*>(column); | 811 | 176 | } |
_ZN5doris20check_and_get_columnINS_17ColumnComplexTypeILNS_13PrimitiveTypeE19EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 2 | const Type* check_and_get_column(const IColumn* column) { | 810 | 2 | return typeid_cast<const Type*>(column); | 811 | 2 | } |
_ZN5doris20check_and_get_columnINS_17ColumnComplexTypeILNS_13PrimitiveTypeE24EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 1 | const Type* check_and_get_column(const IColumn* column) { | 810 | 1 | return typeid_cast<const Type*>(column); | 811 | 1 | } |
_ZN5doris20check_and_get_columnINS_13ColumnDictI32EEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 1 | const Type* check_and_get_column(const IColumn* column) { | 810 | 1 | return typeid_cast<const Type*>(column); | 811 | 1 | } |
Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE3EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE4EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE7EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE8EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE9EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE20EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE28EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE29EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE30EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE35EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE15EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE23EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE25EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE26EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE42EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE2EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE36EEEEEPKT_PKNS_7IColumnE Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_19PredicateColumnTypeILNS_13PrimitiveTypeE37EEEEEPKT_PKNS_7IColumnE _ZN5doris20check_and_get_columnIKNS_13ColumnNothingEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 19.3k | const Type* check_and_get_column(const IColumn* column) { | 810 | 19.3k | return typeid_cast<const Type*>(column); | 811 | 19.3k | } |
_ZN5doris20check_and_get_columnIKNS_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEPKT_PKNS_7IColumnE Line | Count | Source | 809 | 2 | const Type* check_and_get_column(const IColumn* column) { | 810 | 2 | return typeid_cast<const Type*>(column); | 811 | 2 | } |
|
812 | | |
813 | | template <typename Type> |
814 | 45.1k | Type* check_and_get_column(IColumn* column) { |
815 | 45.1k | return typeid_cast<Type*>(column); |
816 | 45.1k | } _ZN5doris20check_and_get_columnINS_14ColumnNullableEEEPT_PNS_7IColumnE Line | Count | Source | 814 | 10.4k | Type* check_and_get_column(IColumn* column) { | 815 | 10.4k | return typeid_cast<Type*>(column); | 816 | 10.4k | } |
Unexecuted instantiation: _ZN5doris20check_and_get_columnINS_12ColumnStructEEEPT_PNS_7IColumnE _ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEPT_PNS_7IColumnE Line | Count | Source | 814 | 1 | Type* check_and_get_column(IColumn* column) { | 815 | 1 | return typeid_cast<Type*>(column); | 816 | 1 | } |
_ZN5doris20check_and_get_columnINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEPT_PNS_7IColumnE Line | Count | Source | 814 | 15.3k | Type* check_and_get_column(IColumn* column) { | 815 | 15.3k | return typeid_cast<Type*>(column); | 816 | 15.3k | } |
_ZN5doris20check_and_get_columnIKNS_13ColumnNothingEEEPT_PNS_7IColumnE Line | Count | Source | 814 | 19.3k | Type* check_and_get_column(IColumn* column) { | 815 | 19.3k | return typeid_cast<Type*>(column); | 816 | 19.3k | } |
|
817 | | |
818 | | template <typename Type> |
819 | 73.1M | bool is_column(const IColumn& column) { |
820 | 73.1M | return check_and_get_column<Type>(&column); |
821 | 73.1M | } _ZN5doris9is_columnINS_9ColumnStrIjEEEEbRKNS_7IColumnE Line | Count | Source | 819 | 129 | bool is_column(const IColumn& column) { | 820 | 129 | return check_and_get_column<Type>(&column); | 821 | 129 | } |
_ZN5doris9is_columnINS_11ColumnConstEEEbRKNS_7IColumnE Line | Count | Source | 819 | 73.0M | bool is_column(const IColumn& column) { | 820 | 73.0M | return check_and_get_column<Type>(&column); | 821 | 73.0M | } |
_ZN5doris9is_columnINS_9ColumnStrImEEEEbRKNS_7IColumnE Line | Count | Source | 819 | 43 | bool is_column(const IColumn& column) { | 820 | 43 | return check_and_get_column<Type>(&column); | 821 | 43 | } |
_ZN5doris9is_columnINS_14ColumnNullableEEEbRKNS_7IColumnE Line | Count | Source | 819 | 61.7k | bool is_column(const IColumn& column) { | 820 | 61.7k | return check_and_get_column<Type>(&column); | 821 | 61.7k | } |
Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEbRKNS_7IColumnE _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEbRKNS_7IColumnE Line | Count | Source | 819 | 2 | bool is_column(const IColumn& column) { | 820 | 2 | return check_and_get_column<Type>(&column); | 821 | 2 | } |
Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEEEbRKNS_7IColumnE _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEbRKNS_7IColumnE Line | Count | Source | 819 | 3 | bool is_column(const IColumn& column) { | 820 | 3 | return check_and_get_column<Type>(&column); | 821 | 3 | } |
_ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEEEbRKNS_7IColumnE Line | Count | Source | 819 | 1 | bool is_column(const IColumn& column) { | 820 | 1 | return check_and_get_column<Type>(&column); | 821 | 1 | } |
_ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEEEbRKNS_7IColumnE Line | Count | Source | 819 | 1 | bool is_column(const IColumn& column) { | 820 | 1 | return check_and_get_column<Type>(&column); | 821 | 1 | } |
_ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEbRKNS_7IColumnE Line | Count | Source | 819 | 1 | bool is_column(const IColumn& column) { | 820 | 1 | return check_and_get_column<Type>(&column); | 821 | 1 | } |
_ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEEEbRKNS_7IColumnE Line | Count | Source | 819 | 1 | bool is_column(const IColumn& column) { | 820 | 1 | return check_and_get_column<Type>(&column); | 821 | 1 | } |
Unexecuted instantiation: _ZN5doris9is_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEEbRKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEEbRKNS_7IColumnE _ZN5doris9is_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEEbRKNS_7IColumnE Line | Count | Source | 819 | 2 | bool is_column(const IColumn& column) { | 820 | 2 | return check_and_get_column<Type>(&column); | 821 | 2 | } |
Unexecuted instantiation: _ZN5doris9is_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEEbRKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEEbRKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE11EEEEEbRKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE25EEEEEbRKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE26EEEEEbRKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE12EEEEEbRKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE27EEEEEbRKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE42EEEEEbRKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE36EEEEEbRKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE37EEEEEbRKNS_7IColumnE |
822 | | |
823 | | template <typename Type> |
824 | 13.6k | bool is_column(const IColumn* column) { |
825 | 13.6k | return check_and_get_column<Type>(column); |
826 | 13.6k | } _ZN5doris9is_columnINS_11ColumnArrayEEEbPKNS_7IColumnE Line | Count | Source | 824 | 13.6k | bool is_column(const IColumn* column) { | 825 | 13.6k | return check_and_get_column<Type>(column); | 826 | 13.6k | } |
Unexecuted instantiation: _ZN5doris9is_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEEbPKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEEbPKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEEbPKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEEbPKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEEbPKNS_7IColumnE _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEbPKNS_7IColumnE Line | Count | Source | 824 | 4 | bool is_column(const IColumn* column) { | 825 | 4 | return check_and_get_column<Type>(column); | 826 | 4 | } |
_ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEbPKNS_7IColumnE Line | Count | Source | 824 | 4 | bool is_column(const IColumn* column) { | 825 | 4 | return check_and_get_column<Type>(column); | 826 | 4 | } |
_ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEEEbPKNS_7IColumnE Line | Count | Source | 824 | 4 | bool is_column(const IColumn* column) { | 825 | 4 | return check_and_get_column<Type>(column); | 826 | 4 | } |
_ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEEEbPKNS_7IColumnE Line | Count | Source | 824 | 4 | bool is_column(const IColumn* column) { | 825 | 4 | return check_and_get_column<Type>(column); | 826 | 4 | } |
_ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEEEbPKNS_7IColumnE Line | Count | Source | 824 | 4 | bool is_column(const IColumn* column) { | 825 | 4 | return check_and_get_column<Type>(column); | 826 | 4 | } |
_ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEbPKNS_7IColumnE Line | Count | Source | 824 | 4 | bool is_column(const IColumn* column) { | 825 | 4 | return check_and_get_column<Type>(column); | 826 | 4 | } |
_ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEEEbPKNS_7IColumnE Line | Count | Source | 824 | 4 | bool is_column(const IColumn* column) { | 825 | 4 | return check_and_get_column<Type>(column); | 826 | 4 | } |
_ZN5doris9is_columnINS_9ColumnMapEEEbPKNS_7IColumnE Line | Count | Source | 824 | 6 | bool is_column(const IColumn* column) { | 825 | 6 | return check_and_get_column<Type>(column); | 826 | 6 | } |
Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE25EEEEEbPKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE26EEEEEbPKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE42EEEEEbPKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_9ColumnStrIjEEEEbPKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEbPKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE11EEEEEbPKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE12EEEEEbPKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE27EEEEEbPKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE36EEEEEbPKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnVectorILNS_13PrimitiveTypeE37EEEEEbPKNS_7IColumnE Unexecuted instantiation: _ZN5doris9is_columnINS_12ColumnStructEEEbPKNS_7IColumnE |
827 | | |
828 | | // check_and_get_column_ptr is used to return a ColumnPtr of a specific column type, |
829 | | // which will hold ownership. This prevents the occurrence of dangling pointers due to certain situations. |
830 | | template <typename ColumnType> |
831 | 70.5k | ColumnType::Ptr check_and_get_column_ptr(const ColumnPtr& column) { |
832 | 70.5k | const ColumnType* raw_type_ptr = check_and_get_column<ColumnType>(column.get()); |
833 | 70.5k | if (raw_type_ptr == nullptr) { |
834 | 61.9k | return nullptr; |
835 | 61.9k | } |
836 | 8.64k | return ColumnType::cast_to_column_ptr(raw_type_ptr); |
837 | 70.5k | } _ZN5doris24check_and_get_column_ptrINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Line | Count | Source | 831 | 2 | ColumnType::Ptr check_and_get_column_ptr(const ColumnPtr& column) { | 832 | 2 | const ColumnType* raw_type_ptr = check_and_get_column<ColumnType>(column.get()); | 833 | 2 | if (raw_type_ptr == nullptr) { | 834 | 0 | return nullptr; | 835 | 0 | } | 836 | 2 | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 837 | 2 | } |
_ZN5doris24check_and_get_column_ptrINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Line | Count | Source | 831 | 1 | ColumnType::Ptr check_and_get_column_ptr(const ColumnPtr& column) { | 832 | 1 | const ColumnType* raw_type_ptr = check_and_get_column<ColumnType>(column.get()); | 833 | 1 | if (raw_type_ptr == nullptr) { | 834 | 1 | return nullptr; | 835 | 1 | } | 836 | 0 | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 837 | 1 | } |
_ZN5doris24check_and_get_column_ptrINS_14ColumnNullableEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EE Line | Count | Source | 831 | 70.5k | ColumnType::Ptr check_and_get_column_ptr(const ColumnPtr& column) { | 832 | 70.5k | const ColumnType* raw_type_ptr = check_and_get_column<ColumnType>(column.get()); | 833 | 70.5k | if (raw_type_ptr == nullptr) { | 834 | 61.9k | return nullptr; | 835 | 61.9k | } | 836 | 8.62k | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 837 | 70.5k | } |
_ZN5doris24check_and_get_column_ptrINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Line | Count | Source | 831 | 16 | ColumnType::Ptr check_and_get_column_ptr(const ColumnPtr& column) { | 832 | 16 | const ColumnType* raw_type_ptr = check_and_get_column<ColumnType>(column.get()); | 833 | 16 | if (raw_type_ptr == nullptr) { | 834 | 1 | return nullptr; | 835 | 1 | } | 836 | 15 | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 837 | 16 | } |
|
838 | | |
839 | | template <typename ColumnType> |
840 | 1.10M | ColumnType::Ptr cast_to_column(const ColumnPtr& column) { |
841 | 1.10M | const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get()); |
842 | 1.10M | return ColumnType::cast_to_column_ptr(raw_type_ptr); |
843 | 1.10M | } _ZN5doris14cast_to_columnINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Line | Count | Source | 840 | 1.03M | ColumnType::Ptr cast_to_column(const ColumnPtr& column) { | 841 | 1.03M | const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get()); | 842 | 1.03M | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 843 | 1.03M | } |
_ZN5doris14cast_to_columnINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Line | Count | Source | 840 | 66 | ColumnType::Ptr cast_to_column(const ColumnPtr& column) { | 841 | 66 | const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get()); | 842 | 66 | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 843 | 66 | } |
_ZN5doris14cast_to_columnINS_9ColumnStrImEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE Line | Count | Source | 840 | 27 | ColumnType::Ptr cast_to_column(const ColumnPtr& column) { | 841 | 27 | const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get()); | 842 | 27 | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 843 | 27 | } |
_ZN5doris14cast_to_columnINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Line | Count | Source | 840 | 52 | ColumnType::Ptr cast_to_column(const ColumnPtr& column) { | 841 | 52 | const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get()); | 842 | 52 | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 843 | 52 | } |
_ZN5doris14cast_to_columnINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Line | Count | Source | 840 | 52 | ColumnType::Ptr cast_to_column(const ColumnPtr& column) { | 841 | 52 | const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get()); | 842 | 52 | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 843 | 52 | } |
_ZN5doris14cast_to_columnINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Line | Count | Source | 840 | 58 | ColumnType::Ptr cast_to_column(const ColumnPtr& column) { | 841 | 58 | const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get()); | 842 | 58 | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 843 | 58 | } |
_ZN5doris14cast_to_columnINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Line | Count | Source | 840 | 52 | ColumnType::Ptr cast_to_column(const ColumnPtr& column) { | 841 | 52 | const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get()); | 842 | 52 | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 843 | 52 | } |
_ZN5doris14cast_to_columnINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Line | Count | Source | 840 | 53 | ColumnType::Ptr cast_to_column(const ColumnPtr& column) { | 841 | 53 | const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get()); | 842 | 53 | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 843 | 53 | } |
_ZN5doris14cast_to_columnINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Line | Count | Source | 840 | 52 | ColumnType::Ptr cast_to_column(const ColumnPtr& column) { | 841 | 52 | const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get()); | 842 | 52 | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 843 | 52 | } |
_ZN5doris14cast_to_columnINS_12ColumnVectorILNS_13PrimitiveTypeE36EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Line | Count | Source | 840 | 52 | ColumnType::Ptr cast_to_column(const ColumnPtr& column) { | 841 | 52 | const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get()); | 842 | 52 | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 843 | 52 | } |
_ZN5doris14cast_to_columnINS_12ColumnVectorILNS_13PrimitiveTypeE37EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Line | Count | Source | 840 | 52 | ColumnType::Ptr cast_to_column(const ColumnPtr& column) { | 841 | 52 | const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get()); | 842 | 52 | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 843 | 52 | } |
_ZN5doris14cast_to_columnINS_9ColumnStrIjEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE Line | Count | Source | 840 | 29 | ColumnType::Ptr cast_to_column(const ColumnPtr& column) { | 841 | 29 | const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get()); | 842 | 29 | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 843 | 29 | } |
_ZN5doris14cast_to_columnINS_12ColumnVectorILNS_13PrimitiveTypeE25EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Line | Count | Source | 840 | 52 | ColumnType::Ptr cast_to_column(const ColumnPtr& column) { | 841 | 52 | const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get()); | 842 | 52 | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 843 | 52 | } |
_ZN5doris14cast_to_columnINS_12ColumnVectorILNS_13PrimitiveTypeE26EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Line | Count | Source | 840 | 52 | ColumnType::Ptr cast_to_column(const ColumnPtr& column) { | 841 | 52 | const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get()); | 842 | 52 | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 843 | 52 | } |
Unexecuted instantiation: _ZN5doris14cast_to_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Unexecuted instantiation: _ZN5doris14cast_to_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Unexecuted instantiation: _ZN5doris14cast_to_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE Unexecuted instantiation: _ZN5doris14cast_to_columnINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS7_EE _ZN5doris14cast_to_columnINS_14ColumnNullableEEENT_3PtrERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EE Line | Count | Source | 840 | 75.9k | ColumnType::Ptr cast_to_column(const ColumnPtr& column) { | 841 | 75.9k | const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get()); | 842 | 75.9k | return ColumnType::cast_to_column_ptr(raw_type_ptr); | 843 | 75.9k | } |
|
844 | | template <typename ColumnType> |
845 | 1 | ColumnType::MutablePtr cast_to_column(MutableColumnPtr column) { |
846 | 1 | ColumnType* raw_type_ptr = assert_cast<ColumnType*>(column.get()); |
847 | 1 | return ColumnType::cast_to_column_mutptr(raw_type_ptr); |
848 | 1 | } |
849 | | |
850 | | /// True if column's an ColumnConst instance. It's just a syntax sugar for type check. |
851 | | bool is_column_const(const IColumn& column); |
852 | | |
853 | | /// True if column's an ColumnNullable instance. It's just a syntax sugar for type check. |
854 | | bool is_column_nullable(const IColumn& column); |
855 | | } // namespace doris |
856 | | |
857 | | // Wrap `ColumnPtr` because `ColumnPtr` can't be used in forward declaration. |
858 | | namespace doris { |
859 | | struct ColumnPtrWrapper { |
860 | | ColumnPtr column_ptr; |
861 | | |
862 | 57.6k | ColumnPtrWrapper(ColumnPtr col) : column_ptr(std::move(col)) {} |
863 | | }; |
864 | | } // namespace doris |