Coverage Report

Created: 2026-04-01 14:45

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/aggregate/aggregate_function_window.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/Processors/Transforms/WindowTransform.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include <glog/logging.h>
24
25
#include <algorithm>
26
#include <boost/iterator/iterator_facade.hpp>
27
#include <cstdint>
28
#include <memory>
29
30
#include "core/assert_cast.h"
31
#include "core/column/column.h"
32
#include "core/column/column_nullable.h"
33
#include "core/column/column_vector.h"
34
#include "core/data_type/data_type_number.h"
35
#include "core/string_ref.h"
36
#include "core/types.h"
37
#include "exprs/aggregate/aggregate_function.h"
38
#include "exprs/aggregate/aggregate_function_reader_first_last.h"
39
40
namespace doris {
41
#include "common/compile_check_begin.h"
42
class Arena;
43
class BufferReadable;
44
class BufferWritable;
45
46
struct RowNumberData {
47
    int64_t count = 0;
48
};
49
50
class WindowFunctionRowNumber final
51
        : public IAggregateFunctionDataHelper<RowNumberData, WindowFunctionRowNumber> {
52
public:
53
    WindowFunctionRowNumber(const DataTypes& argument_types_)
54
132
            : IAggregateFunctionDataHelper(argument_types_) {}
55
56
408
    String get_name() const override { return "row_number"; }
57
58
538
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
59
60
0
    void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override {
61
0
        ++data(place).count;
62
0
    }
63
64
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
65
                                int64_t frame_end, AggregateDataPtr place, const IColumn** columns,
66
21.6k
                                Arena&, UInt8*, UInt8*) const override {
67
21.6k
        ++data(place).count;
68
21.6k
    }
69
70
190
    void reset(AggregateDataPtr place) const override {
71
190
        WindowFunctionRowNumber::data(place).count = 0;
72
190
    }
73
74
0
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
75
0
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
76
0
                doris::WindowFunctionRowNumber::data(place).count);
77
0
    }
78
79
407
    bool result_column_could_resize() const override { return true; }
80
81
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
82
21.6k
                                  const size_t start, const size_t end) const override {
83
21.6k
        auto& column = assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to);
84
43.2k
        for (size_t i = start; i < end; ++i) {
85
21.6k
            column.get_data()[i] = (doris::WindowFunctionRowNumber::data(place).count);
86
21.6k
        }
87
21.6k
    }
88
89
0
    void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {}
90
0
    void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {}
91
0
    void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {}
92
};
93
94
struct RankData {
95
    int64_t rank = 0;
96
    int64_t count = 1;
97
    int64_t peer_group_start = -1;
98
};
99
100
class WindowFunctionRank final : public IAggregateFunctionDataHelper<RankData, WindowFunctionRank> {
101
public:
102
    WindowFunctionRank(const DataTypes& argument_types_)
103
179
            : IAggregateFunctionDataHelper(argument_types_) {}
104
105
1.01k
    String get_name() const override { return "rank"; }
106
107
1.19k
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
108
109
0
    void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override {
110
0
        ++data(place).rank;
111
0
    }
112
113
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
114
                                int64_t frame_end, AggregateDataPtr place, const IColumn** columns,
115
1.10k
                                Arena&, UInt8*, UInt8*) const override {
116
1.10k
        int64_t peer_group_count = frame_end - frame_start;
117
1.10k
        if (WindowFunctionRank::data(place).peer_group_start != frame_start) {
118
1.10k
            WindowFunctionRank::data(place).peer_group_start = frame_start;
119
1.10k
            WindowFunctionRank::data(place).rank += WindowFunctionRank::data(place).count;
120
1.10k
        }
121
1.10k
        WindowFunctionRank::data(place).count = peer_group_count;
122
1.10k
    }
123
124
570
    void reset(AggregateDataPtr place) const override {
125
570
        WindowFunctionRank::data(place).rank = 0;
126
570
        WindowFunctionRank::data(place).count = 1;
127
570
        WindowFunctionRank::data(place).peer_group_start = -1;
128
570
    }
129
130
0
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
131
0
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
132
0
                data(place).rank);
133
0
    }
134
135
1.01k
    bool result_column_could_resize() const override { return true; }
136
137
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
138
1.11k
                                  const size_t start, const size_t end) const override {
139
1.11k
        auto& column = assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to);
140
2.93k
        for (size_t i = start; i < end; ++i) {
141
1.82k
            column.get_data()[i] = (doris::WindowFunctionRank::data(place).rank);
142
1.82k
        }
143
1.11k
    }
144
145
0
    void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {}
146
0
    void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {}
147
0
    void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {}
148
};
149
150
struct DenseRankData {
151
    int64_t rank = 0;
152
    int64_t peer_group_start = -1;
153
};
154
155
class WindowFunctionDenseRank final
156
        : public IAggregateFunctionDataHelper<DenseRankData, WindowFunctionDenseRank> {
157
public:
158
    WindowFunctionDenseRank(const DataTypes& argument_types_)
159
15
            : IAggregateFunctionDataHelper(argument_types_) {}
160
161
32
    String get_name() const override { return "dense_rank"; }
162
163
46
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
164
165
0
    void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override {
166
0
        ++data(place).rank;
167
0
    }
168
169
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
170
                                int64_t frame_end, AggregateDataPtr place, const IColumn** columns,
171
104
                                Arena&, UInt8*, UInt8*) const override {
172
104
        if (WindowFunctionDenseRank::data(place).peer_group_start != frame_start) {
173
104
            WindowFunctionDenseRank::data(place).peer_group_start = frame_start;
174
104
            WindowFunctionDenseRank::data(place).rank++;
175
104
        }
176
104
    }
177
178
40
    void reset(AggregateDataPtr place) const override {
179
40
        WindowFunctionDenseRank::data(place).rank = 0;
180
40
        WindowFunctionDenseRank::data(place).peer_group_start = -1;
181
40
    }
182
183
0
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
184
0
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
185
0
                data(place).rank);
186
0
    }
187
188
32
    bool result_column_could_resize() const override { return true; }
189
190
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
191
104
                                  const size_t start, const size_t end) const override {
192
104
        auto& column = assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to);
193
238
        for (size_t i = start; i < end; ++i) {
194
134
            column.get_data()[i] = (doris::WindowFunctionDenseRank::data(place).rank);
195
134
        }
196
104
    }
197
198
0
    void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {}
199
0
    void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {}
200
0
    void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {}
201
};
202
203
struct PercentRankData {
204
    int64_t rank = 0;
205
    int64_t count = 1;
206
    int64_t peer_group_start = -1;
207
    int64_t partition_size = 0;
208
};
209
210
class WindowFunctionPercentRank final
211
        : public IAggregateFunctionDataHelper<PercentRankData, WindowFunctionPercentRank> {
212
private:
213
47
    static double _cal_percent(int64_t rank, int64_t total_rows) {
214
47
        return total_rows <= 1 ? 0.0 : double(rank - 1) * 1.0 / double(total_rows - 1);
215
47
    }
216
217
public:
218
    WindowFunctionPercentRank(const DataTypes& argument_types_)
219
6
            : IAggregateFunctionDataHelper(argument_types_) {}
220
221
19
    String get_name() const override { return "percent_rank"; }
222
223
25
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeFloat64>(); }
224
225
0
    void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override {}
226
227
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
228
                                int64_t frame_end, AggregateDataPtr place, const IColumn** columns,
229
47
                                Arena&, UInt8*, UInt8*) const override {
230
47
        int64_t peer_group_count = frame_end - frame_start;
231
47
        if (WindowFunctionPercentRank::data(place).peer_group_start != frame_start) {
232
47
            WindowFunctionPercentRank::data(place).peer_group_start = frame_start;
233
47
            WindowFunctionPercentRank::data(place).rank +=
234
47
                    WindowFunctionPercentRank::data(place).count;
235
            // some variables are partition related, but there is no chance to init them
236
            // when the new partition arrives, so we calculate them every time now.
237
47
            WindowFunctionPercentRank::data(place).partition_size = partition_end - partition_start;
238
47
        }
239
47
        WindowFunctionPercentRank::data(place).count = peer_group_count;
240
47
    }
