Coverage Report

Created: 2026-02-11 18:42

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/root/doris/be/src/vec/columns/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 "olap/olap_common.h"
32
#include "runtime/define_primitive_type.h"
33
#include "vec/common/assert_cast.h"
34
#include "vec/common/cow.h"
35
#include "vec/common/pod_array_fwd.h"
36
#include "vec/common/string_ref.h"
37
#include "vec/common/typeid_cast.h"
38
#include "vec/core/field.h"
39
#include "vec/core/hybrid_sorter.h"
40
#include "vec/core/types.h"
41
42
namespace doris {
43
class SipHash;
44
}
45
46
namespace doris::vectorized {
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
1.32M
    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
4.10k
    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
137k
    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
    // shrink the end zeros for ColumnStr(also for who has it nested). so nest column will call it for all nested.
117
    // for non-str col, will reach here(do nothing). only ColumnStr will really shrink itself.
118
48
    virtual void shrink_padding_chars() {}
119
120
    // Only used in ColumnVariant to handle lifecycle of variant. Other columns would do nothing.
121
2
    virtual void finalize() {}
122
123
    // Only used on ColumnDictionary
124
467
    virtual void set_rowset_segment_id(std::pair<RowsetId, uint32_t> rowset_segment_id) {}
125
126
0
    virtual std::pair<RowsetId, uint32_t> get_rowset_segment_id() const { return {}; }
127
128
    /// Returns number of values in column.
129
    virtual size_t size() const = 0;
130
131
    /// There are no values in columns.
132
163k
    bool empty() const { return size() == 0; }
133
134
    /// Returns value of n-th element in universal Field representation.
135
    /// Is used in rare cases, since creation of Field instance is expensive usually.
136
    virtual Field operator[](size_t n) const = 0;
137
138
    /// Like the previous one, but avoids extra copying if Field is in a container, for example.
139
    virtual void get(size_t n, Field& res) const = 0;
140
141
    /// If possible, returns pointer to memory chunk which contains n-th element (if it isn't possible, throws an exception)
142
    /// Is used to optimize some computations (in aggregation, for example).
143
    /// this function is used in ColumnString, ColumnFixedString, ColumnVector, not support in ColumnArray|ColumnMap...
144
    /// and should be pair with insert_data
145
6
    virtual StringRef get_data_at(size_t n) const {
146
6
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
147
6
                               "Method get_data_at is not supported for " + get_name());
148
6
    }
149
150
1
    virtual Int64 get_int(size_t /*n*/) const {
151
1
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
152
1
                               "Method get_int is not supported for " + get_name());
153
0
        return 0;
154
1
    }
155
156
11.3k
    virtual bool is_null_at(size_t /*n*/) const { return false; }
157
158
    /** If column is numeric, return value of n-th element, casted to bool.
159
      * For NULL values of Nullable column returns false.
160
      * Otherwise throw an exception.
161
      */
162
1
    virtual bool get_bool(size_t /*n*/) const {
163
1
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
164
1
                               "Method get_bool is not supported for " + get_name());
165
0
        return false;
166
1
    }
167
168
    /// Removes all elements outside of specified range.
169
    /// Is used in LIMIT operation, for example.
170
341
    virtual Ptr cut(size_t start, size_t length) const final {
171
341
        MutablePtr res = clone_empty();
172
341
        res->insert_range_from(*this, start, length);
173
341
        return res;
174
341
    }
175
176
    /**
177
    * erase data from 'start' and length elements from the column.
178
    * @param length The number of elements to remove from the start position of the column
179
    * @throws doris::Exception with NOT_IMPLEMENTED_ERROR if the operation is not supported
180
    *         for this column type
181
    * eg: erase(3, 2) means remove the idx 3 and 4 elements (0-based)
182
    */
183
0
    virtual void erase(size_t start, size_t length) {
184
0
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
185
0
                               "Method erase is not supported for " + get_name());
186
0
    }
187
188
    /// cut or expand inplace. `this` would be moved, only the return value is avaliable.
189
315
    virtual Ptr shrink(size_t length) const final {
190
        // NOLINTBEGIN(performance-move-const-arg)
191
315
        MutablePtr res = std::move(*this).mutate();
192
315
        res->resize(length);
193
        // NOLINTEND(performance-move-const-arg)
194
315
        return res->get_ptr();
195
315
    }
196
197
    /// Appends new value at the end of column (column's size is increased by 1).
198
    /// Is used to transform raw strings to Blocks (for example, inside input format parsers)
199
    virtual void insert(const Field& x) = 0;
200
201
    /// Appends n-th element from other column with the same type.
202
    /// Is used in merge-sort and merges. It could be implemented in inherited classes more optimally than default implementation.
203
    virtual void insert_from(const IColumn& src, size_t n);
204
205
    /// Appends range of elements from other column with the same type.
206
    /// Could be used to concatenate columns.
207
    virtual void insert_range_from(const IColumn& src, size_t start, size_t length) = 0;
208
209
    /// Appends range of elements from other column with the same type.
210
    /// Do not need throw execption in ColumnString overflow uint32, only
211
    /// use in join
212
    virtual void insert_range_from_ignore_overflow(const IColumn& src, size_t start,
213
78.6k
                                                   size_t length) {
214
78.6k
        insert_range_from(src, start, length);
215
78.6k
    }
216
217
    /// Appends one element from other column with the same type multiple times.
218
18
    virtual void insert_many_from(const IColumn& src, size_t position, size_t length) {
219
96
        for (size_t i = 0; i < length; ++i) {
220
78
            insert_from(src, position);
221
78
        }
222
18
    }
223
224
    // insert the data of target columns into self column according to positions
225
    // positions[i] means index of srcs whitch need to insert_from
226
    // the virtual function overhead of multiple calls to insert_from can be reduced to once
227
    virtual void insert_from_multi_column(const std::vector<const IColumn*>& srcs,
228
                                          const std::vector<size_t>& positions) = 0;
229
230
    /// Appends a batch elements from other column with the same type
231
    /// Also here should make sure indices_end is bigger than indices_begin
232
    /// indices_begin + indices_end represent the row indices of column src
233
    virtual void insert_indices_from(const IColumn& src, const uint32_t* indices_begin,
234
                                     const uint32_t* indices_end) = 0;
235
236
    /// Appends data located in specified memory chunk if it is possible (throws an exception if it cannot be implemented).
237
    /// used in ColumnString, ColumnFixedString, ColumnVector, not support in ColumnArray|ColumnMap...
238
    /// Is used to optimize some computations (in aggregation, for example).
239
    /// Parameter length could be ignored if column values have fixed size.
240
    /// All data will be inserted as single element
241
1
    virtual void insert_data(const char* pos, size_t length) {
242
1
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
243
1
                               "Method insert_data is not supported for " + get_name());
244
1
    }
245
246
44
    virtual void insert_many_fix_len_data(const char* pos, size_t num) {
247
44
        throw doris::Exception(
248
44
                ErrorCode::NOT_IMPLEMENTED_ERROR,
249
44
                "Method insert_many_fix_len_data is not supported for " + get_name());
250
44
    }
251
252
    // todo(zeno) Use dict_args temp object to cover all arguments
253
    virtual void insert_many_dict_data(const int32_t* data_array, size_t start_index,
254
                                       const StringRef* dict, size_t data_num,
255
44
                                       uint32_t dict_num = 0) {
256
44
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
257
44
                               "Method insert_many_dict_data is not supported for " + get_name());
258
44
    }
259
260
    /// Insert binary data into column from a continuous buffer, the implementation maybe copy all binary data
261
    /// in one single time.
262
    virtual void insert_many_continuous_binary_data(const char* data, const uint32_t* offsets,
263
44
                                                    const size_t num) {
264
44
        throw doris::Exception(
265
44
                ErrorCode::NOT_IMPLEMENTED_ERROR,
266
44
                "Method insert_many_continuous_binary_data is not supported for " + get_name());
267
44
    }
268
269
44
    virtual void insert_many_strings(const StringRef* strings, size_t num) {
270
44
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
271
44
                               "Method insert_many_strings is not supported for " + get_name());
272
44
    }
273
274
    virtual void insert_many_strings_overflow(const StringRef* strings, size_t num,
275
44
                                              size_t max_length) {
276
44
        throw doris::Exception(
277
44
                ErrorCode::NOT_IMPLEMENTED_ERROR,
278
44
                "Method insert_many_strings_overflow is not supported for " + get_name());
279
44
    }
280
281
    // Here `pos` points to the memory data type is the same as the data type of the column.
282
    // This function is used by `insert_keys_into_columns` in AggregationNode.
283
1
    virtual void insert_many_raw_data(const char* pos, size_t num) {
284
1
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
285
1
                               "Method insert_many_raw_data is not supported for " + get_name());
286
1
    }
287
288
6
    void insert_data_repeatedly(const char* pos, size_t length, size_t data_num) {
289
12
        for (size_t i = 0; i < data_num; ++i) {
290
6
            insert_data(pos, length);
291
6
        }
292
6
    }
293
294
    /// Appends "default value".