241
242
20
    void reset(AggregateDataPtr place) const override {
243
20
        WindowFunctionPercentRank::data(place).rank = 0;
244
20
        WindowFunctionPercentRank::data(place).count = 1;
245
20
        WindowFunctionPercentRank::data(place).peer_group_start = -1;
246
20
        WindowFunctionPercentRank::data(place).partition_size = 0;
247
20
    }
248
249
0
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
250
0
        auto percent_rank = _cal_percent(data(place).rank, data(place).partition_size);
251
0
        assert_cast<ColumnFloat64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
252
0
                percent_rank);
253
0
    }
254
255
19
    bool result_column_could_resize() const override { return true; }
256
257
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
258
47
                                  const size_t start, const size_t end) const override {
259
47
        auto& column = assert_cast<ColumnFloat64&, TypeCheckOnRelease::DISABLE>(to);
260
47
        auto percent_rank = _cal_percent(data(place).rank, data(place).partition_size);
261
116
        for (size_t i = start; i < end; ++i) {
262
69
            column.get_data()[i] = percent_rank;
263
69
        }
264
47
    }
265
266
0
    void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {}
267
0
    void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {}
268
0
    void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {}
269
};
270
271
struct CumeDistData {
272
    int64_t numerator = 0;
273
    int64_t denominator = 0;
274
    int64_t peer_group_start = -1;
275
};
276
277
class WindowFunctionCumeDist final
278
        : public IAggregateFunctionDataHelper<CumeDistData, WindowFunctionCumeDist> {
279
private:
280
    static void check_default(AggregateDataPtr place, int64_t partition_start,
281
47
                              int64_t partition_end) {
282
47
        if (data(place).denominator == 0) {
283
21
            data(place).denominator = partition_end - partition_start;
284
21
        }
285
47
    }
286
287
public:
288
    WindowFunctionCumeDist(const DataTypes& argument_types_)
289
6
            : IAggregateFunctionDataHelper(argument_types_) {}
290
291
19
    String get_name() const override { return "cume_dist"; }
292
293
25
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeFloat64>(); }
294
295
0
    void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override {}
296
297
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
298
                                int64_t frame_end, AggregateDataPtr place, const IColumn** columns,
299
47
                                Arena&, UInt8*, UInt8*) const override {
300
47
        check_default(place, partition_start, partition_end);
301
47
        int64_t peer_group_count = frame_end - frame_start;
302
47
        if (WindowFunctionCumeDist::data(place).peer_group_start != frame_start) {
303
47
            WindowFunctionCumeDist::data(place).peer_group_start = frame_start;
304
47
            WindowFunctionCumeDist::data(place).numerator += peer_group_count;
305
47
        }
306
47
    }
307
308
21
    void reset(AggregateDataPtr place) const override {
309
21
        WindowFunctionCumeDist::data(place).numerator = 0;
310
21
        WindowFunctionCumeDist::data(place).denominator = 0;
311
21
        WindowFunctionCumeDist::data(place).peer_group_start = -1;
312
21
    }
313
314
0
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
315
0
        auto cume_dist = (double)data(place).numerator * 1.0 / (double)data(place).denominator;
316
0
        assert_cast<ColumnFloat64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
317
0
                cume_dist);
318
0
    }
319
320
19
    bool result_column_could_resize() const override { return true; }
321
322
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
323
47
                                  const size_t start, const size_t end) const override {
324
47
        auto& column = assert_cast<ColumnFloat64&, TypeCheckOnRelease::DISABLE>(to);
325
47
        auto cume_dist = (double)data(place).numerator * 1.0 / (double)data(place).denominator;
326
116
        for (size_t i = start; i < end; ++i) {
327
69
            column.get_data()[i] = cume_dist;
328
69
        }
329
47
    }
330
331
0
    void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {}
332
0
    void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {}
333
0
    void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {}
334
};
335
336
struct NTileData {
337
    int64_t bucket_index = 0;
338
    int64_t rows = 0;
339
};
340
341
class WindowFunctionNTile final
342
        : public IAggregateFunctionDataHelper<NTileData, WindowFunctionNTile>,
343
          UnaryExpression,
344
          NullableAggregateFunction {
345
public:
346
    WindowFunctionNTile(const DataTypes& argument_types_)
347
10
            : IAggregateFunctionDataHelper(argument_types_) {}
348
349
28
    String get_name() const override { return "ntile"; }
350
351
38
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
352
353
0
    void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override {}
354
355
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
356
                                int64_t frame_end, AggregateDataPtr place, const IColumn** columns,
357
110
                                Arena&, UInt8*, UInt8*) const override {
358
        // some variables are partition related, but there is no chance to init them
359
        // when the new partition arrives, so we calculate them every time now.
360
        // Partition = big_bucket_num * big_bucket_size + small_bucket_num * small_bucket_size
361
110
        int64_t row_index = ++WindowFunctionNTile::data(place).rows - 1;
362
110
        int64_t bucket_num = columns[0]->get_int(0);
363
110
        int64_t partition_size = partition_end - partition_start;
364
365
110
        int64_t small_bucket_size = partition_size / bucket_num;
366
110
        int64_t big_bucket_num = partition_size % bucket_num;
367
110
        int64_t first_small_bucket_row_index = big_bucket_num * (small_bucket_size + 1);
368
110
        if (row_index >= first_small_bucket_row_index) {
369
            // small_bucket_size can't be zero
370
54
            WindowFunctionNTile::data(place).bucket_index =
371
54
                    big_bucket_num + 1 +
372
54
                    (row_index - first_small_bucket_row_index) / small_bucket_size;
373
56
        } else {
374
56
            WindowFunctionNTile::data(place).bucket_index = row_index / (small_bucket_size + 1) + 1;
375
56
        }
376
110
    }
377
378
29
    void reset(AggregateDataPtr place) const override { WindowFunctionNTile::data(place).rows = 0; }
379
380
0
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
381
0
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
382
0
                WindowFunctionNTile::data(place).bucket_index);
383
0
    }
384
385
28
    bool result_column_could_resize() const override { return true; }
386
387
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
388
110
                                  const size_t start, const size_t end) const override {
389
110
        auto& column = assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to);
390
220
        for (size_t i = start; i < end; ++i) {
391
110
            column.get_data()[i] = WindowFunctionNTile::data(place).bucket_index;
392
110
        }
393
110
    }
394
395
0
    void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {}
396
0
    void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {}
397
0
    void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {}