295
    /// Is used when there are need to increase column size, but inserting value doesn't make sense.
296
    /// For example, ColumnNullable(Nested) absolutely ignores values of nested column if it is marked as NULL.
297
    virtual void insert_default() = 0;
298
299
    /// Appends "default value" multiple times.
300
1.66k
    virtual void insert_many_defaults(size_t length) {
301
47.8M
        for (size_t i = 0; i < length; ++i) {
302
47.8M
            insert_default();
303
47.8M
        }
304
1.66k
    }
305
306
    /** Removes last n elements.
307
      * Is used to support exception-safety of several operations.
308
      *  For example, sometimes insertion should be reverted if we catch an exception during operation processing.
309
      * If column has less than n elements or n == 0 - undefined behavior.
310
      */
311
    virtual void pop_back(size_t n) = 0;
312
313
    /** Serializes n-th element. Serialized element should be placed continuously inside Arena's memory.
314
      * Serialized value can be deserialized to reconstruct original object. Is used in aggregation.
315
      * The method is similar to get_data_at(), but can work when element's value cannot be mapped to existing continuous memory chunk,
316
      *  For example, to obtain unambiguous representation of Array of strings, strings data should be interleaved with their sizes.
317
      * Parameter begin should be used with Arena::alloc_continue.
318
      */
319
    virtual StringRef serialize_value_into_arena(size_t n, Arena& arena,
320
                                                 char const*& begin) const = 0;
321
322
    /// Deserializes a value that was serialized using IColumn::serialize_value_into_arena method.
323
    /// Returns pointer to the position after the read data.
324
    virtual const char* deserialize_and_insert_from_arena(const char* pos) = 0;
325
326
    // todo: Consider replacing stringref with slice.
327
0
    virtual void serialize(StringRef* keys, size_t num_rows) const {
328
0
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
329
0
                               "Method serialize is not supported for " + get_name());
330
0
    }
331
332
    virtual void serialize_with_nullable(StringRef* keys, size_t num_rows, const bool has_null,
333
                                         const uint8_t* __restrict null_map) const;
334
335
    // This function deserializes group-by keys into column in the vectorized way.
336
0
    virtual void deserialize(StringRef* keys, const size_t num_rows) {
337
0
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
338
0
                               "Method deserialize is not supported for " + get_name());
339
0
    }
340
341
    virtual void deserialize_with_nullable(StringRef* keys, const size_t num_rows,
342
                                           PaddedPODArray<UInt8>& null_map);
343
344
    /// The exact size to serialize the `row`-th row data in this column.
345
0
    virtual size_t serialize_size_at(size_t row) const {
346
0
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
347
0
                               "Column {} should not be serialized.", get_name());
348
0
    }
349
    /// `serialize_impl` is the implementation to serialize a column into a continuous memory.
350
0
    virtual size_t serialize_impl(char* pos, const size_t row) const {
351
0
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
352
0
                               "Method serialize_impl is not supported for " + get_name());
353
0
    }
354
    /// `deserialize_impl` will deserialize data which is serialized by `serialize_impl`.
355
0
    virtual size_t deserialize_impl(const char* pos) {
356
0
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
357
0
                               "Method deserialize_impl is not supported for " + get_name());
358
0
    }
359
360
    /// Return the size of largest row.
361
    /// This is for calculating the memory size for vectorized serialization of aggregation keys.
362
0
    virtual size_t get_max_row_byte_size() const {
363
0
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
364
0
                               "Method get_max_row_byte_size is not supported for " + get_name());
365
0
        return 0;
366
0
    }
367
368
    /// TODO: SipHash is slower than city or xx hash, rethink we should have a new interface
369
    /// Update state of hash function with value of n-th element.
370
    /// On subsequent calls of this method for sequence of column values of arbitrary types,
371
    ///  passed bytes to hash must identify sequence of values unambiguously.
372
3
    virtual void update_hash_with_value(size_t n, SipHash& hash) const {
373
3
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
374
3
                               "Method update_hash_with_value is not supported for " + get_name());
375
3
    }
376
377
    /// Update state of hash function with value of n elements to avoid the virtual function call
378
    /// null_data to mark whether need to do hash compute, null_data == nullptr
379
    /// means all element need to do hash function, else only *null_data != 0 need to do hash func
380
    /// do xxHash here, faster than other sip hash
381
    virtual void update_hashes_with_value(uint64_t* __restrict hashes,
382
0
                                          const uint8_t* __restrict null_data = nullptr) const {
383
0
        throw doris::Exception(
384
0
                ErrorCode::NOT_IMPLEMENTED_ERROR,
385
0
                "Method update_hashes_with_value is not supported for " + get_name());
386
0
    }
387
388
    // use range for one hash value to avoid virtual function call in loop
389
    virtual void update_xxHash_with_value(size_t start, size_t end, uint64_t& hash,
390
0
                                          const uint8_t* __restrict null_data) const {
391
0
        throw doris::Exception(
392
0
                ErrorCode::NOT_IMPLEMENTED_ERROR,
393
0
                "Method update_xxHash_with_value is not supported for " + get_name());
394
0
    }
395
396
    /// Update state of crc32 hash function with value of n elements to avoid the virtual function call
397
    /// null_data to mark whether need to do hash compute, null_data == nullptr
398
    /// means all element need to do hash function, else only *null_data != 0 need to do hash func
399
    virtual void update_crcs_with_value(uint32_t* __restrict hash, PrimitiveType type,
400
                                        uint32_t rows, uint32_t offset = 0,
401
0
                                        const uint8_t* __restrict null_data = nullptr) const {
402
0
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
403
0
                               "Method update_crcs_with_value is not supported for " + get_name());
404
0
    }
405
406
    // use range for one hash value to avoid virtual function call in loop
407
    virtual void update_crc_with_value(size_t start, size_t end, uint32_t& hash,
408
0
                                       const uint8_t* __restrict null_data) const {
409
0
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
410
0
                               "Method update_crc_with_value is not supported for " + get_name());
411
0
    }
412
413
    virtual void update_crc32c_batch(uint32_t* __restrict hashes,
414
0
                                     const uint8_t* __restrict null_map) const {
415
0
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
416
0
                               "Method update_crc32c_batch is not supported for " + get_name());
417
0
    }
418
419
    // use range for one hash value to avoid virtual function call in loop
420
    virtual void update_crc32c_single(size_t start, size_t end, uint32_t& hash,
421
0
                                      const uint8_t* __restrict null_map) const {
422
0
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
423
0
                               "Method update_crc32c_single is not supported for " + get_name());
424
0
    }
425
426
    /** Removes elements that don't match the filter.
427
      * Is used in WHERE and HAVING operations.
428
      * If result_size_hint > 0, then makes advance reserve(result_size_hint) for the result column;
429
      *  if 0, then don't makes reserve(),
430
      *  otherwise (i.e. < 0), makes reserve() using size of source column.
431
      */
432
    using Filter = PaddedPODArray<UInt8>;
433
    virtual Ptr filter(const Filter& filt, ssize_t result_size_hint) const = 0;
434
435
    /// This function will modify the original table.
436
    /// Return rows number after filtered.
437
    virtual size_t filter(const Filter& filter) = 0;
438
439
    /**
440
     *  used by lazy materialization to filter column by selected rowids
441
     *  Q: Why use IColumn* as args type instead of MutablePtr or ImmutablePtr ?
442
     *  A: If use MutablePtr/ImmutablePtr as col_ptr's type, which means there could be many 
443
     *  convert(convert MutablePtr to ImmutablePtr or convert ImmutablePtr to MutablePtr)
444
     *  happends in filter_by_selector because of mem-reuse logic or ColumnNullable, I think this is meaningless;
445
     *  So using raw ptr directly here.
446
     *  NOTICE: only column_nullable and predict_column, column_dictionary now support filter_by_selector
447
     *  // nullable -> predict_column
448
     *  // string (dictionary) -> column_dictionary
449
     */
450
1
    virtual Status filter_by_selector(const uint16_t* sel, size_t sel_size, IColumn* col_ptr) {
451
1
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
452
1
                               "Method filter_by_selector is not supported for {}, only "
453
1
                               "column_nullable, column_dictionary and predict_column support",
454
1
                               get_name());
455
1
    }
456
457
    /// Permutes elements using specified permutation. Is used in sortings.
458
    /// limit - if it isn't 0, puts only first limit elements in the result.
459
    using Permutation = PaddedPODArray<size_t>;
460
    virtual MutablePtr permute(const Permutation& perm, size_t limit) const = 0;
461
462
    /** Compares (*this)[n] and rhs[m]. Column rhs should have the same type.
463
      * Returns negative number, 0, or positive number (*this)[n] is less, equal, greater than rhs[m] respectively.
464
      * Is used in sortings.
465
      *
466
      * If one of element's value is NaN or NULLs, then:
467
      * - if nan_direction_hint == -1, NaN and NULLs are considered as least than everything other;
468
      * - if nan_direction_hint ==  1, NaN and NULLs are considered as greatest than everything other.
469
      * For example, if nan_direction_hint == -1 is used by descending sorting, NaNs will be at the end.
470
      *
471
      * For non Nullable and non floating point types, nan_direction_hint is ignored.
472
      * For array/map/struct types, we compare with nested column element and offsets size
473
      */