398
};
399
400
template <bool result_is_nullable, bool arg_is_nullable>
401
struct FirstLastData
402
        : public ReaderFirstAndLastData<void, result_is_nullable, arg_is_nullable, false> {
403
public:
404
364
    void set_is_null() { this->_data_value.reset(); }
Unexecuted instantiation: _ZN5doris13FirstLastDataILb0ELb0EE11set_is_nullEv
Unexecuted instantiation: _ZN5doris13FirstLastDataILb0ELb1EE11set_is_nullEv
_ZN5doris13FirstLastDataILb1ELb0EE11set_is_nullEv
Line
Count
Source
404
208
    void set_is_null() { this->_data_value.reset(); }
_ZN5doris13FirstLastDataILb1ELb1EE11set_is_nullEv
Line
Count
Source
404
156
    void set_is_null() { this->_data_value.reset(); }
405
};
406
407
template <bool result_is_nullable, bool arg_is_nullable>
408
struct NthValueData : public FirstLastData<result_is_nullable, arg_is_nullable> {
409
public:
410
182
    void reset() {
411
182
        this->_data_value.reset();
412
182
        this->_has_value = false;
413
182
        this->_frame_start_pose = 0;
414
182
        this->_frame_total_rows = 0;
415
182
    }
Unexecuted instantiation: _ZN5doris12NthValueDataILb0ELb0EE5resetEv
Unexecuted instantiation: _ZN5doris12NthValueDataILb0ELb1EE5resetEv
Unexecuted instantiation: _ZN5doris12NthValueDataILb1ELb0EE5resetEv
_ZN5doris12NthValueDataILb1ELb1EE5resetEv
Line
Count
Source
410
182
    void reset() {
411
182
        this->_data_value.reset();
412
182
        this->_has_value = false;
413
182
        this->_frame_start_pose = 0;
414
182
        this->_frame_total_rows = 0;
415
182
    }
416
417
    int64_t _frame_start_pose = 0;
418
    int64_t _frame_total_rows = 0;
419
};
420
421
template <bool arg_is_nullable>
422
struct BaseValue : public Value<arg_is_nullable> {
423
public:
424
658
    bool is_null() const { return this->_ptr == nullptr; }
_ZNK5doris9BaseValueILb0EE7is_nullEv
Line
Count
Source
424
8
    bool is_null() const { return this->_ptr == nullptr; }
_ZNK5doris9BaseValueILb1EE7is_nullEv
Line
Count
Source
424
650
    bool is_null() const { return this->_ptr == nullptr; }
425
    // because _ptr pointer to first_argument or third argument, so it's difficult to cast ptr
426
    // so here will call virtual function
427
1.37k
    StringRef get_value() const { return this->_ptr->get_data_at(this->_offset); }
_ZNK5doris9BaseValueILb0EE9get_valueEv
Line
Count
Source
427
915
    StringRef get_value() const { return this->_ptr->get_data_at(this->_offset); }
_ZNK5doris9BaseValueILb1EE9get_valueEv
Line
Count
Source
427
456
    StringRef get_value() const { return this->_ptr->get_data_at(this->_offset); }
428
};
429
430
template <bool result_is_nullable, bool arg_is_nullable>
431
struct LeadLagData {
432
public:
433
    static constexpr bool result_nullable = result_is_nullable;
434
322
    void reset() {
435
322
        _data_value.reset();
436
322
        _is_inited = false;
437
322
        _offset_value = 0;
438
322
    }
_ZN5doris11LeadLagDataILb0ELb0EE5resetEv
Line
Count
Source
434
144
    void reset() {
435
144
        _data_value.reset();
436
144
        _is_inited = false;
437
144
        _offset_value = 0;
438
144
    }
Unexecuted instantiation: _ZN5doris11LeadLagDataILb0ELb1EE5resetEv
_ZN5doris11LeadLagDataILb1ELb0EE5resetEv
Line
Count
Source
434
4
    void reset() {
435
4
        _data_value.reset();
436
4
        _is_inited = false;
437
4
        _offset_value = 0;
438
4
    }
_ZN5doris11LeadLagDataILb1ELb1EE5resetEv
Line
Count
Source
434
174
    void reset() {
435
174
        _data_value.reset();
436
174
        _is_inited = false;
437
174
        _offset_value = 0;
438
174
    }
439
440
1.57k
    void insert_result_into(IColumn& to) const {
441
1.57k
        if constexpr (result_is_nullable) {
442
658
            if (_data_value.is_null()) {
443
200
                auto& col = assert_cast<ColumnNullable&>(to);
444
200
                col.insert_default();
445
458
            } else {
446
458
                auto& col = assert_cast<ColumnNullable&>(to);
447
458
                StringRef value = _data_value.get_value();
448
458
                col.insert_data(value.data, value.size);
449
458
            }
450
913
        } else {
451
913
            StringRef value = _data_value.get_value();
452
913
            to.insert_data(value.data, value.size);
453
913
        }
454
1.57k
    }
_ZNK5doris11LeadLagDataILb0ELb0EE18insert_result_intoERNS_7IColumnE
Line
Count
Source
440
913
    void insert_result_into(IColumn& to) const {
441
        if constexpr (result_is_nullable) {
442
            if (_data_value.is_null()) {
443
                auto& col = assert_cast<ColumnNullable&>(to);
444
                col.insert_default();
445
            } else {
446
                auto& col = assert_cast<ColumnNullable&>(to);
447
                StringRef value = _data_value.get_value();
448
                col.insert_data(value.data, value.size);
449
            }
450
913
        } else {
451
913
            StringRef value = _data_value.get_value();
452
913
            to.insert_data(value.data, value.size);
453
913
        }
454
913
    }
Unexecuted instantiation: _ZNK5doris11LeadLagDataILb0ELb1EE18insert_result_intoERNS_7IColumnE
_ZNK5doris11LeadLagDataILb1ELb0EE18insert_result_intoERNS_7IColumnE
Line
Count
Source
440
8
    void insert_result_into(IColumn& to) const {
441
8
        if constexpr (result_is_nullable) {
442
8
            if (_data_value.is_null()) {
443
6
                auto& col = assert_cast<ColumnNullable&>(to);
444
6
                col.insert_default();
445
6
            } else {
446
2
                auto& col = assert_cast<ColumnNullable&>(to);
447
2
                StringRef value = _data_value.get_value();
448
2
                col.insert_data(value.data, value.size);
449
2
            }
450
        } else {
451
            StringRef value = _data_value.get_value();
452
            to.insert_data(value.data, value.size);
453
        }
454
8
    }
_ZNK5doris11LeadLagDataILb1ELb1EE18insert_result_intoERNS_7IColumnE
Line
Count
Source
440
650
    void insert_result_into(IColumn& to) const {
441
650
        if constexpr (result_is_nullable) {
442
650
            if (_data_value.is_null()) {
443
194
                auto& col = assert_cast<ColumnNullable&>(to);
444
194
                col.insert_default();
445
456
            } else {
446
456
                auto& col = assert_cast<ColumnNullable&>(to);
447
456
                StringRef value = _data_value.get_value();
448
456
                col.insert_data(value.data, value.size);
449
456
            }
450
        } else {
451
            StringRef value = _data_value.get_value();
452
            to.insert_data(value.data, value.size);
453
        }
454
650
    }
455
456
1.07k
    void set_value(const IColumn** columns, size_t pos) {
457
1.07k
        if constexpr (arg_is_nullable) {
458
475
            if (assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(columns[0])
459
475
                        ->is_null_at(pos)) {
460
                // ptr == nullptr means nullable
461
3
                _data_value.reset();
462
3
                return;
463
3
            }
464
475
        }
465
        // here ptr is pointer to nullable column or not null column from first
466
472
        _data_value.set_value(columns[0], pos);
467
1.07k
    }
_ZN5doris11LeadLagDataILb0ELb0EE9set_valueEPPKNS_7IColumnEm
Line
Count
Source
456
597
    void set_value(const IColumn** columns, size_t pos) {
457
        if constexpr (arg_is_nullable) {
458
            if (assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(columns[0])
459
                        ->is_null_at(pos)) {
460
                // ptr == nullptr means nullable
461
                _data_value.reset();
462
                return;
463
            }
464
        }
465
        // here ptr is pointer to nullable column or not null column from first
466
597
        _data_value.set_value(columns[0], pos);
467
597
    }
Unexecuted instantiation: _ZN5doris11LeadLagDataILb0ELb1EE9set_valueEPPKNS_7IColumnEm
_ZN5doris11LeadLagDataILb1ELb0EE9set_valueEPPKNS_7IColumnEm
Line
Count
Source
456
5
    void set_value(const IColumn** columns, size_t pos) {
457
        if constexpr (arg_is_nullable) {
458
            if (assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(columns[0])
459
                        ->is_null_at(pos)) {
460
                // ptr == nullptr means nullable
461
                _data_value.reset();
462
                return;
463
            }
464
        }
465
        // here ptr is pointer to nullable column or not null column from first
466
5
        _data_value.set_value(columns[0], pos);
467
5
    }
_ZN5doris11LeadLagDataILb1ELb1EE9set_valueEPPKNS_7IColumnEm
Line
Count
Source
456
475
    void set_value(const IColumn** columns, size_t pos) {
457
475
        if constexpr (arg_is_nullable) {
458
475
            if (assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(columns[0])
459
475
                        ->is_null_at(pos)) {
460
                // ptr == nullptr means nullable
461
3
                _data_value.reset();
462
3
                return;
463
3
            }
464
475
        }
465
        // here ptr is pointer to nullable column or not null column from first
466
472
        _data_value.set_value(columns[0], pos);
467
475
    }
468
469
625
    void set_value_from_default(const IColumn* column, size_t pos) {
470
625
        DCHECK_GE(pos, 0);
471
625
        if (is_column_nullable(*column)) {
472
206
            const auto* nullable_column =
473
206
                    assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(column);
474
206
            if (nullable_column->is_null_at(pos)) {
475
200
                this->_data_value.reset();
476
200
            } else {
477
6
                this->_data_value.set_value(nullable_column->get_nested_column_ptr().get(), pos);
478
6
            }
479
419
        } else {
480
419
            this->_data_value.set_value(column, pos);
481
419
        }
482
625
    }
_ZN5doris11LeadLagDataILb0ELb0EE22set_value_from_defaultEPKNS_7IColumnEm
Line
Count
Source
469
329
    void set_value_from_default(const IColumn* column, size_t pos) {
470
329
        DCHECK_GE(pos, 0);
471
329
        if (is_column_nullable(*column)) {
472
0
            const auto* nullable_column =
473
0
                    assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(column);
474
0
            if (nullable_column->is_null_at(pos)) {
475
0
                this->_data_value.reset();
476
0
            } else {
477
0
                this->_data_value.set_value(nullable_column->get_nested_column_ptr().get(), pos);
478
0
            }
479
329
        } else {
480
329
            this->_data_value.set_value(column, pos);
481
329
        }
482
329
    }
Unexecuted instantiation: _ZN5doris11LeadLagDataILb0ELb1EE22set_value_from_defaultEPKNS_7IColumnEm
_ZN5doris11LeadLagDataILb1ELb0EE22set_value_from_defaultEPKNS_7IColumnEm
Line
Count
Source
469
6
    void set_value_from_default(const IColumn* column, size_t pos) {
470
6
        DCHECK_GE(pos, 0);
471
6
        if (is_column_nullable(*column)) {
472
6
            const auto* nullable_column =
473
6
                    assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(column);
474
6
            if (nullable_column->is_null_at(pos)) {
475
6
                this->_data_value.reset();
476
6
            } else {
477
0
                this->_data_value.set_value(nullable_column->get_nested_column_ptr().get(), pos);
478
0
            }
479
6
        } else {
480
0
            this->_data_value.set_value(column, pos);
481
0
        }
482
6
    }
_ZN5doris11LeadLagDataILb1ELb1EE22set_value_from_defaultEPKNS_7IColumnEm
Line
Count
Source
469
290
    void set_value_from_default(const IColumn* column, size_t pos) {
470
290
        DCHECK_GE(pos, 0);
471
290
        if (is_column_nullable(*column)) {
472
200
            const auto* nullable_column =
473
200
                    assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(column);
474
200
            if (nullable_column->is_null_at(pos)) {
475
194
                this->_data_value.reset();
476
194
            } else {
477
6
                this->_data_value.set_value(nullable_column->get_nested_column_ptr().get(), pos);
478
6
            }
479
200
        } else {
480
90
            this->_data_value.set_value(column, pos);
481
90
        }
482
290
    }
483
484
625
    void set_offset_value(const IColumn* column) {
485
625
        if (!_is_inited) {
486
548
            const auto* column_number = assert_cast<const ColumnInt64*>(column);
487
548
            _offset_value = column_number->get_data()[0];
488
548
            _is_inited = true;
489
548
        }
490
625
    }
_ZN5doris11LeadLagDataILb0ELb0EE16set_offset_valueEPKNS_7IColumnE
Line
Count
Source
484
329
    void set_offset_value(const IColumn* column) {
485
329
        if (!_is_inited) {
486
314
            const auto* column_number = assert_cast<const ColumnInt64*>(column);
487
314
            _offset_value = column_number->get_data()[0];
488
314
            _is_inited = true;
489
314
        }
490
329
    }
Unexecuted instantiation: _ZN5doris11LeadLagDataILb0ELb1EE16set_offset_valueEPKNS_7IColumnE
_ZN5doris11LeadLagDataILb1ELb0EE16set_offset_valueEPKNS_7IColumnE
Line
Count
Source
484
6
    void set_offset_value(const IColumn* column) {
485
6
        if (!_is_inited) {
486
6
            const auto* column_number = assert_cast<const ColumnInt64*>(column);
487
6
            _offset_value = column_number->get_data()[0];
488
6
            _is_inited = true;
489
6
        }
490
6
    }
_ZN5doris11LeadLagDataILb1ELb1EE16set_offset_valueEPKNS_7IColumnE
Line
Count
Source
484
290
    void set_offset_value(const IColumn* column) {
485
290
        if (!_is_inited) {
486
228
            const auto* column_number = assert_cast<const ColumnInt64*>(column);
487
228
            _offset_value = column_number->get_data()[0];
488
228
            _is_inited = true;
489
228
        }
490
290
    }
491
492
625
    int64_t get_offset_value() const { return _offset_value; }
_ZNK5doris11LeadLagDataILb0ELb0EE16get_offset_valueEv
Line
Count
Source
492
329
    int64_t get_offset_value() const { return _offset_value; }
Unexecuted instantiation: _ZNK5doris11LeadLagDataILb0ELb1EE16get_offset_valueEv
_ZNK5doris11LeadLagDataILb1ELb0EE16get_offset_valueEv
Line
Count
Source
492
6
    int64_t get_offset_value() const { return _offset_value; }
_ZNK5doris11LeadLagDataILb1ELb1EE16get_offset_valueEv
Line
Count
Source
492
290
    int64_t get_offset_value() const { return _offset_value; }
493
494
private:
495
    BaseValue<arg_is_nullable> _data_value;
496
    bool _is_inited = false;
497
    int64_t _offset_value = 0;
498
};
499
500
template <typename Data, bool = false>
501
struct WindowFunctionLeadImpl : Data {
502
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
503
512
                                int64_t frame_end, const IColumn** columns) {
504
512
        if (frame_end > partition_end) { //output default value, win end is under partition
505
172
            this->set_offset_value(columns[1]);
506
            // eg: lead(column, 10, default_value), column size maybe 3 rows
507
            // offset value 10 is from second argument, pos: 11 is calculated as frame_end
508
172
            auto pos = frame_end - 1 - this->get_offset_value();
509
172
            this->set_value_from_default(columns[2], pos);
510
172
            return;
511
172
        }
512
340
        this->set_value(columns, frame_end - 1);
513
340
    }
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
503
72
                                int64_t frame_end, const IColumn** columns) {
504
72
        if (frame_end > partition_end) { //output default value, win end is under partition
505
20
            this->set_offset_value(columns[1]);
506
            // eg: lead(column, 10, default_value), column size maybe 3 rows
507
            // offset value 10 is from second argument, pos: 11 is calculated as frame_end
508
20
            auto pos = frame_end - 1 - this->get_offset_value();
509
20
            this->set_value_from_default(columns[2], pos);
510
20
            return;
511
20
        }
512
52
        this->set_value(columns, frame_end - 1);
513
52
    }