474
7
    virtual int compare_at(size_t n, size_t m, const IColumn& rhs, int nan_direction_hint) const {
475
7
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, "compare_at for " + get_name());
476
7
    }
477
478
    /**
479
     * To compare all rows in this column with another row (with row_id = rhs_row_id in column rhs)
480
     * @param nan_direction_hint and direction indicates the ordering.
481
     * @param cmp_res if we already has a comparison result for row i, e.g. cmp_res[i] = 1, we can skip row i
482
     * @param filter this stores comparison results for all rows. filter[i] = 1 means row i is less than row rhs_row_id in rhs
483
     */
484
    virtual void compare_internal(size_t rhs_row_id, const IColumn& rhs, int nan_direction_hint,
485
                                  int direction, std::vector<uint8_t>& cmp_res,
486
                                  uint8_t* __restrict filter) const;
487
488
    /** Returns a permutation that sorts elements of this column,
489
      *  i.e. perm[i]-th element of source column should be i-th element of sorted column.
490
      * reverse - true: descending order, false: ascending order.
491
      * limit - if isn't 0, then only first limit elements of the result column could be sorted.
492
      * nan_direction_hint - see above.
493
      */
494
    virtual void get_permutation(bool reverse, size_t limit, int nan_direction_hint,
495
0
                                 HybridSorter& sorter, Permutation& res) const {
496
0
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
497
0
                               "get_permutation for " + get_name());
498
0
    }
499
500
#ifdef BE_TEST
501
    void get_permutation_default(bool reverse, size_t limit, int nan_direction_hint,
502
1.18k
                                 Permutation& res) const {
503
1.18k
        HybridSorter sorter;
504
1.18k
        get_permutation(reverse, limit, nan_direction_hint, sorter, res);
505
1.18k
    }
506
#endif
507
508
    /** Split column to smaller columns. Each value goes to column index, selected by corresponding element of 'selector'.
509
      * Selector must contain values from 0 to num_columns - 1.
510
      * For default implementation, see column_impl.h
511
      */
512
    using ColumnIndex = UInt32;
513
    using Selector = PaddedPODArray<ColumnIndex>;
514
515
    // The append_data_by_selector function requires the column to implement the insert_from function.
516
    // In fact, this function is just calling insert_from but without the overhead of a virtual function.
517
518
    virtual void append_data_by_selector(MutablePtr& res, const Selector& selector) const = 0;
519
    virtual void insert_duplicate_fields(const Field& x, const size_t n) = 0;
520
521
    // Here, begin and end represent the range of the Selector.
522
    virtual void append_data_by_selector(MutablePtr& res, const Selector& selector, size_t begin,
523
                                         size_t end) const = 0;
524
525
    /// Insert data from several other columns according to source mask (used in vertical merge).
526
    /// For now it is a helper to de-virtualize calls to insert*() functions inside gather loop
527
    /// (descendants should call gatherer_stream.gather(*this) to implement this function.)
528
    /// TODO: interface decoupled from ColumnGathererStream that allows non-generic specializations.
529
    //    virtual void gather(ColumnGathererStream & gatherer_stream) = 0;
530
531
    /// Reserves memory for specified amount of elements. If reservation isn't possible, does nothing.
532
    /// It affects performance only (not correctness).
533
2.36k
    virtual void reserve(size_t /*n*/) {}
534
535
    /// Resize memory for specified amount of elements. If reservation isn't possible, does nothing.
536
    /// It affects performance only (not correctness).
537
    /// Note. resize means not only change column self but also sub-columns if have.
538
0
    virtual void resize(size_t /*n*/) {}
539
540
    /// Size of column data in memory (may be approximate) - for profiling. Zero, if could not be determined.
541
    virtual size_t byte_size() const = 0;
542
543
    /**
544
    * @brief Checks whether the current column has enough capacity to accommodate the given source column.
545
    * 
546
    * This pure virtual function should be implemented by derived classes to determine whether the 
547
    * current column has enough reserved memory to hold the data of the specified `src` column.
548
    * 
549
    * @param src The source column whose data needs to be checked for fitting into the current column.
550
    * @return true if the current column has enough capacity to hold the `src` data, false otherwise.
551
    */
552
    virtual bool has_enough_capacity(const IColumn& src) const = 0;
553
554
    /// Size of memory, allocated for column.
555
    /// This is greater or equals to byte_size due to memory reservation in containers.
556
    /// Zero, if could not be determined.
557
    virtual size_t allocated_bytes() const = 0;
558
559
    /// If the column contains subcolumns (such as Array, Nullable, etc), do callback on them.
560
    /// Shallow: doesn't do recursive calls; don't do call for itself.
561
    using ColumnCallback = std::function<void(WrappedPtr&)>;
562
    using ImutableColumnCallback = std::function<void(const IColumn&)>;
563
764k
    virtual void for_each_subcolumn(ColumnCallback) {}
564
565
    /// Columns have equal structure.
566
    /// If true - you can use "compare_at", "insert_from", etc. methods.
567
1
    virtual bool structure_equals(const IColumn&) const {
568
1
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
569
1
                               "Method structure_equals is not supported for " + get_name());
570
0
        return false;
571
1
    }
572
573
868k
    MutablePtr mutate() const&& {
574
868k
        MutablePtr res = shallow_mutate();
575
868k
        res->for_each_subcolumn(
576
868k
                [](WrappedPtr& subcolumn) { subcolumn = std::move(*subcolumn).mutate(); });
577
868k
        return res;
578
868k
    }
579
580
18
    static MutablePtr mutate(Ptr ptr) {
581
18
        MutablePtr res = ptr->shallow_mutate(); /// Now use_count is 2.
582
18
        ptr.reset();                            /// Reset use_count to 1.
583
18
        res->for_each_subcolumn(
584
34
                [](WrappedPtr& subcolumn) { subcolumn = std::move(*subcolumn).mutate(); });
585
18
        return res;
586
18
    }
587
588
    /** Some columns can contain another columns inside.
589
      * So, we have a tree of columns. But not all combinations are possible.
590
      * There are the following rules:
591
      *
592
      * ColumnConst may be only at top. It cannot be inside any column.
593
      * ColumnNullable can contain only simple columns.
594
      */
595
596
    /// Various properties on behaviour of column type.
597
598
    /// It's true for ColumnNullable only.
599
958k
    virtual bool is_nullable() const { return false; }
600
    /// It's true for ColumnNullable, can be true or false for ColumnConst, etc.
601
0
    virtual bool is_concrete_nullable() const { return false; }
602
603
    // true if column has null element
604
3
    virtual bool has_null() const { return false; }
605
606
    // true if column has null element [begin, end)
607
1.65k
    virtual bool has_null(size_t begin, size_t end) const { return false; }
608
609
1.08k
    virtual bool is_exclusive() const { return use_count() == 1; }
610
611
    /// Clear data of column, just like vector clear
612
    virtual void clear() = 0;
613
614
    /** Memory layout properties.
615
      *
616
      * Each value of a column can be placed in memory contiguously or not.
617
      *
618
      * Example: simple columns like UInt64 or FixedString store their values contiguously in single memory buffer.
619
      *
620
      * Example: Tuple store values of each component in separate subcolumn, so the values of Tuples with at least two components are not contiguous.
621
      * Another example is Nullable. Each value have null flag, that is stored separately, so the value is not contiguous in memory.
622
      *
623
      * There are some important cases, when values are not stored contiguously, but for each value, you can get contiguous memory segment,
624
      *  that will unambiguously identify the value. In this case, methods get_data_at and insert_data are implemented.
625
      * Example: String column: bytes of strings are stored concatenated in one memory buffer
626
      *  and offsets to that buffer are stored in another buffer. The same is for Array of fixed-size contiguous elements.
627
      *
628
      * To avoid confusion between these cases, we don't have isContiguous method.
629
      */
630
    // todo: We should support a non-const version of get_raw_data that returns a Slice.
631
2
    virtual StringRef get_raw_data() const {
632
2
        throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
633
2
                               "Column {} is not a contiguous block of memory", get_name());
634
2
    }
635
636
    // Column is ColumnString/ColumnArray/ColumnMap or other variable length column at every row
637
16
    virtual bool is_variable_length() const { return false; }
638
639
53
    virtual bool is_column_string() const { return false; }
640
641
1.93k
    virtual bool is_column_string64() const { return false; }
642
643
4.47k
    virtual bool is_column_dictionary() const { return false; }
644
645
    /// If the only value column can contain is NULL.
646
14.6k
    virtual bool only_null() const { return false; }
647
648
    /**
649
     * ColumnSorter is used to sort each columns in a Block. In this sorting pattern, sorting a
650
     * column will produce a list of EqualRange which has the same elements respectively. And for
651
     * next column in this block, we only need to sort rows in those `range`.
652
     *
653
     * Besides, we do not materialize sorted data eagerly. Instead, the intermediate sorting results
654
     * are represendted by permutation and data will be materialized after all of columns are sorted.
655
     *
656
     * @sorter: ColumnSorter is used to do sorting.
657
     * @flags : indicates if current item equals to the previous one.
658
     * @perms : permutation after sorting
659
     * @range : EqualRange which has the same elements respectively.
660
     * @last_column : indicates if this column is the last in this block.
661
     */
662
    virtual void sort_column(const ColumnSorter* sorter, EqualFlags& flags,
663
                             IColumn::Permutation& perms, EqualRange& range,
664
                             bool last_column) const;
665
666
2.95M
    virtual ~IColumn() = default;
667
2.94M
    IColumn() = default;
668
546
    IColumn(const IColumn&) = default;
669
670
    /** Print column name, size, and recursively print all subcolumns.
671
      */
672
    String dump_structure() const;
673
674
    // count how many const column including self
675
    int count_const_column() const;
676
677
    bool null_map_check() const;
678
679
    // const column nested check, eg. const(nullable(...)) is allowed
680
    //  const(array(const(...))) is not allowed
681
    bool const_nested_check() const;
682
683
    // column boolean check, only allow 0 and 1
684
    bool column_boolean_check() const;
685
686
    Status column_self_check() const;
687
688
    // only used in agg value replace for column which is not variable length, eg.BlockReader::_copy_value_data
689
    // usage: self_column.replace_column_data(other_column, other_column's row index, self_column's row index)
690
    virtual void replace_column_data(const IColumn&, size_t row, size_t self_row = 0) = 0;
691
692
    // Batch version of replace_column_data for replacing continuous range of data
693
    // Used in sparse column compaction optimization for better performance
694
    // Default implementation calls replace_column_data in a loop
695
    // Subclasses (e.g., ColumnVector, ColumnDecimal) can override with optimized memcpy
696
    virtual void replace_column_data_range(const IColumn& src, size_t src_start, size_t count,
697
0
                                           size_t self_start) {
698
0
        for (size_t i = 0; i < count; ++i) {
699
0
            replace_column_data(src, src_start + i, self_start + i);
700
0
        }
701
0
    }
702
    // Whether this column type supports efficient in-place range replacement.
703
    // Returns true for fixed-width types (ColumnVector, ColumnDecimal) that can use memcpy.
704
    // Returns false for variable-length types (ColumnString, ColumnArray, etc.) that require
705
    // more complex handling. Used by sparse column compaction to choose the right code path.
706
0
    virtual bool support_replace_column_data_range() const { return false; }
707
708
    // replace data to default value if null, used to avoid null data output decimal check failure
709
    // usage: nested_column.replace_column_null_data(nested_null_map.data())
710
    // only wrok on column_vector and column column decimal, there will be no behavior when other columns type call this method
711
192
    virtual void replace_column_null_data(const uint8_t* __restrict null_map) {}
712
    // whether support replace null data, default return false
713
    // column_vector and column_decimal override this method to return true
714
86
    virtual bool support_replace_column_null_data() const { return false; }
715
716
    // For float/double types, replace -0.0 with 0.0, set NaN to quiet NaN,
717
    // used to ensure data hash equality for -0.0 and +0.0, e.g. aggregate and join
718
0
    virtual void replace_float_special_values() {}
719
720
protected:
721
    template <typename Derived>
722
429
    void append_data_by_selector_impl(MutablePtr& res, const Selector& selector) const {
723
429
        append_data_by_selector_impl<Derived>(res, selector, 0, selector.size());
724
429
    }
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_14ColumnNullableEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_11ColumnConstEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_13ColumnNothingEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
_ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_9ColumnStrIjEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Line
Count
Source
722
1
    void append_data_by_selector_impl(MutablePtr& res, const Selector& selector) const {
723
1
        append_data_by_selector_impl<Derived>(res, selector, 0, selector.size());
724
1
    }
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_23ColumnFixedLengthObjectEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE27EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE42EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE36EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE37EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_15ColumnVarbinaryEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE4EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
_ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Line
Count
Source
722
1
    void append_data_by_selector_impl(MutablePtr& res, const Selector& selector) const {
723
1
        append_data_by_selector_impl<Derived>(res, selector, 0, selector.size());
724
1
    }
_ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE6EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Line
Count
Source
722
427
    void append_data_by_selector_impl(MutablePtr& res, const Selector& selector) const {
723
427
        append_data_by_selector_impl<Derived>(res, selector, 0, selector.size());
724
427
    }
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE7EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE9EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE12EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE26EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE11EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE25EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_13ColumnDictI32EEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE15EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE23EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_11ColumnArrayEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE39EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnStructEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_9ColumnMapEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_13ColumnVariantEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_9ColumnStrImEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE5EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE9EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE42EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE8EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE11EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE12EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE38EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE22EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE19EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE24EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE6EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE2EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE3EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE4EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE7EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE25EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE26EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE36EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE37EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE20EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE28EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE29EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE30EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE35EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE21EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
725
    template <typename Derived>
726
0
    void insert_impl(const Field& x, const size_t n) {
727
0
        for (size_t i = 0; i < n; ++i) {
728
0
            static_cast<Derived&>(*this).insert(x);
729
0
        }
730
0
    }
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_14ColumnNullableEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_11ColumnConstEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_13ColumnNothingEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_9ColumnStrIjEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_23ColumnFixedLengthObjectEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE27EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE42EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE36EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE37EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_15ColumnVarbinaryEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE4EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE6EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE7EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE9EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE12EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE26EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE11EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE25EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_13ColumnDictI32EEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE15EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE23EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_11ColumnArrayEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE39EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnStructEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_9ColumnMapEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_13ColumnVariantEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_9ColumnStrImEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE5EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE9EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE42EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE8EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE11EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE12EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE38EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE22EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE19EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE24EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE6EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE2EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE3EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE4EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE7EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE25EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE26EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE36EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE37EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE20EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE28EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE29EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE30EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE35EEEEEvRKNS0_5FieldEm
Unexecuted instantiation: _ZN5doris10vectorized7IColumn11insert_implINS0_12ColumnVectorILNS_13PrimitiveTypeE21EEEEEvRKNS0_5FieldEm
731
    template <typename Derived>
732
    void append_data_by_selector_impl(MutablePtr& res, const Selector& selector, size_t begin,
733
535
                                      size_t end) const {
734
535
        size_t num_rows = size();
735
736
535
        if (num_rows < selector.size()) {
737
0
            throw doris::Exception(ErrorCode::INTERNAL_ERROR,
738
0
                                   "Size of selector: {} is larger than size of column: {}",
739
0
                                   selector.size(), num_rows);
740
0
        }
741
535
        DCHECK_GE(end, begin);
742
535
        DCHECK_LE(end, selector.size());
743
535
        static_cast<Derived&>(*res).insert_indices_from(*this, &selector[begin], &selector[end]);
744
535
    }
_ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Line
Count
Source
733
51
                                      size_t end) const {
734
51
        size_t num_rows = size();
735
736
51
        if (num_rows < selector.size()) {
737
0
            throw doris::Exception(ErrorCode::INTERNAL_ERROR,
738
0
                                   "Size of selector: {} is larger than size of column: {}",
739
0
                                   selector.size(), num_rows);
740
0
        }
741
51
        DCHECK_GE(end, begin);
742
        DCHECK_LE(end, selector.size());
743
51
        static_cast<Derived&>(*res).insert_indices_from(*this, &selector[begin], &selector[end]);
744
51
    }
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_14ColumnNullableEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_11ColumnConstEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_13ColumnNothingEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
_ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_9ColumnStrIjEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Line
Count
Source
733
1
                                      size_t end) const {
734
1
        size_t num_rows = size();
735
736
1
        if (num_rows < selector.size()) {
737
0
            throw doris::Exception(ErrorCode::INTERNAL_ERROR,
738
0
                                   "Size of selector: {} is larger than size of column: {}",
739
0
                                   selector.size(), num_rows);
740
0
        }
741
1
        DCHECK_GE(end, begin);
742
        DCHECK_LE(end, selector.size());
743
1
        static_cast<Derived&>(*res).insert_indices_from(*this, &selector[begin], &selector[end]);
744
1
    }
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_23ColumnFixedLengthObjectEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE27EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE42EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
_ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE36EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Line
Count
Source
733
1
                                      size_t end) const {
734
1
        size_t num_rows = size();
735
736
1
        if (num_rows < selector.size()) {
737
0
            throw doris::Exception(ErrorCode::INTERNAL_ERROR,
738
0
                                   "Size of selector: {} is larger than size of column: {}",
739
0
                                   selector.size(), num_rows);
740
0
        }
741
1
        DCHECK_GE(end, begin);
742
        DCHECK_LE(end, selector.size());
743
1
        static_cast<Derived&>(*res).insert_indices_from(*this, &selector[begin], &selector[end]);
744
1
    }
_ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE37EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Line
Count
Source
733
1
                                      size_t end) const {
734
1
        size_t num_rows = size();
735
736
1
        if (num_rows < selector.size()) {
737
0
            throw doris::Exception(ErrorCode::INTERNAL_ERROR,
738
0
                                   "Size of selector: {} is larger than size of column: {}",
739
0
                                   selector.size(), num_rows);
740
0
        }
741
1
        DCHECK_GE(end, begin);
742
        DCHECK_LE(end, selector.size());
743
1
        static_cast<Derived&>(*res).insert_indices_from(*this, &selector[begin], &selector[end]);
744
1
    }
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_15ColumnVarbinaryEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE4EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
_ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Line
Count
Source
733
1
                                      size_t end) const {
734
1
        size_t num_rows = size();
735
736
1
        if (num_rows < selector.size()) {
737
0
            throw doris::Exception(ErrorCode::INTERNAL_ERROR,
738
0
                                   "Size of selector: {} is larger than size of column: {}",
739
0
                                   selector.size(), num_rows);
740
0
        }
741
1
        DCHECK_GE(end, begin);
742
        DCHECK_LE(end, selector.size());
743
1
        static_cast<Derived&>(*res).insert_indices_from(*this, &selector[begin], &selector[end]);
744
1
    }
_ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE6EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Line
Count
Source
733
437
                                      size_t end) const {
734
437
        size_t num_rows = size();
735
736
437
        if (num_rows < selector.size()) {
737
0
            throw doris::Exception(ErrorCode::INTERNAL_ERROR,
738
0
                                   "Size of selector: {} is larger than size of column: {}",
739
0
                                   selector.size(), num_rows);
740
0
        }
741
437
        DCHECK_GE(end, begin);
742
        DCHECK_LE(end, selector.size());
743
437
        static_cast<Derived&>(*res).insert_indices_from(*this, &selector[begin], &selector[end]);
744
437
    }
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE7EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE9EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE12EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE26EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE11EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE25EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_13ColumnDictI32EEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE15EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE23EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
_ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_11ColumnArrayEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Line
Count
Source
733
43
                                      size_t end) const {
734
43
        size_t num_rows = size();
735
736
43
        if (num_rows < selector.size()) {
737
0
            throw doris::Exception(ErrorCode::INTERNAL_ERROR,
738
0
                                   "Size of selector: {} is larger than size of column: {}",
739
0
                                   selector.size(), num_rows);
740
0
        }
741
43
        DCHECK_GE(end, begin);
742
        DCHECK_LE(end, selector.size());
743
43
        static_cast<Derived&>(*res).insert_indices_from(*this, &selector[begin], &selector[end]);
744
43
    }
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE39EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnStructEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_9ColumnMapEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_13ColumnVariantEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_9ColumnStrImEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE5EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE9EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE42EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE8EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE11EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE12EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE38EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE22EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE19EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE24EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE6EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE2EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE3EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE4EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE7EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE25EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE26EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE36EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE37EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE20EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE28EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE29EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE30EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE35EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
Unexecuted instantiation: _ZNK5doris10vectorized7IColumn28append_data_by_selector_implINS0_12ColumnVectorILNS_13PrimitiveTypeE21EEEEEvRNS_3COWIS1_E11mutable_ptrIS1_EERKNS0_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmm
745
    template <typename Derived>
746
    void insert_from_multi_column_impl(const std::vector<const IColumn*>& srcs,
747
79
                                       const std::vector<size_t>& positions) {
748
79
        reserve(size() + srcs.size());
749
498
        for (size_t i = 0; i < srcs.size(); ++i) {
750
419
            static_cast<Derived&>(*this).insert_from(*srcs[i], positions[i]);
751
419
        }
752
79
    }
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
_ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_14ColumnNullableEEEvRKSt6vectorIPKS1_SaIS6_EERKS4_ImSaImEE
Line
Count
Source
747
65
                                       const std::vector<size_t>& positions) {
748
65
        reserve(size() + srcs.size());
749
268
        for (size_t i = 0; i < srcs.size(); ++i) {
750
203
            static_cast<Derived&>(*this).insert_from(*srcs[i], positions[i]);
751
203
        }
752
65
    }
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_11ColumnConstEEEvRKSt6vectorIPKS1_SaIS6_EERKS4_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_13ColumnNothingEEEvRKSt6vectorIPKS1_SaIS6_EERKS4_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_9ColumnStrIjEEEEvRKSt6vectorIPKS1_SaIS7_EERKS5_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_23ColumnFixedLengthObjectEEEvRKSt6vectorIPKS1_SaIS6_EERKS4_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE27EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE42EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE36EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE37EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_15ColumnVarbinaryEEEvRKSt6vectorIPKS1_SaIS6_EERKS4_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE4EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
_ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Line
Count
Source
747
7
                                       const std::vector<size_t>& positions) {
748
7
        reserve(size() + srcs.size());
749
115
        for (size_t i = 0; i < srcs.size(); ++i) {
750
108
            static_cast<Derived&>(*this).insert_from(*srcs[i], positions[i]);
751
108
        }
752
7
    }
_ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE6EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Line
Count
Source
747
7
                                       const std::vector<size_t>& positions) {
748
7
        reserve(size() + srcs.size());
749
115
        for (size_t i = 0; i < srcs.size(); ++i) {
750
108
            static_cast<Derived&>(*this).insert_from(*srcs[i], positions[i]);
751
108
        }
752
7
    }
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE7EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE9EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE12EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE26EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE11EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE25EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_13ColumnDictI32EEEvRKSt6vectorIPKS1_SaIS6_EERKS4_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE15EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE23EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_11ColumnArrayEEEvRKSt6vectorIPKS1_SaIS6_EERKS4_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE39EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnStructEEEvRKSt6vectorIPKS1_SaIS6_EERKS4_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_9ColumnMapEEEvRKSt6vectorIPKS1_SaIS6_EERKS4_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_13ColumnVariantEEEvRKSt6vectorIPKS1_SaIS6_EERKS4_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_9ColumnStrImEEEEvRKSt6vectorIPKS1_SaIS7_EERKS5_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE5EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE9EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE42EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE8EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE11EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE12EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE38EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE22EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE19EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE24EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE6EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE2EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE3EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE4EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE7EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE25EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE26EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE36EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE37EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE20EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE28EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE29EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE30EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE35EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
Unexecuted instantiation: _ZN5doris10vectorized7IColumn29insert_from_multi_column_implINS0_12ColumnVectorILNS_13PrimitiveTypeE21EEEEEvRKSt6vectorIPKS1_SaIS8_EERKS6_ImSaImEE
753
};
754
755
using ColumnPtr = IColumn::Ptr;
756
using MutableColumnPtr = IColumn::MutablePtr;
757
using Columns = std::vector<ColumnPtr>;
758
using MutableColumns = std::vector<MutableColumnPtr>;
759
using ColumnPtrs = std::vector<ColumnPtr>;
760
using ColumnRawPtrs = std::vector<const IColumn*>;
761
762
template <typename... Args>
763
struct IsMutableColumns;
764
765
template <typename Arg, typename... Args>
766
struct IsMutableColumns<Arg, Args...> {
767
    static const bool value =
768
            std::is_assignable<MutableColumnPtr&&, Arg>::value && IsMutableColumns<Args...>::value;
769
};
770
771
template <>
772
struct IsMutableColumns<> {
773
    static const bool value = true;
774
};
775
776
// prefer assert_cast than check_and_get
777
template <typename Type>
778
780k
const Type* check_and_get_column(const IColumn& column) {
779
780k
    return typeid_cast<const Type*>(&column);
780
780k
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE11EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
8.18k
const Type* check_and_get_column(const IColumn& column) {
779
8.18k
    return typeid_cast<const Type*>(&column);
780
8.18k
}
_ZN5doris10vectorized20check_and_get_columnINS0_11ColumnArrayEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
95
const Type* check_and_get_column(const IColumn& column) {
779
95
    return typeid_cast<const Type*>(&column);
780
95
}
_ZN5doris10vectorized20check_and_get_columnINS0_13ColumnVariantEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
8.98k
const Type* check_and_get_column(const IColumn& column) {
779
8.98k
    return typeid_cast<const Type*>(&column);
780
8.98k
}
_ZN5doris10vectorized20check_and_get_columnINS0_13ColumnNothingEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
32
const Type* check_and_get_column(const IColumn& column) {
779
32
    return typeid_cast<const Type*>(&column);
780
32
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE27EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
7.84k
const Type* check_and_get_column(const IColumn& column) {
779
7.84k
    return typeid_cast<const Type*>(&column);
780
7.84k
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE42EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
3
const Type* check_and_get_column(const IColumn& column) {
779
3
    return typeid_cast<const Type*>(&column);
780
3
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE12EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
8.38k
const Type* check_and_get_column(const IColumn& column) {
779
8.38k
    return typeid_cast<const Type*>(&column);
780
8.38k
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE26EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
8.37k
const Type* check_and_get_column(const IColumn& column) {
779
8.37k
    return typeid_cast<const Type*>(&column);
780
8.37k
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE25EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
8.19k
const Type* check_and_get_column(const IColumn& column) {
779
8.19k
    return typeid_cast<const Type*>(&column);
780
8.19k
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE36EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
7.87k
const Type* check_and_get_column(const IColumn& column) {
779
7.87k
    return typeid_cast<const Type*>(&column);
780
7.87k
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE37EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
7.87k
const Type* check_and_get_column(const IColumn& column) {
779
7.87k
    return typeid_cast<const Type*>(&column);
780
7.87k
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
8.04k
const Type* check_and_get_column(const IColumn& column) {
779
8.04k
    return typeid_cast<const Type*>(&column);
780
8.04k
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
41.4k
const Type* check_and_get_column(const IColumn& column) {
779
41.4k
    return typeid_cast<const Type*>(&column);
780
41.4k
}
_ZN5doris10vectorized20check_and_get_columnINS0_14ColumnNullableEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
489k
const Type* check_and_get_column(const IColumn& column) {
779
489k
    return typeid_cast<const Type*>(&column);
780
489k
}
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE5EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE5EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE9EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE9EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE42EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE42EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE8EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE8EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE11EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE11EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE12EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE12EEEEEPKT_RKNS0_7IColumnE
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
34.4k
const Type* check_and_get_column(const IColumn& column) {
779
34.4k
    return typeid_cast<const Type*>(&column);
780
34.4k
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE4EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
8.16k
const Type* check_and_get_column(const IColumn& column) {
779
8.16k
    return typeid_cast<const Type*>(&column);
780
8.16k
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE6EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
8.77k
const Type* check_and_get_column(const IColumn& column) {
779
8.77k
    return typeid_cast<const Type*>(&column);
780
8.77k
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE7EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
8.06k
const Type* check_and_get_column(const IColumn& column) {
779
8.06k
    return typeid_cast<const Type*>(&column);
780
8.06k
}
_ZN5doris10vectorized20check_and_get_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
99
const Type* check_and_get_column(const IColumn& column) {
779
99
    return typeid_cast<const Type*>(&column);
780
99
}
_ZN5doris10vectorized20check_and_get_columnINS0_23ColumnFixedLengthObjectEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
2
const Type* check_and_get_column(const IColumn& column) {
779
2
    return typeid_cast<const Type*>(&column);
780
2
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE9EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
8.08k
const Type* check_and_get_column(const IColumn& column) {
779
8.08k
    return typeid_cast<const Type*>(&column);
780
8.08k
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
10.3k
const Type* check_and_get_column(const IColumn& column) {
779
10.3k
    return typeid_cast<const Type*>(&column);
780
10.3k
}
_ZN5doris10vectorized20check_and_get_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
7.86k
const Type* check_and_get_column(const IColumn& column) {
779
7.86k
    return typeid_cast<const Type*>(&column);
780
7.86k
}
_ZN5doris10vectorized20check_and_get_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
102
const Type* check_and_get_column(const IColumn& column) {
779
102
    return typeid_cast<const Type*>(&column);
780
102
}
_ZN5doris10vectorized20check_and_get_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
31.4k
const Type* check_and_get_column(const IColumn& column) {
779
31.4k
    return typeid_cast<const Type*>(&column);
780
31.4k
}
_ZN5doris10vectorized20check_and_get_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
85
const Type* check_and_get_column(const IColumn& column) {
779
85
    return typeid_cast<const Type*>(&column);
780
85
}
_ZN5doris10vectorized20check_and_get_columnIKNS0_14ColumnNullableEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
1.09k
const Type* check_and_get_column(const IColumn& column) {
779
1.09k
    return typeid_cast<const Type*>(&column);
780
1.09k
}
_ZN5doris10vectorized20check_and_get_columnINS0_11ColumnConstEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
22.3k
const Type* check_and_get_column(const IColumn& column) {
779
22.3k
    return typeid_cast<const Type*>(&column);
780
22.3k
}
_ZN5doris10vectorized20check_and_get_columnINS0_9ColumnStrIjEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
33.8k
const Type* check_and_get_column(const IColumn& column) {
779
33.8k
    return typeid_cast<const Type*>(&column);
780
33.8k
}
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_11ColumnConstEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE6EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE6EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE2EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE2EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE3EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE3EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE4EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE4EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE7EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE7EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE20EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE20EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE28EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE28EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE29EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE29EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE30EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE30EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE35EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE35EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_13ColumnDictI32EEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE15EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE15EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE23EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE23EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE25EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE25EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE26EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE26EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE36EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE36EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_19PredicateColumnTypeILNS_13PrimitiveTypeE37EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE37EEEEEPKT_RKNS0_7IColumnE
_ZN5doris10vectorized20check_and_get_columnINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE22EEEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
2
const Type* check_and_get_column(const IColumn& column) {
779
2
    return typeid_cast<const Type*>(&column);
780
2
}
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE19EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_9ColumnMapEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE21EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE24EEEEEPKT_RKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_12ColumnStructEEEPKT_RKNS0_7IColumnE
_ZN5doris10vectorized20check_and_get_columnINS0_15ColumnVarbinaryEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
3
const Type* check_and_get_column(const IColumn& column) {
779
3
    return typeid_cast<const Type*>(&column);
780
3
}
_ZN5doris10vectorized20check_and_get_columnIKNS0_13ColumnVariantEEEPKT_RKNS0_7IColumnE
Line
Count
Source
778
624
const Type* check_and_get_column(const IColumn& column) {
779
624
    return typeid_cast<const Type*>(&column);
780
624
}
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnIKNS0_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEPKT_RKNS0_7IColumnE
781
782
template <typename Type>
783
53
Type* check_and_get_column(IColumn& column) {
784
53
    return typeid_cast<Type*>(&column);
785
53
}
_ZN5doris10vectorized20check_and_get_columnINS0_13ColumnNothingEEEPT_RNS0_7IColumnE
Line
Count
Source
783
24
Type* check_and_get_column(IColumn& column) {
784
24
    return typeid_cast<Type*>(&column);
785
24
}
_ZN5doris10vectorized20check_and_get_columnINS0_11ColumnArrayEEEPT_RNS0_7IColumnE
Line
Count
Source
783
12
Type* check_and_get_column(IColumn& column) {
784
12
    return typeid_cast<Type*>(&column);
785
12
}
_ZN5doris10vectorized20check_and_get_columnINS0_9ColumnMapEEEPT_RNS0_7IColumnE
Line
Count
Source
783
8
Type* check_and_get_column(IColumn& column) {
784
8
    return typeid_cast<Type*>(&column);
785
8
}
_ZN5doris10vectorized20check_and_get_columnINS0_14ColumnNullableEEEPT_RNS0_7IColumnE
Line
Count
Source
783
9
Type* check_and_get_column(IColumn& column) {
784
9
    return typeid_cast<Type*>(&column);
785
9
}
786
787
template <typename Type>
788
73.1M
const Type* check_and_get_column(const IColumn* column) {
789
73.1M
    return typeid_cast<const Type*>(column);
790
73.1M
}
_ZN5doris10vectorized20check_and_get_columnINS0_14ColumnNullableEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
225k
const Type* check_and_get_column(const IColumn* column) {
789
225k
    return typeid_cast<const Type*>(column);
790
225k
}
_ZN5doris10vectorized20check_and_get_columnINS0_11ColumnConstEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
72.5M
const Type* check_and_get_column(const IColumn* column) {
789
72.5M
    return typeid_cast<const Type*>(column);
790
72.5M
}
_ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE5EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
4.07k
const Type* check_and_get_column(const IColumn* column) {
789
4.07k
    return typeid_cast<const Type*>(column);
790
4.07k
}
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE9EEEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE42EEEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE8EEEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE11EEEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE12EEEEEPKT_PKNS0_7IColumnE
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
196
const Type* check_and_get_column(const IColumn* column) {
789
196
    return typeid_cast<const Type*>(column);
790
196
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE6EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
328
const Type* check_and_get_column(const IColumn* column) {
789
328
    return typeid_cast<const Type*>(column);
790
328
}
_ZN5doris10vectorized20check_and_get_columnINS0_9ColumnStrIjEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
38.1k
const Type* check_and_get_column(const IColumn* column) {
789
38.1k
    return typeid_cast<const Type*>(column);
790
38.1k
}
_ZN5doris10vectorized20check_and_get_columnINS0_11ColumnArrayEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
15.4k
const Type* check_and_get_column(const IColumn* column) {
789
15.4k
    return typeid_cast<const Type*>(column);
790
15.4k
}
_ZN5doris10vectorized20check_and_get_columnINS0_9ColumnStrImEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
43
const Type* check_and_get_column(const IColumn* column) {
789
43
    return typeid_cast<const Type*>(column);
790
43
}
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE37EEEEEPKT_PKNS0_7IColumnE
_ZN5doris10vectorized20check_and_get_columnINS0_15ColumnVarbinaryEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
129
const Type* check_and_get_column(const IColumn* column) {
789
129
    return typeid_cast<const Type*>(column);
790
129
}
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE6EEEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE2EEEEEPKT_PKNS0_7IColumnE
_ZN5doris10vectorized20check_and_get_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
733
const Type* check_and_get_column(const IColumn* column) {
789
733
    return typeid_cast<const Type*>(column);
790
733
}
_ZN5doris10vectorized20check_and_get_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
1.22k
const Type* check_and_get_column(const IColumn* column) {
789
1.22k
    return typeid_cast<const Type*>(column);
790
1.22k
}
_ZN5doris10vectorized20check_and_get_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
678
const Type* check_and_get_column(const IColumn* column) {
789
678
    return typeid_cast<const Type*>(column);
790
678
}
_ZN5doris10vectorized20check_and_get_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
1.34k
const Type* check_and_get_column(const IColumn* column) {
789
1.34k
    return typeid_cast<const Type*>(column);
790
1.34k
}
_ZN5doris10vectorized20check_and_get_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
1.48k
const Type* check_and_get_column(const IColumn* column) {
789
1.48k
    return typeid_cast<const Type*>(column);
790
1.48k
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
145
const Type* check_and_get_column(const IColumn* column) {
789
145
    return typeid_cast<const Type*>(column);
790
145
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE4EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
155
const Type* check_and_get_column(const IColumn* column) {
789
155
    return typeid_cast<const Type*>(column);
790
155
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE7EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
237
const Type* check_and_get_column(const IColumn* column) {
789
237
    return typeid_cast<const Type*>(column);
790
237
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
493
const Type* check_and_get_column(const IColumn* column) {
789
493
    return typeid_cast<const Type*>(column);
790
493
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE9EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
541
const Type* check_and_get_column(const IColumn* column) {
789
541
    return typeid_cast<const Type*>(column);
790
541
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
287
const Type* check_and_get_column(const IColumn* column) {
789
287
    return typeid_cast<const Type*>(column);
790
287
}
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_13ColumnVariantEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE3EEEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE4EEEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE7EEEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE20EEEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE28EEEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE29EEEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE30EEEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE35EEEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_13ColumnDictI32EEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE15EEEEEPKT_PKNS0_7IColumnE
_ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE23EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
128
const Type* check_and_get_column(const IColumn* column) {
789
128
    return typeid_cast<const Type*>(column);
790
128
}
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE25EEEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE26EEEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE36EEEEEPKT_PKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_19PredicateColumnTypeILNS_13PrimitiveTypeE37EEEEEPKT_PKNS0_7IColumnE
_ZN5doris10vectorized20check_and_get_columnIKNS0_13ColumnNothingEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
27.5k
const Type* check_and_get_column(const IColumn* column) {
789
27.5k
    return typeid_cast<const Type*>(column);
790
27.5k
}
_ZN5doris10vectorized20check_and_get_columnINS0_13ColumnNothingEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
250k
const Type* check_and_get_column(const IColumn* column) {
789
250k
    return typeid_cast<const Type*>(column);
790
250k
}
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE11EEEEEPKT_PKNS0_7IColumnE
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE25EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
21
const Type* check_and_get_column(const IColumn* column) {
789
21
    return typeid_cast<const Type*>(column);
790
21
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE26EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
81
const Type* check_and_get_column(const IColumn* column) {
789
81
    return typeid_cast<const Type*>(column);
790
81
}
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE12EEEEEPKT_PKNS0_7IColumnE
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE27EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
932
const Type* check_and_get_column(const IColumn* column) {
789
932
    return typeid_cast<const Type*>(column);
790
932
}
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE42EEEEEPKT_PKNS0_7IColumnE
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE36EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
1
const Type* check_and_get_column(const IColumn* column) {
789
1
    return typeid_cast<const Type*>(column);
790
1
}
_ZN5doris10vectorized20check_and_get_columnINS0_9ColumnMapEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
6
const Type* check_and_get_column(const IColumn* column) {
789
6
    return typeid_cast<const Type*>(column);
790
6
}
_ZN5doris10vectorized20check_and_get_columnIKNS0_11ColumnArrayEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
74
const Type* check_and_get_column(const IColumn* column) {
789
74
    return typeid_cast<const Type*>(column);
790
74
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnStructEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
1
const Type* check_and_get_column(const IColumn* column) {
789
1
    return typeid_cast<const Type*>(column);
790
1
}
_ZN5doris10vectorized20check_and_get_columnIKNS0_14ColumnNullableEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
12
const Type* check_and_get_column(const IColumn* column) {
789
12
    return typeid_cast<const Type*>(column);
790
12
}
_ZN5doris10vectorized20check_and_get_columnINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE22EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
8
const Type* check_and_get_column(const IColumn* column) {
789
8
    return typeid_cast<const Type*>(column);
790
8
}
_ZN5doris10vectorized20check_and_get_columnINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE19EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
2
const Type* check_and_get_column(const IColumn* column) {
789
2
    return typeid_cast<const Type*>(column);
790
2
}
_ZN5doris10vectorized20check_and_get_columnINS0_17ColumnComplexTypeILNS_13PrimitiveTypeE24EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
1
const Type* check_and_get_column(const IColumn* column) {
789
1
    return typeid_cast<const Type*>(column);
790
1
}
_ZN5doris10vectorized20check_and_get_columnIKNS0_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEPKT_PKNS0_7IColumnE
Line
Count
Source
788
2
const Type* check_and_get_column(const IColumn* column) {
789
2
    return typeid_cast<const Type*>(column);
790
2
}
791
792
template <typename Type>
793
60.5k
Type* check_and_get_column(IColumn* column) {
794
60.5k
    return typeid_cast<Type*>(column);
795
60.5k
}
_ZN5doris10vectorized20check_and_get_columnINS0_14ColumnNullableEEEPT_PNS0_7IColumnE
Line
Count
Source
793
10.1k
Type* check_and_get_column(IColumn* column) {
794
10.1k
    return typeid_cast<Type*>(column);
795
10.1k
}
_ZN5doris10vectorized20check_and_get_columnINS0_11ColumnArrayEEEPT_PNS0_7IColumnE
Line
Count
Source
793
43
Type* check_and_get_column(IColumn* column) {
794
43
    return typeid_cast<Type*>(column);
795
43
}
_ZN5doris10vectorized20check_and_get_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEPT_PNS0_7IColumnE
Line
Count
Source
793
22.8k
Type* check_and_get_column(IColumn* column) {
794
22.8k
    return typeid_cast<Type*>(column);
795
22.8k
}
_ZN5doris10vectorized20check_and_get_columnIKNS0_13ColumnNothingEEEPT_PNS0_7IColumnE
Line
Count
Source
793
27.5k
Type* check_and_get_column(IColumn* column) {
794
27.5k
    return typeid_cast<Type*>(column);
795
27.5k
}
Unexecuted instantiation: _ZN5doris10vectorized20check_and_get_columnINS0_13ColumnNothingEEEPT_PNS0_7IColumnE
_ZN5doris10vectorized20check_and_get_columnINS0_9ColumnMapEEEPT_PNS0_7IColumnE
Line
Count
Source
793
2
Type* check_and_get_column(IColumn* column) {
794
2
    return typeid_cast<Type*>(column);
795
2
}
796
797
template <typename Type>
798
72.3M
bool is_column(const IColumn& column) {
799
72.3M
    return check_and_get_column<Type>(&column);
800
72.3M
}
_ZN5doris10vectorized9is_columnINS0_9ColumnStrIjEEEEbRKNS0_7IColumnE
Line
Count
Source
798
129
bool is_column(const IColumn& column) {
799
129
    return check_and_get_column<Type>(&column);
800
129
}
_ZN5doris10vectorized9is_columnINS0_11ColumnConstEEEbRKNS0_7IColumnE
Line
Count
Source
798
72.2M
bool is_column(const IColumn& column) {
799
72.2M
    return check_and_get_column<Type>(&column);
800
72.2M
}
_ZN5doris10vectorized9is_columnINS0_9ColumnStrImEEEEbRKNS0_7IColumnE
Line
Count
Source
798
43
bool is_column(const IColumn& column) {
799
43
    return check_and_get_column<Type>(&column);
800
43
}
_ZN5doris10vectorized9is_columnINS0_14ColumnNullableEEEbRKNS0_7IColumnE
Line
Count
Source
798
71.4k
bool is_column(const IColumn& column) {
799
71.4k
    return check_and_get_column<Type>(&column);
800
71.4k
}
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE25EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE26EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE27EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE36EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE37EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE4EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE6EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE7EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE9EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE11EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE12EEEEEbRKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE42EEEEEbRKNS0_7IColumnE
801
802
template <typename Type>
803
13.6k
bool is_column(const IColumn* column) {
804
13.6k
    return check_and_get_column<Type>(column);
805
13.6k
}
_ZN5doris10vectorized9is_columnINS0_11ColumnArrayEEEbPKNS0_7IColumnE
Line
Count
Source
803
13.6k
bool is_column(const IColumn* column) {
804
13.6k
    return check_and_get_column<Type>(column);
805
13.6k
}
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEEbPKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEEbPKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEEbPKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEEbPKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEEbPKNS0_7IColumnE
_ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE5EEEEEbPKNS0_7IColumnE
Line
Count
Source
803
4
bool is_column(const IColumn* column) {
804
4
    return check_and_get_column<Type>(column);
805
4
}
_ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE3EEEEEbPKNS0_7IColumnE
Line
Count
Source
803
4
bool is_column(const IColumn* column) {
804
4
    return check_and_get_column<Type>(column);
805
4
}
_ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE4EEEEEbPKNS0_7IColumnE
Line
Count
Source
803
4
bool is_column(const IColumn* column) {
804
4
    return check_and_get_column<Type>(column);
805
4
}
_ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE6EEEEEbPKNS0_7IColumnE
Line
Count
Source
803
4
bool is_column(const IColumn* column) {
804
4
    return check_and_get_column<Type>(column);
805
4
}
_ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE7EEEEEbPKNS0_7IColumnE
Line
Count
Source
803
4
bool is_column(const IColumn* column) {
804
4
    return check_and_get_column<Type>(column);
805
4
}
_ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE8EEEEEbPKNS0_7IColumnE
Line
Count
Source
803
4
bool is_column(const IColumn* column) {
804
4
    return check_and_get_column<Type>(column);
805
4
}
_ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE9EEEEEbPKNS0_7IColumnE
Line
Count
Source
803
4
bool is_column(const IColumn* column) {
804
4
    return check_and_get_column<Type>(column);
805
4
}
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE2EEEEEbPKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE11EEEEEbPKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE25EEEEEbPKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE26EEEEEbPKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE12EEEEEbPKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE27EEEEEbPKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE42EEEEEbPKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE36EEEEEbPKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE37EEEEEbPKNS0_7IColumnE
_ZN5doris10vectorized9is_columnINS0_9ColumnMapEEEbPKNS0_7IColumnE
Line
Count
Source
803
6
bool is_column(const IColumn* column) {
804
6
    return check_and_get_column<Type>(column);
805
6
}
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_9ColumnStrIjEEEEbPKNS0_7IColumnE
Unexecuted instantiation: _ZN5doris10vectorized9is_columnINS0_12ColumnStructEEEbPKNS0_7IColumnE
806
807
// check_and_get_column_ptr is used to return a ColumnPtr of a specific column type,
808
// which will hold ownership. This prevents the occurrence of dangling pointers due to certain situations.
809
template <typename ColumnType>
810
70.1k
ColumnType::Ptr check_and_get_column_ptr(const ColumnPtr& column) {
811
70.1k
    const ColumnType* raw_type_ptr = check_and_get_column<ColumnType>(column.get());
812
70.1k
    if (raw_type_ptr == nullptr) {
813
58.9k
        return nullptr;
814
58.9k
    }
815
11.2k
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
816
70.1k
}
_ZN5doris10vectorized24check_and_get_column_ptrINS0_12ColumnVectorILNS_13PrimitiveTypeE5EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Line
Count
Source
810
2
ColumnType::Ptr check_and_get_column_ptr(const ColumnPtr& column) {
811
2
    const ColumnType* raw_type_ptr = check_and_get_column<ColumnType>(column.get());
812
2
    if (raw_type_ptr == nullptr) {
813
0
        return nullptr;
814
0
    }
815
2
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
816
2
}
_ZN5doris10vectorized24check_and_get_column_ptrINS0_12ColumnVectorILNS_13PrimitiveTypeE6EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Line
Count
Source
810
1
ColumnType::Ptr check_and_get_column_ptr(const ColumnPtr& column) {
811
1
    const ColumnType* raw_type_ptr = check_and_get_column<ColumnType>(column.get());
812
1
    if (raw_type_ptr == nullptr) {
813
1
        return nullptr;
814
1
    }
815
0
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
816
1
}
_ZN5doris10vectorized24check_and_get_column_ptrINS0_14ColumnNullableEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS6_EE
Line
Count
Source
810
70.1k
ColumnType::Ptr check_and_get_column_ptr(const ColumnPtr& column) {
811
70.1k
    const ColumnType* raw_type_ptr = check_and_get_column<ColumnType>(column.get());
812
70.1k
    if (raw_type_ptr == nullptr) {
813
58.9k
        return nullptr;
814
58.9k
    }
815
11.2k
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
816
70.1k
}
817
818
template <typename ColumnType>
819
76.2k
ColumnType::Ptr cast_to_column(const ColumnPtr& column) {
820
76.2k
    const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get());
821
76.2k
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
822
76.2k
}
_ZN5doris10vectorized14cast_to_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE5EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Line
Count
Source
819
66
ColumnType::Ptr cast_to_column(const ColumnPtr& column) {
820
66
    const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get());
821
66
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
822
66
}
_ZN5doris10vectorized14cast_to_columnINS0_9ColumnStrImEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS7_EE
Line
Count
Source
819
27
ColumnType::Ptr cast_to_column(const ColumnPtr& column) {
820
27
    const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get());
821
27
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
822
27
}
_ZN5doris10vectorized14cast_to_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE2EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Line
Count
Source
819
52
ColumnType::Ptr cast_to_column(const ColumnPtr& column) {
820
52
    const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get());
821
52
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
822
52
}
_ZN5doris10vectorized14cast_to_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE3EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Line
Count
Source
819
52
ColumnType::Ptr cast_to_column(const ColumnPtr& column) {
820
52
    const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get());
821
52
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
822
52
}
_ZN5doris10vectorized14cast_to_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE4EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Line
Count
Source
819
52
ColumnType::Ptr cast_to_column(const ColumnPtr& column) {
820
52
    const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get());
821
52
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
822
52
}
_ZN5doris10vectorized14cast_to_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE6EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Line
Count
Source
819
58
ColumnType::Ptr cast_to_column(const ColumnPtr& column) {
820
58
    const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get());
821
58
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
822
58
}
_ZN5doris10vectorized14cast_to_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE7EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Line
Count
Source
819
52
ColumnType::Ptr cast_to_column(const ColumnPtr& column) {
820
52
    const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get());
821
52
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
822
52
}
_ZN5doris10vectorized14cast_to_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE8EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Line
Count
Source
819
53
ColumnType::Ptr cast_to_column(const ColumnPtr& column) {
820
53
    const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get());
821
53
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
822
53
}
_ZN5doris10vectorized14cast_to_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE9EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Line
Count
Source
819
52
ColumnType::Ptr cast_to_column(const ColumnPtr& column) {
820
52
    const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get());
821
52
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
822
52
}
_ZN5doris10vectorized14cast_to_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE36EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Line
Count
Source
819
52
ColumnType::Ptr cast_to_column(const ColumnPtr& column) {
820
52
    const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get());
821
52
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
822
52
}
_ZN5doris10vectorized14cast_to_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE37EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Line
Count
Source
819
52
ColumnType::Ptr cast_to_column(const ColumnPtr& column) {
820
52
    const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get());
821
52
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
822
52
}
_ZN5doris10vectorized14cast_to_columnINS0_9ColumnStrIjEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS7_EE
Line
Count
Source
819
29
ColumnType::Ptr cast_to_column(const ColumnPtr& column) {
820
29
    const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get());
821
29
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
822
29
}
_ZN5doris10vectorized14cast_to_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE25EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Line
Count
Source
819
52
ColumnType::Ptr cast_to_column(const ColumnPtr& column) {
820
52
    const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get());
821
52
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
822
52
}
_ZN5doris10vectorized14cast_to_columnINS0_12ColumnVectorILNS_13PrimitiveTypeE26EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Line
Count
Source
819
52
ColumnType::Ptr cast_to_column(const ColumnPtr& column) {
820
52
    const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get());
821
52
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
822
52
}
Unexecuted instantiation: _ZN5doris10vectorized14cast_to_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Unexecuted instantiation: _ZN5doris10vectorized14cast_to_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Unexecuted instantiation: _ZN5doris10vectorized14cast_to_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
Unexecuted instantiation: _ZN5doris10vectorized14cast_to_columnINS0_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS8_EE
_ZN5doris10vectorized14cast_to_columnINS0_14ColumnNullableEEENT_3PtrERKNS_3COWINS0_7IColumnEE13immutable_ptrIS6_EE
Line
Count
Source
819
75.5k
ColumnType::Ptr cast_to_column(const ColumnPtr& column) {
820
75.5k
    const ColumnType* raw_type_ptr = assert_cast<const ColumnType*>(column.get());
821
75.5k
    return ColumnType::cast_to_column_ptr(raw_type_ptr);
822
75.5k
}
823
template <typename ColumnType>
824
1
ColumnType::MutablePtr cast_to_column(MutableColumnPtr column) {
825
1
    ColumnType* raw_type_ptr = assert_cast<ColumnType*>(column.get());
826
1
    return ColumnType::cast_to_column_mutptr(raw_type_ptr);
827
1
}
828
829
/// True if column's an ColumnConst instance. It's just a syntax sugar for type check.
830
bool is_column_const(const IColumn& column);
831
832
/// True if column's an ColumnNullable instance. It's just a syntax sugar for type check.
833
bool is_column_nullable(const IColumn& column);
834
} // namespace doris::vectorized
835
836
// Wrap `ColumnPtr` because `ColumnPtr` can't be used in forward declaration.
837
namespace doris {
838
struct ColumnPtrWrapper {
839
    vectorized::ColumnPtr column_ptr;
840
841
57.4k
    ColumnPtrWrapper(vectorized::ColumnPtr col) : column_ptr(std::move(col)) {}
842
};
843
} // namespace doris