Unexecuted instantiation: _ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
503
7
                                int64_t frame_end, const IColumn** columns) {
504
7
        if (frame_end > partition_end) { //output default value, win end is under partition
505
3
            this->set_offset_value(columns[1]);
506
            // eg: lead(column, 10, default_value), column size maybe 3 rows
507
            // offset value 10 is from second argument, pos: 11 is calculated as frame_end
508
3
            auto pos = frame_end - 1 - this->get_offset_value();
509
3
            this->set_value_from_default(columns[2], pos);
510
3
            return;
511
3
        }
512
4
        this->set_value(columns, frame_end - 1);
513
4
    }
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
503
433
                                int64_t frame_end, const IColumn** columns) {
504
433
        if (frame_end > partition_end) { //output default value, win end is under partition
505
149
            this->set_offset_value(columns[1]);
506
            // eg: lead(column, 10, default_value), column size maybe 3 rows
507
            // offset value 10 is from second argument, pos: 11 is calculated as frame_end
508
149
            auto pos = frame_end - 1 - this->get_offset_value();
509
149
            this->set_value_from_default(columns[2], pos);
510
149
            return;
511
149
        }
512
284
        this->set_value(columns, frame_end - 1);
513
284
    }
514
515
176
    static const char* name() { return "lead"; }
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EE4nameEv
Line
Count
Source
515
26
    static const char* name() { return "lead"; }
Unexecuted instantiation: _ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EE4nameEv
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EE4nameEv
Line
Count
Source
515
4
    static const char* name() { return "lead"; }
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EE4nameEv
Line
Count
Source
515
146
    static const char* name() { return "lead"; }
516
};
517
518
template <typename Data, bool = false>
519
struct WindowFunctionLagImpl : Data {
520
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
521
1.19k
                                int64_t frame_end, const IColumn** columns) {
522
        // window start is beyond partition
523
1.19k
        if (partition_start >= frame_end) { //[unbound preceding(0), offset preceding(-123)]
524
453
            this->set_offset_value(columns[1]);
525
453
            auto pos = frame_end - 1 + this->get_offset_value();
526
453
            this->set_value_from_default(columns[2], pos);
527
453
            return;
528
453
        }
529
737
        this->set_value(columns, frame_end - 1);
530
737
    }
_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
521
854
                                int64_t frame_end, const IColumn** columns) {
522
        // window start is beyond partition
523
854
        if (partition_start >= frame_end) { //[unbound preceding(0), offset preceding(-123)]
524
309
            this->set_offset_value(columns[1]);
525
309
            auto pos = frame_end - 1 + this->get_offset_value();
526
309
            this->set_value_from_default(columns[2], pos);
527
309
            return;
528
309
        }
529
545
        this->set_value(columns, frame_end - 1);
530
545
    }
Unexecuted instantiation: _ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
521
4
                                int64_t frame_end, const IColumn** columns) {
522
        // window start is beyond partition
523
4
        if (partition_start >= frame_end) { //[unbound preceding(0), offset preceding(-123)]
524
3
            this->set_offset_value(columns[1]);
525
3
            auto pos = frame_end - 1 + this->get_offset_value();
526
3
            this->set_value_from_default(columns[2], pos);
527
3
            return;
528
3
        }
529
1
        this->set_value(columns, frame_end - 1);
530
1
    }
_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
521
332
                                int64_t frame_end, const IColumn** columns) {
522
        // window start is beyond partition
523
332
        if (partition_start >= frame_end) { //[unbound preceding(0), offset preceding(-123)]
524
141
            this->set_offset_value(columns[1]);
525
141
            auto pos = frame_end - 1 + this->get_offset_value();
526
141
            this->set_value_from_default(columns[2], pos);
527
141
            return;
528
141
        }
529
191
        this->set_value(columns, frame_end - 1);
530
191
    }
531
532
881
    static const char* name() { return "lag"; }
_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EE4nameEv
Line
Count
Source
532
729
    static const char* name() { return "lag"; }
Unexecuted instantiation: _ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EE4nameEv
_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EE4nameEv
Line
Count
Source
532
4
    static const char* name() { return "lag"; }
_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EE4nameEv
Line
Count
Source
532
148
    static const char* name() { return "lag"; }
533
};
534
535
template <typename Data, bool arg_ignore_null = false>
536
struct WindowFunctionFirstImpl : Data {
537
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
538
1.63k
                                int64_t frame_end, const IColumn** columns) {
539
        // case 1: (has_set_value() = true && arg_ignore_null = false)
540
        // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false)
541
1.63k
        if ((this->has_set_value()) &&
542
1.63k
            (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
543
809
            return;
544
809
        }
545
1.63k
        DCHECK_LE(frame_start, frame_end);
546
826
        if (frame_start >= partition_end || frame_end <= partition_start) {
547
26
            this->set_is_null();
548
26
            return;
549
26
        }
550
800
        frame_start = std::max<int64_t>(frame_start, partition_start);
551
552
800
        if constexpr (arg_ignore_null) {
553
33
            frame_end = std::min<int64_t>(frame_end, partition_end);
554
33
            if (columns[0]->is_nullable()) {
555
29
                const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]);
556
                // the valid range is: [frame_start, frame_end)
557
38
                while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) {
558
9
                    frame_start++;
559
9
                }
560
29
            }
561
33
        }
562
800
        this->set_value(columns, frame_start);
563
800
    }
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
538
5
                                int64_t frame_end, const IColumn** columns) {
539
        // case 1: (has_set_value() = true && arg_ignore_null = false)
540
        // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false)
541
5
        if ((this->has_set_value()) &&
542
5
            (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
543
2
            return;
544
2
        }
545
5
        DCHECK_LE(frame_start, frame_end);
546
3
        if (frame_start >= partition_end || frame_end <= partition_start) {
547
0
            this->set_is_null();
548
0
            return;
549
0
        }
550
3
        frame_start = std::max<int64_t>(frame_start, partition_start);
551
552
        if constexpr (arg_ignore_null) {
553
            frame_end = std::min<int64_t>(frame_end, partition_end);
554
            if (columns[0]->is_nullable()) {
555
                const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]);
556
                // the valid range is: [frame_start, frame_end)
557
                while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) {
558
                    frame_start++;
559
                }
560
            }
561
        }
562
3
        this->set_value(columns, frame_start);
563
3
    }
Unexecuted instantiation: _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
538
546
                                int64_t frame_end, const IColumn** columns) {
539
        // case 1: (has_set_value() = true && arg_ignore_null = false)
540
        // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false)
541
546
        if ((this->has_set_value()) &&
542
546
            (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
543
227
            return;
544
227
        }
545
546
        DCHECK_LE(frame_start, frame_end);
546
319
        if (frame_start >= partition_end || frame_end <= partition_start) {
547
4
            this->set_is_null();
548
4
            return;
549
4
        }
550
315
        frame_start = std::max<int64_t>(frame_start, partition_start);
551
552
        if constexpr (arg_ignore_null) {
553
            frame_end = std::min<int64_t>(frame_end, partition_end);
554
            if (columns[0]->is_nullable()) {
555
                const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]);
556
                // the valid range is: [frame_start, frame_end)
557
                while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) {
558
                    frame_start++;
559
                }
560
            }
561
        }
562
315
        this->set_value(columns, frame_start);
563
315
    }
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
538
1.03k
                                int64_t frame_end, const IColumn** columns) {
539
        // case 1: (has_set_value() = true && arg_ignore_null = false)
540
        // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false)
541
1.03k
        if ((this->has_set_value()) &&
542
1.03k
            (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
543
566
            return;
544
566
        }
545
1.03k
        DCHECK_LE(frame_start, frame_end);
546
465
        if (frame_start >= partition_end || frame_end <= partition_start) {
547
16
            this->set_is_null();
548
16
            return;
549
16
        }
550
449
        frame_start = std::max<int64_t>(frame_start, partition_start);
551
552
        if constexpr (arg_ignore_null) {
553
            frame_end = std::min<int64_t>(frame_end, partition_end);
554
            if (columns[0]->is_nullable()) {
555
                const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]);
556
                // the valid range is: [frame_start, frame_end)
557
                while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) {
558
                    frame_start++;
559
                }
560
            }
561
        }
562
449
        this->set_value(columns, frame_start);
563
449
    }
Unexecuted instantiation: _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EE22add_range_single_placeEllllPPKNS_7IColumnE
Unexecuted instantiation: _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EE22add_range_single_placeEllllPPKNS_7IColumnE
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
538
4
                                int64_t frame_end, const IColumn** columns) {
539
        // case 1: (has_set_value() = true && arg_ignore_null = false)
540
        // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false)
541
4
        if ((this->has_set_value()) &&
542
4
            (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
543
0
            return;
544
0
        }
545
4
        DCHECK_LE(frame_start, frame_end);
546
4
        if (frame_start >= partition_end || frame_end <= partition_start) {
547
0
            this->set_is_null();
548
0
            return;
549
0
        }
550
4
        frame_start = std::max<int64_t>(frame_start, partition_start);
551
552
4
        if constexpr (arg_ignore_null) {
553
4
            frame_end = std::min<int64_t>(frame_end, partition_end);
554
4
            if (columns[0]->is_nullable()) {
555
0
                const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]);
556
                // the valid range is: [frame_start, frame_end)
557
0
                while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) {
558
0
                    frame_start++;
559
0
                }
560
0
            }
561
4
        }
562
4
        this->set_value(columns, frame_start);
563
4
    }
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
538
49
                                int64_t frame_end, const IColumn** columns) {
539
        // case 1: (has_set_value() = true && arg_ignore_null = false)
540
        // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false)
541
49
        if ((this->has_set_value()) &&
542
49
            (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
543
14
            return;
544
14
        }
545
49
        DCHECK_LE(frame_start, frame_end);
546
35
        if (frame_start >= partition_end || frame_end <= partition_start) {
547
6
            this->set_is_null();
548
6
            return;
549
6
        }
550
29
        frame_start = std::max<int64_t>(frame_start, partition_start);
551
552
29
        if constexpr (arg_ignore_null) {
553
29
            frame_end = std::min<int64_t>(frame_end, partition_end);
554
29
            if (columns[0]->is_nullable()) {
555
29
                const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]);
556
                // the valid range is: [frame_start, frame_end)
557
38
                while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) {
558
9
                    frame_start++;
559
9
                }
560
29
            }
561
29
        }
562
29
        this->set_value(columns, frame_start);
563
29
    }
564
565
1.06k
    static const char* name() { return "first_value"; }
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EE4nameEv
Line
Count
Source
565
1
    static const char* name() { return "first_value"; }
Unexecuted instantiation: _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EE4nameEv
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EE4nameEv
Line
Count
Source
565
621
    static const char* name() { return "first_value"; }
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EE4nameEv
Line
Count
Source
565
423
    static const char* name() { return "first_value"; }
Unexecuted instantiation: _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EE4nameEv
Unexecuted instantiation: _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EE4nameEv
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EE4nameEv
Line
Count
Source
565
3
    static const char* name() { return "first_value"; }
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EE4nameEv
Line
Count
Source
565
12
    static const char* name() { return "first_value"; }
566
};
567
568
template <typename Data, bool arg_ignore_null = false>
569
struct WindowFunctionLastImpl : Data {
570
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
571
1.23k
                                int64_t frame_end, const IColumn** columns) {
572
1.23k
        DCHECK_LE(frame_start, frame_end);
573
1.23k
        if ((frame_end <= partition_start) ||
574
1.23k
            (frame_start >= partition_end)) { //beyond or under partition, set null
575
254
            if ((this->has_set_value()) &&
576
254
                (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
577
                // have set value, do nothing, because like rows unbouned preceding and M following
578
                // it's caculated as the cumulative mode, so it's could reuse the previous
579
228
            } else {
580
228
                this->set_is_null();
581
228
            }
582
254
            return;
583
254
        }
584
983
        frame_end = std::min<int64_t>(frame_end, partition_end);
585
586
983
        if constexpr (arg_ignore_null) {
587
64
            frame_start = std::max<int64_t>(frame_start, partition_start);
588
64
            if (columns[0]->is_nullable()) {
589
64
                const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]);
590
                // wants find a not null value in [frame_start, frame_end)
591
                // iff has find: set_value and return directly
592
                // iff not find: the while loop is finished
593
                //     case 1: iff has_set_value, means the previous window have value, could reuse it, so return directly
594
                //     case 2: iff not has_set_value, means there is none value, set it's to NULL
595
105
                while (frame_start < frame_end) {
596
81
                    if (arg_nullable.is_null_at(frame_end - 1)) {
597
41
                        frame_end--;
598
41
                    } else {
599
40
                        this->set_value(columns, frame_end - 1);
600
40
                        return;
601
40
                    }
602
81
                }
603
24
                if (!this->has_set_value()) {
604
9
                    this->set_is_null();
605
9
                }
606
24
                return;
607
64
            }
608
64
        }
609
610
0
        this->set_value(columns, frame_end - 1);
611
983
    }
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
571
445
                                int64_t frame_end, const IColumn** columns) {
572
445
        DCHECK_LE(frame_start, frame_end);
573
445
        if ((frame_end <= partition_start) ||
574
445
            (frame_start >= partition_end)) { //beyond or under partition, set null
575
216
            if ((this->has_set_value()) &&
576
216
                (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
577
                // have set value, do nothing, because like rows unbouned preceding and M following
578
                // it's caculated as the cumulative mode, so it's could reuse the previous
579
204
            } else {
580
204
                this->set_is_null();
581
204
            }
582
216
            return;
583
216
        }
584
229
        frame_end = std::min<int64_t>(frame_end, partition_end);
585
586
        if constexpr (arg_ignore_null) {
587
            frame_start = std::max<int64_t>(frame_start, partition_start);
588
            if (columns[0]->is_nullable()) {
589
                const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]);
590
                // wants find a not null value in [frame_start, frame_end)
591
                // iff has find: set_value and return directly
592
                // iff not find: the while loop is finished
593
                //     case 1: iff has_set_value, means the previous window have value, could reuse it, so return directly
594
                //     case 2: iff not has_set_value, means there is none value, set it's to NULL
595
                while (frame_start < frame_end) {
596
                    if (arg_nullable.is_null_at(frame_end - 1)) {
597
                        frame_end--;
598
                    } else {
599
                        this->set_value(columns, frame_end - 1);
600
                        return;
601
                    }
602
                }
603
                if (!this->has_set_value()) {
604
                    this->set_is_null();
605
                }
606
                return;
607
            }
608
        }
609
610
229
        this->set_value(columns, frame_end - 1);
611
229
    }
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
571
728
                                int64_t frame_end, const IColumn** columns) {
572
728
        DCHECK_LE(frame_start, frame_end);
573
728
        if ((frame_end <= partition_start) ||
574
728
            (frame_start >= partition_end)) { //beyond or under partition, set null
575
38
            if ((this->has_set_value()) &&
576
38
                (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
577
                // have set value, do nothing, because like rows unbouned preceding and M following
578
                // it's caculated as the cumulative mode, so it's could reuse the previous
579
24
            } else {
580
24
                this->set_is_null();
581
24
            }
582
38
            return;
583
38
        }
584
690
        frame_end = std::min<int64_t>(frame_end, partition_end);
585
586
        if constexpr (arg_ignore_null) {
587
            frame_start = std::max<int64_t>(frame_start, partition_start);
588
            if (columns[0]->is_nullable()) {
589
                const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]);
590
                // wants find a not null value in [frame_start, frame_end)
591
                // iff has find: set_value and return directly
592
                // iff not find: the while loop is finished
593
                //     case 1: iff has_set_value, means the previous window have value, could reuse it, so return directly
594
                //     case 2: iff not has_set_value, means there is none value, set it's to NULL
595
                while (frame_start < frame_end) {
596
                    if (arg_nullable.is_null_at(frame_end - 1)) {
597
                        frame_end--;
598
                    } else {
599
                        this->set_value(columns, frame_end - 1);
600
                        return;
601
                    }
602
                }
603
                if (!this->has_set_value()) {
604
                    this->set_is_null();
605
                }
606
                return;
607
            }
608
        }
609
610
690
        this->set_value(columns, frame_end - 1);
611
690
    }
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EE22add_range_single_placeEllllPPKNS_7IColumnE
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EE22add_range_single_placeEllllPPKNS_7IColumnE
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EE22add_range_single_placeEllllPPKNS_7IColumnE
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
571
64
                                int64_t frame_end, const IColumn** columns) {
572
64
        DCHECK_LE(frame_start, frame_end);
573
64
        if ((frame_end <= partition_start) ||
574
64
            (frame_start >= partition_end)) { //beyond or under partition, set null
575
0
            if ((this->has_set_value()) &&
576
0
                (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
577
                // have set value, do nothing, because like rows unbouned preceding and M following
578
                // it's caculated as the cumulative mode, so it's could reuse the previous
579
0
            } else {
580
0
                this->set_is_null();
581
0
            }
582
0
            return;
583
0
        }
584
64
        frame_end = std::min<int64_t>(frame_end, partition_end);
585
586
64
        if constexpr (arg_ignore_null) {
587
64
            frame_start = std::max<int64_t>(frame_start, partition_start);
588
64
            if (columns[0]->is_nullable()) {
589
64
                const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]);
590
                // wants find a not null value in [frame_start, frame_end)
591
                // iff has find: set_value and return directly
592
                // iff not find: the while loop is finished
593
                //     case 1: iff has_set_value, means the previous window have value, could reuse it, so return directly
594
                //     case 2: iff not has_set_value, means there is none value, set it's to NULL
595
105
                while (frame_start < frame_end) {
596
81
                    if (arg_nullable.is_null_at(frame_end - 1)) {
597
41
                        frame_end--;
598
41
                    } else {
599
40
                        this->set_value(columns, frame_end - 1);
600
40
                        return;
601
40
                    }
602
81
                }
603
24
                if (!this->has_set_value()) {
604
9
                    this->set_is_null();
605
9
                }
606
24
                return;
607
64
            }
608
64
        }
609
610
0
        this->set_value(columns, frame_end - 1);
611
64
    }
612
613
199
    static const char* name() { return "last_value"; }
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EE4nameEv
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EE4nameEv
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EE4nameEv
Line
Count
Source
613
54
    static const char* name() { return "last_value"; }
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EE4nameEv
Line
Count
Source
613
132
    static const char* name() { return "last_value"; }
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EE4nameEv
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EE4nameEv
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EE4nameEv
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EE4nameEv
Line
Count
Source
613
13
    static const char* name() { return "last_value"; }
614
};
615
616
template <typename Data, bool = false>
617
struct WindowFunctionNthValueImpl : Data {
618
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
619
232
                                int64_t frame_end, const IColumn** columns) {
620
232
        DCHECK_LE(frame_start, frame_end);
621
232
        int64_t real_frame_start = std::max<int64_t>(frame_start, partition_start);
622
232
        int64_t real_frame_end = std::min<int64_t>(frame_end, partition_end);
623
232
        this->_frame_start_pose =
624
232
                this->_frame_total_rows ? this->_frame_start_pose : real_frame_start;
625
232
        this->_frame_total_rows += real_frame_end - real_frame_start;
626
232
        int64_t offset = assert_cast<const ColumnInt64&, TypeCheckOnRelease::DISABLE>(*columns[1])
627
232
                                 .get_data()[0] -
628
232
                         1;
629
232
        if (offset >= this->_frame_total_rows) {
630
            // offset is beyond the frame, so set null
631
101
            this->set_is_null();
632
101
            return;
633
101
        }
634
131
        this->set_value(columns, offset + this->_frame_start_pose);
635
131
    }
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
_ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
619
232
                                int64_t frame_end, const IColumn** columns) {
620
232
        DCHECK_LE(frame_start, frame_end);
621
232
        int64_t real_frame_start = std::max<int64_t>(frame_start, partition_start);
622
232
        int64_t real_frame_end = std::min<int64_t>(frame_end, partition_end);
623
232
        this->_frame_start_pose =
624
232
                this->_frame_total_rows ? this->_frame_start_pose : real_frame_start;
625
232
        this->_frame_total_rows += real_frame_end - real_frame_start;
626
232
        int64_t offset = assert_cast<const ColumnInt64&, TypeCheckOnRelease::DISABLE>(*columns[1])
627
232
                                 .get_data()[0] -
628
232
                         1;
629
232
        if (offset >= this->_frame_total_rows) {
630
            // offset is beyond the frame, so set null
631
101
            this->set_is_null();
632
101
            return;
633
101
        }
634
131
        this->set_value(columns, offset + this->_frame_start_pose);
635
131
    }
636
637
225
    static const char* name() { return "nth_value"; }
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EE4nameEv
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EE4nameEv
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EE4nameEv
_ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EE4nameEv
Line
Count
Source
637
225
    static const char* name() { return "nth_value"; }
638
};
639
640
template <typename Data>
641
class WindowFunctionData final
642
        : public IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>> {
643
public:
644
    WindowFunctionData(const DataTypes& argument_types_)
645
506
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
646
506
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
645
9
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
646
9
              _argument_type(argument_types_[0]) {}
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
645
1
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
646
1
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
645
39
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
646
39
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
645
99
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
646
99
              _argument_type(argument_types_[0]) {}
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
_ZN5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
645
1
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
646
1
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
645
37
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
646
37
              _argument_type(argument_types_[0]) {}
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
_ZN5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
645
15
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
646
15
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
645
1
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
646
1
              _argument_type(argument_types_[0]) {}
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
_ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
645
117
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
646
117
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
645
84
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
646
84
              _argument_type(argument_types_[0]) {}
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
_ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
645
1
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
646
1
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
645
10
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
646
10
              _argument_type(argument_types_[0]) {}
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
645
25
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
646
25
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
645
58
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
646
58
              _argument_type(argument_types_[0]) {}
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
645
9
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
646
9
              _argument_type(argument_types_[0]) {}
647
648
2.53k
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
648
26
    String get_name() const override { return Data::name(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE8get_nameB5cxx11Ev
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
648
4
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
648
146
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
648
728
    String get_name() const override { return Data::name(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE8get_nameB5cxx11Ev
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
648
4
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
648
148
    String get_name() const override { return Data::name(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE8get_nameB5cxx11Ev
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
648
225
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
648
1
    String get_name() const override { return Data::name(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE8get_nameB5cxx11Ev
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
648
621
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
648
423
    String get_name() const override { return Data::name(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EEEE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EEEE8get_nameB5cxx11Ev
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EEEE8get_nameB5cxx11Ev
Line
Count
Source
648
3
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE8get_nameB5cxx11Ev
Line
Count
Source
648
12
    String get_name() const override { return Data::name(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EEEE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EEEE8get_nameB5cxx11Ev
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
648
54
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
648
131
    String get_name() const override { return Data::name(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEE8get_nameB5cxx11Ev
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEE8get_nameB5cxx11Ev
Line
Count
Source
648
13
    String get_name() const override { return Data::name(); }
649
650
3.04k
    DataTypePtr get_return_type() const override {
651
3.04k
        if constexpr (Data::result_nullable) {
652
2.18k
            return make_nullable(_argument_type);
653
2.18k
        } else {
654
865
            return _argument_type;
655
865
        }
656
3.04k
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
650
35
    DataTypePtr get_return_type() const override {
651
        if constexpr (Data::result_nullable) {
652
            return make_nullable(_argument_type);
653
35
        } else {
654
35
            return _argument_type;
655
35
        }
656
35
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
650
5
    DataTypePtr get_return_type() const override {
651
5
        if constexpr (Data::result_nullable) {
652
5
            return make_nullable(_argument_type);
653
        } else {
654
            return _argument_type;
655
        }
656
5
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE15get_return_typeEv
Line
Count
Source
650
185
    DataTypePtr get_return_type() const override {
651
185
        if constexpr (Data::result_nullable) {
652
185
            return make_nullable(_argument_type);
653
        } else {
654
            return _argument_type;
655
        }
656
185
    }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
650
828
    DataTypePtr get_return_type() const override {
651
        if constexpr (Data::result_nullable) {
652
            return make_nullable(_argument_type);
653
828
        } else {
654
828
            return _argument_type;
655
828
        }
656
828
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
650
5
    DataTypePtr get_return_type() const override {
651
5
        if constexpr (Data::result_nullable) {
652
5
            return make_nullable(_argument_type);
653
        } else {
654
            return _argument_type;
655
        }
656
5
    }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE15get_return_typeEv
Line
Count
Source
650
185
    DataTypePtr get_return_type() const override {
651
185
        if constexpr (Data::result_nullable) {
652
185
            return make_nullable(_argument_type);
653
        } else {
654
            return _argument_type;
655
        }
656
185
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE15get_return_typeEv
Line
Count
Source
650
240
    DataTypePtr get_return_type() const override {
651
240
        if constexpr (Data::result_nullable) {
652
240
            return make_nullable(_argument_type);
653
        } else {
654
            return _argument_type;
655
        }
656
240
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
650
2
    DataTypePtr get_return_type() const override {
651
        if constexpr (Data::result_nullable) {
652
            return make_nullable(_argument_type);
653
2
        } else {
654
2
            return _argument_type;
655
2
        }
656
2
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
650
739
    DataTypePtr get_return_type() const override {
651
739
        if constexpr (Data::result_nullable) {
652
739
            return make_nullable(_argument_type);
653
        } else {
654
            return _argument_type;
655
        }
656
739
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE15get_return_typeEv
Line
Count
Source
650
506
    DataTypePtr get_return_type() const override {
651
506
        if constexpr (Data::result_nullable) {
652
506
            return make_nullable(_argument_type);
653
        } else {
654
            return _argument_type;
655
        }
656
506
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EEEE15get_return_typeEv
Line
Count
Source
650
4
    DataTypePtr get_return_type() const override {
651
4
        if constexpr (Data::result_nullable) {
652
4
            return make_nullable(_argument_type);
653
        } else {
654
            return _argument_type;
655
        }
656
4
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE15get_return_typeEv
Line
Count
Source
650
22
    DataTypePtr get_return_type() const override {
651
22
        if constexpr (Data::result_nullable) {
652
22
            return make_nullable(_argument_type);
653
        } else {
654
            return _argument_type;
655
        }
656
22
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
650
79
    DataTypePtr get_return_type() const override {
651
79
        if constexpr (Data::result_nullable) {
652
79
            return make_nullable(_argument_type);
653
        } else {
654
            return _argument_type;
655
        }
656
79
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE15get_return_typeEv
Line
Count
Source
650
190
    DataTypePtr get_return_type() const override {
651
190
        if constexpr (Data::result_nullable) {
652
190
            return make_nullable(_argument_type);
653
        } else {
654
            return _argument_type;
655
        }
656
190
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEE15get_return_typeEv
Line
Count
Source
650
22
    DataTypePtr get_return_type() const override {
651
22
        if constexpr (Data::result_nullable) {
652
22
            return make_nullable(_argument_type);
653
        } else {
654
            return _argument_type;
655
        }
656
22
    }
657
658
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
659
                                int64_t frame_end, AggregateDataPtr place, const IColumn** columns,
660
4.80k
                                Arena&, UInt8*, UInt8*) const override {
661
4.80k
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
662
4.80k
                                                 frame_end, columns);
663
4.80k
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
660
72
                                Arena&, UInt8*, UInt8*) const override {
661
72
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
662
72
                                                 frame_end, columns);
663
72
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
660
7
                                Arena&, UInt8*, UInt8*) const override {
661
7
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
662
7
                                                 frame_end, columns);
663
7
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
660
433
                                Arena&, UInt8*, UInt8*) const override {
661
433
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
662
433
                                                 frame_end, columns);
663
433
    }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
660
854
                                Arena&, UInt8*, UInt8*) const override {
661
854
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
662
854
                                                 frame_end, columns);
663
854
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
660
4
                                Arena&, UInt8*, UInt8*) const override {
661
4
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
662
4
                                                 frame_end, columns);
663
4
    }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
660
332
                                Arena&, UInt8*, UInt8*) const override {
661
332
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
662
332
                                                 frame_end, columns);
663
332
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
660
232
                                Arena&, UInt8*, UInt8*) const override {
661
232
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
662
232
                                                 frame_end, columns);
663
232
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
660
5
                                Arena&, UInt8*, UInt8*) const override {
661
5
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
662
5
                                                 frame_end, columns);
663
5
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
660
546
                                Arena&, UInt8*, UInt8*) const override {
661
546
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
662
546
                                                 frame_end, columns);
663
546
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
660
1.03k
                                Arena&, UInt8*, UInt8*) const override {
661
1.03k
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
662
1.03k
                                                 frame_end, columns);
663
1.03k
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
660
4
                                Arena&, UInt8*, UInt8*) const override {
661
4
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
662
4
                                                 frame_end, columns);
663
4
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
660
49
                                Arena&, UInt8*, UInt8*) const override {
661
49
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
662
49
                                                 frame_end, columns);
663
49
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
660
446
                                Arena&, UInt8*, UInt8*) const override {
661
446
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
662
446
                                                 frame_end, columns);
663
446
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
660
728
                                Arena&, UInt8*, UInt8*) const override {
661
728
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
662
728
                                                 frame_end, columns);
663
728
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
660
64
                                Arena&, UInt8*, UInt8*) const override {
661
64
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
662
64
                                                 frame_end, columns);
663
64
    }
664
665
2.16k
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE5resetEPc
Line
Count
Source
665
13
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE5resetEPc
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE5resetEPc
Line
Count
Source
665
3
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE5resetEPc
Line
Count
Source
665
117
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE5resetEPc
Line
Count
Source
665
131
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE5resetEPc
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE5resetEPc
Line
Count
Source
665
1
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE5resetEPc
Line
Count
Source
665
57
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE5resetEPc
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE5resetEPc
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE5resetEPc
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE5resetEPc
Line
Count
Source
665
182
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE5resetEPc
Line
Count
Source
665
3
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE5resetEPc
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE5resetEPc
Line
Count
Source
665
310
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE5resetEPc
Line
Count
Source
665
465
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EEEE5resetEPc
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EEEE5resetEPc
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EEEE5resetEPc
Line
Count
Source
665
4
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE5resetEPc
Line
Count
Source
665
34
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EEEE5resetEPc
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EEEE5resetEPc
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EEEE5resetEPc
Line
Count
Source
665
374
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE5resetEPc
Line
Count
Source
665
436
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEE5resetEPc
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEE5resetEPc
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEE5resetEPc
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEE5resetEPc
Line
Count
Source
665
34
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
666
667
5.54k
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
668
5.54k
        this->data(place).insert_result_into(to);
669
5.54k
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
667
59
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
668
59
        this->data(place).insert_result_into(to);
669
59
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
667
4
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
668
4
        this->data(place).insert_result_into(to);
669
4
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
667
318
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
668
318
        this->data(place).insert_result_into(to);
669
318
    }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
667
854
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
668
854
        this->data(place).insert_result_into(to);
669
854
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
667
4
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
668
4
        this->data(place).insert_result_into(to);
669
4
    }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
667
332
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
668
332
        this->data(place).insert_result_into(to);
669
332
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
667
230
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
668
230
        this->data(place).insert_result_into(to);
669
230
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
667
5
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
668
5
        this->data(place).insert_result_into(to);
669
5
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
667
879
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
668
879
        this->data(place).insert_result_into(to);
669
879
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
667
1.28k
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
668
1.28k
        this->data(place).insert_result_into(to);
669
1.28k
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
667
5
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
668
5
        this->data(place).insert_result_into(to);
669
5
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
667
114
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
668
114
        this->data(place).insert_result_into(to);
669
114
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
667
467
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
668
467
        this->data(place).insert_result_into(to);
669
467
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
667
906
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
668
906
        this->data(place).insert_result_into(to);
669
906
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
667
83
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
668
83
        this->data(place).insert_result_into(to);
669
83
    }
670
671
    void add(AggregateDataPtr place, const IColumn** columns, ssize_t row_num,
672
0
             Arena&) const override {
673
0
        throw doris::Exception(Status::FatalError("WindowFunctionLeadLagData do not support add"));
674
0
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
675
0
    void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {
676
0
        throw doris::Exception(
677
0
                Status::FatalError("WindowFunctionLeadLagData do not support merge"));
678
0
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEE5mergeEPcPKcRNS_5ArenaE
679
0
    void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {
680
0
        throw doris::Exception(
681
0
                Status::FatalError("WindowFunctionLeadLagData do not support serialize"));
682
0
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEE9serializeEPKcRNS_14BufferWritableE
683
0
    void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {
684
0
        throw doris::Exception(
685
0
                Status::FatalError("WindowFunctionLeadLagData do not support deserialize"));
686
0
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
687
688
private:
689
    DataTypePtr _argument_type;
690
};
691
692
} // namespace doris
693
694
#include "common/compile_check_end.h"