Coverage Report

Created: 2026-10-28 18:14

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
class Arena;
42
class BufferReadable;
43
class BufferWritable;
44
45
struct RowNumberData {
46
    int64_t count = 0;
47
};
48
49
class WindowFunctionRowNumber final
50
        : public IAggregateFunctionDataHelper<RowNumberData, WindowFunctionRowNumber> {
51
public:
52
    WindowFunctionRowNumber(const DataTypes& argument_types_)
53
285
            : IAggregateFunctionDataHelper(argument_types_) {}
54
55
878
    String get_name() const override { return "row_number"; }
56
57
42.5k
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
58
59
0
    void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override {
60
0
        ++data(place).count;
61
0
    }
62
63
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
64
                                int64_t frame_end, AggregateDataPtr place, const IColumn** columns,
65
41.4k
                                Arena&, UInt8*, UInt8*) const override {
66
41.4k
        ++data(place).count;
67
41.4k
    }
68
69
424
    void reset(AggregateDataPtr place) const override {
70
424
        WindowFunctionRowNumber::data(place).count = 0;
71
424
    }
72
73
0
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
74
0
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
75
0
                doris::WindowFunctionRowNumber::data(place).count);
76
0
    }
77
78
877
    bool result_column_could_resize() const override { return true; }
79
80
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
81
41.4k
                                  const size_t start, const size_t end) const override {
82
41.4k
        auto& column = assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to);
83
82.8k
        for (size_t i = start; i < end; ++i) {
84
41.4k
            column.get_data()[i] = (doris::WindowFunctionRowNumber::data(place).count);
85
41.4k
        }
86
41.4k
    }
87
88
0
    void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {}
89
0
    void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {}
90
0
    void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {}
91
};
92
93
struct RankData {
94
    int64_t rank = 0;
95
    int64_t count = 1;
96
    int64_t peer_group_start = -1;
97
};
98
99
class WindowFunctionRank final : public IAggregateFunctionDataHelper<RankData, WindowFunctionRank> {
100
public:
101
    WindowFunctionRank(const DataTypes& argument_types_)
102
223
            : IAggregateFunctionDataHelper(argument_types_) {}
103
104
877
    String get_name() const override { return "rank"; }
105
106
2.31k
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
107
108
0
    void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override {
109
0
        ++data(place).rank;
110
0
    }
111
112
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
113
                                int64_t frame_end, AggregateDataPtr place, const IColumn** columns,
114
1.18k
                                Arena&, UInt8*, UInt8*) const override {
115
1.18k
        int64_t peer_group_count = frame_end - frame_start;
116
1.18k
        if (WindowFunctionRank::data(place).peer_group_start != frame_start) {
117
1.18k
            WindowFunctionRank::data(place).peer_group_start = frame_start;
118
1.18k
            WindowFunctionRank::data(place).rank += WindowFunctionRank::data(place).count;
119
1.18k
        }
120
1.18k
        WindowFunctionRank::data(place).count = peer_group_count;
121
1.18k
    }
122
123
626
    void reset(AggregateDataPtr place) const override {
124
626
        WindowFunctionRank::data(place).rank = 0;
125
626
        WindowFunctionRank::data(place).count = 1;
126
626
        WindowFunctionRank::data(place).peer_group_start = -1;
127
626
    }
128
129
0
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
130
0
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
131
0
                data(place).rank);
132
0
    }
133
134
877
    bool result_column_could_resize() const override { return true; }
135
136
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
137
1.21k
                                  const size_t start, const size_t end) const override {
138
1.21k
        auto& column = assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to);
139
24.4k
        for (size_t i = start; i < end; ++i) {
140
23.2k
            column.get_data()[i] = (doris::WindowFunctionRank::data(place).rank);
141
23.2k
        }
142
1.21k
    }
143
144
0
    void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {}
145
0
    void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {}
146
0
    void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {}
147
};
148
149
struct DenseRankData {
150
    int64_t rank = 0;
151
    int64_t peer_group_start = -1;
152
};
153
154
class WindowFunctionDenseRank final
155
        : public IAggregateFunctionDataHelper<DenseRankData, WindowFunctionDenseRank> {
156
public:
157
    WindowFunctionDenseRank(const DataTypes& argument_types_)
158
59
            : IAggregateFunctionDataHelper(argument_types_) {}
159
160
151
    String get_name() const override { return "dense_rank"; }
161
162
10.4k
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
163
164
0
    void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override {
165
0
        ++data(place).rank;
166
0
    }
167
168
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
169
                                int64_t frame_end, AggregateDataPtr place, const IColumn** columns,
170
10.1k
                                Arena&, UInt8*, UInt8*) const override {
171
10.1k
        if (WindowFunctionDenseRank::data(place).peer_group_start != frame_start) {
172
10.1k
            WindowFunctionDenseRank::data(place).peer_group_start = frame_start;
173
10.1k
            WindowFunctionDenseRank::data(place).rank++;
174
10.1k
        }
175
10.1k
    }
176
177
92
    void reset(AggregateDataPtr place) const override {
178
92
        WindowFunctionDenseRank::data(place).rank = 0;
179
92
        WindowFunctionDenseRank::data(place).peer_group_start = -1;
180
92
    }
181
182
0
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
183
0
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
184
0
                data(place).rank);
185
0
    }
186
187
150
    bool result_column_could_resize() const override { return true; }
188
189
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
190
10.2k
                                  const size_t start, const size_t end) const override {
191
10.2k
        auto& column = assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to);
192
41.7k
        for (size_t i = start; i < end; ++i) {
193
31.5k
            column.get_data()[i] = (doris::WindowFunctionDenseRank::data(place).rank);
194
31.5k
        }
195
10.2k
    }
196
197
0
    void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {}
198
0
    void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {}
199
0
    void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {}
200
};
201
202
struct PercentRankData {
203
    int64_t rank = 0;
204
    int64_t count = 1;
205
    int64_t peer_group_start = -1;
206
    int64_t partition_size = 0;
207
};
208
209
class WindowFunctionPercentRank final
210
        : public IAggregateFunctionDataHelper<PercentRankData, WindowFunctionPercentRank> {
211
private:
212
40.4k
    static double _cal_percent(int64_t rank, int64_t total_rows) {
213
40.4k
        return total_rows <= 1 ? 0.0 : double(rank - 1) * 1.0 / double(total_rows - 1);
214
40.4k
    }
215
216
public:
217
    WindowFunctionPercentRank(const DataTypes& argument_types_)
218
64
            : IAggregateFunctionDataHelper(argument_types_) {}
219
220
152
    String get_name() const override { return "percent_rank"; }
221
222
62
    WindowSpillStrategy window_spill_strategy() const override {
223
62
        return WindowSpillStrategy::PEER_GROUP;
224
62
    }
225
226
62
    WindowSpillPeerFunction window_spill_peer_function() const override {
227
62
        return WindowSpillPeerFunction::PERCENT_RANK;
228
62
    }
229
230
40.5k
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeFloat64>(); }
231
232
0
    void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override {}
233
234
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
235
                                int64_t frame_end, AggregateDataPtr place, const IColumn** columns,
236
40.1k
                                Arena&, UInt8*, UInt8*) const override {
237
40.1k
        int64_t peer_group_count = frame_end - frame_start;
238
40.1k
        if (WindowFunctionPercentRank::data(place).peer_group_start != frame_start) {
239
40.1k
            WindowFunctionPercentRank::data(place).peer_group_start = frame_start;
240
40.1k
            WindowFunctionPercentRank::data(place).rank +=
241
40.1k
                    WindowFunctionPercentRank::data(place).count;
242
            // some variables are partition related, but there is no chance to init them
243
            // when the new partition arrives, so we calculate them every time now.
244
40.1k
            WindowFunctionPercentRank::data(place).partition_size = partition_end - partition_start;
245
40.1k
        }
246
40.1k
        WindowFunctionPercentRank::data(place).count = peer_group_count;
247
40.1k
    }
248
249
59.9k
    void reset(AggregateDataPtr place) const override {
250
59.9k
        WindowFunctionPercentRank::data(place).rank = 0;
251
59.9k
        WindowFunctionPercentRank::data(place).count = 1;
252
59.9k
        WindowFunctionPercentRank::data(place).peer_group_start = -1;
253
59.9k
        WindowFunctionPercentRank::data(place).partition_size = 0;
254
59.9k
    }
255
256
0
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
257
0
        auto percent_rank = _cal_percent(data(place).rank, data(place).partition_size);
258
0
        assert_cast<ColumnFloat64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
259
0
                percent_rank);
260
0
    }
261
262
153
    bool result_column_could_resize() const override { return true; }
263
264
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
265
40.6k
                                  const size_t start, const size_t end) const override {
266
40.6k
        auto& column = assert_cast<ColumnFloat64&, TypeCheckOnRelease::DISABLE>(to);
267
40.6k
        auto percent_rank = _cal_percent(data(place).rank, data(place).partition_size);
268
118k
        for (size_t i = start; i < end; ++i) {
269
77.6k
            column.get_data()[i] = percent_rank;
270
77.6k
        }
271
40.6k
    }
272
273
0
    void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {}
274
0
    void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {}
275
0
    void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {}
276
};
277
278
struct CumeDistData {
279
    int64_t numerator = 0;
280
    int64_t denominator = 0;
281
    int64_t peer_group_start = -1;
282
};
283
284
class WindowFunctionCumeDist final
285
        : public IAggregateFunctionDataHelper<CumeDistData, WindowFunctionCumeDist> {
286
private:
287
    static void check_default(AggregateDataPtr place, int64_t partition_start,
288
39.9k
                              int64_t partition_end) {
289
39.9k
        if (data(place).denominator == 0) {
290
19.8k
            data(place).denominator = partition_end - partition_start;
291
19.8k
        }
292
39.9k
    }
293
294
public:
295
    WindowFunctionCumeDist(const DataTypes& argument_types_)
296
68
            : IAggregateFunctionDataHelper(argument_types_) {}
297
298
140
    String get_name() const override { return "cume_dist"; }
299
300
57
    WindowSpillStrategy window_spill_strategy() const override {
301
57
        return WindowSpillStrategy::PEER_GROUP;
302
57
    }
303
304
57
    WindowSpillPeerFunction window_spill_peer_function() const override {
305
57
        return WindowSpillPeerFunction::CUME_DIST;
306
57
    }
307
308
40.3k
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeFloat64>(); }
309
310
0
    void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override {}
311
312
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
313
                                int64_t frame_end, AggregateDataPtr place, const IColumn** columns,
314
39.9k
                                Arena&, UInt8*, UInt8*) const override {
315
39.9k
        check_default(place, partition_start, partition_end);
316
39.9k
        int64_t peer_group_count = frame_end - frame_start;
317
39.9k
        if (WindowFunctionCumeDist::data(place).peer_group_start != frame_start) {
318
39.9k
            WindowFunctionCumeDist::data(place).peer_group_start = frame_start;
319
39.9k
            WindowFunctionCumeDist::data(place).numerator += peer_group_count;
320
39.9k
        }
321
39.9k
    }
322
323
59.6k
    void reset(AggregateDataPtr place) const override {
324
59.6k
        WindowFunctionCumeDist::data(place).numerator = 0;
325
59.6k
        WindowFunctionCumeDist::data(place).denominator = 0;
326
59.6k
        WindowFunctionCumeDist::data(place).peer_group_start = -1;
327
59.6k
    }
328
329
0
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
330
0
        auto cume_dist = (double)data(place).numerator * 1.0 / (double)data(place).denominator;
331
0
        assert_cast<ColumnFloat64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
332
0
                cume_dist);
333
0
    }
334
335
140
    bool result_column_could_resize() const override { return true; }
336
337
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
338
40.5k
                                  const size_t start, const size_t end) const override {
339
40.5k
        auto& column = assert_cast<ColumnFloat64&, TypeCheckOnRelease::DISABLE>(to);
340
40.5k
        auto cume_dist = (double)data(place).numerator * 1.0 / (double)data(place).denominator;
341
118k
        for (size_t i = start; i < end; ++i) {
342
77.6k
            column.get_data()[i] = cume_dist;
343
77.6k
        }
344
40.5k
    }
345
346
0
    void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {}
347
0
    void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {}
348
0
    void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {}
349
};
350
351
struct NTileData {
352
    int64_t bucket_index = 0;
353
    int64_t rows = 0;
354
};
355
356
class WindowFunctionNTile final
357
        : public IAggregateFunctionDataHelper<NTileData, WindowFunctionNTile>,
358
          UnaryExpression,
359
          NullableAggregateFunction {
360
public:
361
    WindowFunctionNTile(const DataTypes& argument_types_)
362
122
            : IAggregateFunctionDataHelper(argument_types_) {}
363
364
290
    String get_name() const override { return "ntile"; }
365
366
82
    WindowSpillStrategy window_spill_strategy() const override {
367
82
        return WindowSpillStrategy::NTILE;
368
82
    }
369
370
22.8k
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
371
372
0
    void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override {}
373
374
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
375
                                int64_t frame_end, AggregateDataPtr place, const IColumn** columns,
376
22.5k
                                Arena&, UInt8*, UInt8*) const override {
377
        // some variables are partition related, but there is no chance to init them
378
        // when the new partition arrives, so we calculate them every time now.
379
        // Partition = big_bucket_num * big_bucket_size + small_bucket_num * small_bucket_size
380
22.5k
        int64_t row_index = ++WindowFunctionNTile::data(place).rows - 1;
381
22.5k
        int64_t bucket_num = columns[0]->get_int(0);
382
22.5k
        int64_t partition_size = partition_end - partition_start;
383
384
22.5k
        int64_t small_bucket_size = partition_size / bucket_num;
385
22.5k
        int64_t big_bucket_num = partition_size % bucket_num;
386
22.5k
        int64_t first_small_bucket_row_index = big_bucket_num * (small_bucket_size + 1);
387
22.5k
        if (row_index >= first_small_bucket_row_index) {
388
            // small_bucket_size can't be zero
389
15.6k
            WindowFunctionNTile::data(place).bucket_index =
390
15.6k
                    big_bucket_num + 1 +
391
15.6k
                    (row_index - first_small_bucket_row_index) / small_bucket_size;
392
15.6k
        } else {
393
6.87k
            WindowFunctionNTile::data(place).bucket_index = row_index / (small_bucket_size + 1) + 1;
394
6.87k
        }
395
22.5k
    }
396
397
2.09M
    void reset(AggregateDataPtr place) const override { WindowFunctionNTile::data(place).rows = 0; }
398
399
0
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
400
0
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
401
0
                WindowFunctionNTile::data(place).bucket_index);
402
0
    }
403
404
288
    bool result_column_could_resize() const override { return true; }
405
406
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
407
22.5k
                                  const size_t start, const size_t end) const override {
408
22.5k
        auto& column = assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to);
409
45.0k
        for (size_t i = start; i < end; ++i) {
410
22.4k
            column.get_data()[i] = WindowFunctionNTile::data(place).bucket_index;
411
22.4k
        }
412
22.5k
    }
413
414
0
    void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {}
415
0
    void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {}
416
0
    void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {}
417
};
418
419
template <bool result_is_nullable, bool arg_is_nullable>
420
struct FirstLastData : public ReaderFirstAndLastData<result_is_nullable, arg_is_nullable> {
421
public:
422
405
    void set_is_null() { this->_data_value.reset(); }
Unexecuted instantiation: _ZN5doris13FirstLastDataILb0ELb0EE11set_is_nullEv
Unexecuted instantiation: _ZN5doris13FirstLastDataILb0ELb1EE11set_is_nullEv
_ZN5doris13FirstLastDataILb1ELb0EE11set_is_nullEv
Line
Count
Source
422
227
    void set_is_null() { this->_data_value.reset(); }
_ZN5doris13FirstLastDataILb1ELb1EE11set_is_nullEv
Line
Count
Source
422
178
    void set_is_null() { this->_data_value.reset(); }
423
};
424
425
template <bool result_is_nullable, bool arg_is_nullable>
426
struct NthValueData : public FirstLastData<result_is_nullable, arg_is_nullable> {
427
public:
428
284
    void reset() {
429
284
        this->_data_value.reset();
430
284
        this->_has_value = false;
431
284
        this->_frame_start_pose = 0;
432
284
        this->_frame_total_rows = 0;
433
284
    }
Unexecuted instantiation: _ZN5doris12NthValueDataILb0ELb0EE5resetEv
Unexecuted instantiation: _ZN5doris12NthValueDataILb0ELb1EE5resetEv
_ZN5doris12NthValueDataILb1ELb0EE5resetEv
Line
Count
Source
428
54
    void reset() {
429
54
        this->_data_value.reset();
430
54
        this->_has_value = false;
431
54
        this->_frame_start_pose = 0;
432
54
        this->_frame_total_rows = 0;
433
54
    }
_ZN5doris12NthValueDataILb1ELb1EE5resetEv
Line
Count
Source
428
230
    void reset() {
429
230
        this->_data_value.reset();
430
230
        this->_has_value = false;
431
230
        this->_frame_start_pose = 0;
432
230
        this->_frame_total_rows = 0;
433
230
    }
434
435
    int64_t _frame_start_pose = 0;
436
    int64_t _frame_total_rows = 0;
437
};
438
439
template <bool result_is_nullable, bool arg_is_nullable>
440
struct LeadLagData {
441
public:
442
    static constexpr bool result_nullable = result_is_nullable;
443
444
600
    void reset() {
445
600
        _data_value.reset();
446
600
        _is_inited = false;
447
600
        _offset_value = 0;
448
600
    }
_ZN5doris11LeadLagDataILb0ELb0EE5resetEv
Line
Count
Source
444
203
    void reset() {
445
203
        _data_value.reset();
446
203
        _is_inited = false;
447
203
        _offset_value = 0;
448
203
    }
Unexecuted instantiation: _ZN5doris11LeadLagDataILb0ELb1EE5resetEv
_ZN5doris11LeadLagDataILb1ELb0EE5resetEv
Line
Count
Source
444
61
    void reset() {
445
61
        _data_value.reset();
446
61
        _is_inited = false;
447
61
        _offset_value = 0;
448
61
    }
_ZN5doris11LeadLagDataILb1ELb1EE5resetEv
Line
Count
Source
444
336
    void reset() {
445
336
        _data_value.reset();
446
336
        _is_inited = false;
447
336
        _offset_value = 0;
448
336
    }
449
450
16.3k
    void insert_result_into(IColumn& to) const {
451
16.3k
        if constexpr (result_is_nullable) {
452
14.3k
            if (!_data_value.has()) {
453
1.02k
                auto& col = assert_cast<ColumnNullable&, TypeCheckOnRelease::DISABLE>(to);
454
1.02k
                col.insert_default();
455
13.3k
            } else {
456
13.3k
                auto& col = assert_cast<ColumnNullable&, TypeCheckOnRelease::DISABLE>(to);
457
13.3k
                col.get_null_map_data().push_back(0);
458
13.3k
                _data_value.insert_result_into(col.get_nested_column());
459
13.3k
            }
460
14.3k
        } else {
461
1.98k
            _data_value.insert_result_into(to);
462
1.98k
        }
463
16.3k
    }
_ZNK5doris11LeadLagDataILb0ELb0EE18insert_result_intoERNS_7IColumnE
Line
Count
Source
450
1.98k
    void insert_result_into(IColumn& to) const {
451
        if constexpr (result_is_nullable) {
452
            if (!_data_value.has()) {
453
                auto& col = assert_cast<ColumnNullable&, TypeCheckOnRelease::DISABLE>(to);
454
                col.insert_default();
455
            } else {
456
                auto& col = assert_cast<ColumnNullable&, TypeCheckOnRelease::DISABLE>(to);
457
                col.get_null_map_data().push_back(0);
458
                _data_value.insert_result_into(col.get_nested_column());
459
            }
460
1.98k
        } else {
461
1.98k
            _data_value.insert_result_into(to);
462
1.98k
        }
463
1.98k
    }
Unexecuted instantiation: _ZNK5doris11LeadLagDataILb0ELb1EE18insert_result_intoERNS_7IColumnE
_ZNK5doris11LeadLagDataILb1ELb0EE18insert_result_intoERNS_7IColumnE
Line
Count
Source
450
1.47k
    void insert_result_into(IColumn& to) const {
451
1.47k
        if constexpr (result_is_nullable) {
452
1.47k
            if (!_data_value.has()) {
453
106
                auto& col = assert_cast<ColumnNullable&, TypeCheckOnRelease::DISABLE>(to);
454
106
                col.insert_default();
455
1.36k
            } else {
456
1.36k
                auto& col = assert_cast<ColumnNullable&, TypeCheckOnRelease::DISABLE>(to);
457
1.36k
                col.get_null_map_data().push_back(0);
458
1.36k
                _data_value.insert_result_into(col.get_nested_column());
459
1.36k
            }
460
        } else {
461
            _data_value.insert_result_into(to);
462
        }
463
1.47k
    }
_ZNK5doris11LeadLagDataILb1ELb1EE18insert_result_intoERNS_7IColumnE
Line
Count
Source
450
12.8k
    void insert_result_into(IColumn& to) const {
451
12.8k
        if constexpr (result_is_nullable) {
452
12.8k
            if (!_data_value.has()) {
453
921
                auto& col = assert_cast<ColumnNullable&, TypeCheckOnRelease::DISABLE>(to);
454
921
                col.insert_default();
455
11.9k
            } else {
456
11.9k
                auto& col = assert_cast<ColumnNullable&, TypeCheckOnRelease::DISABLE>(to);
457
11.9k
                col.get_null_map_data().push_back(0);
458
11.9k
                _data_value.insert_result_into(col.get_nested_column());
459
11.9k
            }
460
        } else {
461
            _data_value.insert_result_into(to);
462
        }
463
12.8k
    }
464
465
13.4k
    void set_value(const IColumn** columns, size_t pos) {
466
13.4k
        if constexpr (arg_is_nullable) {
467
11.1k
            if (assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(columns[0])
468
11.1k
                        ->is_null_at(pos)) {
469
439
                _data_value.reset();
470
439
                return;
471
439
            }
472
10.7k
            const auto& nullable =
473
10.7k
                    assert_cast<const ColumnNullable&, TypeCheckOnRelease::DISABLE>(*columns[0]);
474
10.7k
            _data_value.set(nullable.get_nested_column(), pos);
475
10.7k
        } else {
476
2.28k
            _data_value.set(*columns[0], pos);
477
2.28k
        }
478
13.4k
    }
_ZN5doris11LeadLagDataILb0ELb0EE9set_valueEPPKNS_7IColumnEm
Line
Count
Source
465
1.25k
    void set_value(const IColumn** columns, size_t pos) {
466
        if constexpr (arg_is_nullable) {
467
            if (assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(columns[0])
468
                        ->is_null_at(pos)) {
469
                _data_value.reset();
470
                return;
471
            }
472
            const auto& nullable =
473
                    assert_cast<const ColumnNullable&, TypeCheckOnRelease::DISABLE>(*columns[0]);
474
            _data_value.set(nullable.get_nested_column(), pos);
475
1.25k
        } else {
476
1.25k
            _data_value.set(*columns[0], pos);
477
1.25k
        }
478
1.25k
    }
Unexecuted instantiation: _ZN5doris11LeadLagDataILb0ELb1EE9set_valueEPPKNS_7IColumnEm
_ZN5doris11LeadLagDataILb1ELb0EE9set_valueEPPKNS_7IColumnEm
Line
Count
Source
465
1.02k
    void set_value(const IColumn** columns, size_t pos) {
466
        if constexpr (arg_is_nullable) {
467
            if (assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(columns[0])
468
                        ->is_null_at(pos)) {
469
                _data_value.reset();
470
                return;
471
            }
472
            const auto& nullable =
473
                    assert_cast<const ColumnNullable&, TypeCheckOnRelease::DISABLE>(*columns[0]);
474
            _data_value.set(nullable.get_nested_column(), pos);
475
1.02k
        } else {
476
1.02k
            _data_value.set(*columns[0], pos);
477
1.02k
        }
478
1.02k
    }
_ZN5doris11LeadLagDataILb1ELb1EE9set_valueEPPKNS_7IColumnEm
Line
Count
Source
465
11.1k
    void set_value(const IColumn** columns, size_t pos) {
466
11.1k
        if constexpr (arg_is_nullable) {
467
11.1k
            if (assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(columns[0])
468
11.1k
                        ->is_null_at(pos)) {
469
439
                _data_value.reset();
470
439
                return;
471
439
            }
472
10.7k
            const auto& nullable =
473
10.7k
                    assert_cast<const ColumnNullable&, TypeCheckOnRelease::DISABLE>(*columns[0]);
474
10.7k
            _data_value.set(nullable.get_nested_column(), pos);
475
        } else {
476
            _data_value.set(*columns[0], pos);
477
        }
478
11.1k
    }
479
480
2.89k
    void set_value_from_default(const IColumn* column, size_t pos) {
481
2.89k
        DCHECK_GE(pos, 0);
482
2.89k
        if (is_column_nullable(*column)) {
483
1.68k
            const auto* nullable_column =
484
1.68k
                    assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(column);
485
1.68k
            if (nullable_column->is_null_at(pos)) {
486
588
                this->_data_value.reset();
487
1.09k
            } else {
488
1.09k
                this->_data_value.set(nullable_column->get_nested_column(), pos);
489
1.09k
            }
490
1.68k
        } else {
491
1.21k
            this->_data_value.set(*column, pos);
492
1.21k
        }
493
2.89k
    }
_ZN5doris11LeadLagDataILb0ELb0EE22set_value_from_defaultEPKNS_7IColumnEm
Line
Count
Source
480
728
    void set_value_from_default(const IColumn* column, size_t pos) {
481
728
        DCHECK_GE(pos, 0);
482
728
        if (is_column_nullable(*column)) {
483
0
            const auto* nullable_column =
484
0
                    assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(column);
485
0
            if (nullable_column->is_null_at(pos)) {
486
0
                this->_data_value.reset();
487
0
            } else {
488
0
                this->_data_value.set(nullable_column->get_nested_column(), pos);
489
0
            }
490
728
        } else {
491
728
            this->_data_value.set(*column, pos);
492
728
        }
493
728
    }
Unexecuted instantiation: _ZN5doris11LeadLagDataILb0ELb1EE22set_value_from_defaultEPKNS_7IColumnEm
_ZN5doris11LeadLagDataILb1ELb0EE22set_value_from_defaultEPKNS_7IColumnEm
Line
Count
Source
480
448
    void set_value_from_default(const IColumn* column, size_t pos) {
481
448
        DCHECK_GE(pos, 0);
482
448
        if (is_column_nullable(*column)) {
483
448
            const auto* nullable_column =
484
448
                    assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(column);
485
448
            if (nullable_column->is_null_at(pos)) {
486
106
                this->_data_value.reset();
487
342
            } else {
488
342
                this->_data_value.set(nullable_column->get_nested_column(), pos);
489
342
            }
490
448
        } else {
491
0
            this->_data_value.set(*column, pos);
492
0
        }
493
448
    }
_ZN5doris11LeadLagDataILb1ELb1EE22set_value_from_defaultEPKNS_7IColumnEm
Line
Count
Source
480
1.72k
    void set_value_from_default(const IColumn* column, size_t pos) {
481
1.72k
        DCHECK_GE(pos, 0);
482
1.72k
        if (is_column_nullable(*column)) {
483
1.23k
            const auto* nullable_column =
484
1.23k
                    assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(column);
485
1.23k
            if (nullable_column->is_null_at(pos)) {
486
482
                this->_data_value.reset();
487
751
            } else {
488
751
                this->_data_value.set(nullable_column->get_nested_column(), pos);
489
751
            }
490
1.23k
        } else {
491
488
            this->_data_value.set(*column, pos);
492
488
        }
493
1.72k
    }
494
495
2.89k
    void set_offset_value(const IColumn* column) {
496
2.89k
        if (!_is_inited) {
497
1.08k
            const auto* column_number =
498
1.08k
                    assert_cast<const ColumnInt64*, TypeCheckOnRelease::DISABLE>(column);
499
1.08k
            _offset_value = column_number->get_data()[0];
500
1.08k
            _is_inited = true;
501
1.08k
        }
502
2.89k
    }
_ZN5doris11LeadLagDataILb0ELb0EE16set_offset_valueEPKNS_7IColumnE
Line
Count
Source
495
728
    void set_offset_value(const IColumn* column) {
496
728
        if (!_is_inited) {
497
387
            const auto* column_number =
498
387
                    assert_cast<const ColumnInt64*, TypeCheckOnRelease::DISABLE>(column);
499
387
            _offset_value = column_number->get_data()[0];
500
387
            _is_inited = true;
501
387
        }
502
728
    }
Unexecuted instantiation: _ZN5doris11LeadLagDataILb0ELb1EE16set_offset_valueEPKNS_7IColumnE
_ZN5doris11LeadLagDataILb1ELb0EE16set_offset_valueEPKNS_7IColumnE
Line
Count
Source
495
448
    void set_offset_value(const IColumn* column) {
496
448
        if (!_is_inited) {
497
122
            const auto* column_number =
498
122
                    assert_cast<const ColumnInt64*, TypeCheckOnRelease::DISABLE>(column);
499
122
            _offset_value = column_number->get_data()[0];
500
122
            _is_inited = true;
501
122
        }
502
448
    }
_ZN5doris11LeadLagDataILb1ELb1EE16set_offset_valueEPKNS_7IColumnE
Line
Count
Source
495
1.72k
    void set_offset_value(const IColumn* column) {
496
1.72k
        if (!_is_inited) {
497
573
            const auto* column_number =
498
573
                    assert_cast<const ColumnInt64*, TypeCheckOnRelease::DISABLE>(column);
499
573
            _offset_value = column_number->get_data()[0];
500
573
            _is_inited = true;
501
573
        }
502
1.72k
    }
503
504
2.89k
    int64_t get_offset_value() const { return _offset_value; }
_ZNK5doris11LeadLagDataILb0ELb0EE16get_offset_valueEv
Line
Count
Source
504
728
    int64_t get_offset_value() const { return _offset_value; }
Unexecuted instantiation: _ZNK5doris11LeadLagDataILb0ELb1EE16get_offset_valueEv
_ZNK5doris11LeadLagDataILb1ELb0EE16get_offset_valueEv
Line
Count
Source
504
448
    int64_t get_offset_value() const { return _offset_value; }
_ZNK5doris11LeadLagDataILb1ELb1EE16get_offset_valueEv
Line
Count
Source
504
1.72k
    int64_t get_offset_value() const { return _offset_value; }
505
506
private:
507
    SingleValueDataColumn _data_value;
508
    bool _is_inited = false;
509
    int64_t _offset_value = 0;
510
};
511
512
template <typename Data, bool = false>
513
struct WindowFunctionLeadImpl : Data {
514
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
515
7.79k
                                int64_t frame_end, const IColumn** columns) {
516
7.79k
        if (frame_end > partition_end) { //output default value, win end is under partition
517
1.33k
            this->set_offset_value(columns[1]);
518
            // eg: lead(column, 10, default_value), column size maybe 3 rows
519
            // offset value 10 is from second argument, pos: 11 is calculated as frame_end
520
1.33k
            auto pos = frame_end - 1 - this->get_offset_value();
521
1.33k
            this->set_value_from_default(columns[2], pos);
522
1.33k
            return;
523
1.33k
        }
524
6.46k
        this->set_value(columns, frame_end - 1);
525
6.46k
    }
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
515
606
                                int64_t frame_end, const IColumn** columns) {
516
606
        if (frame_end > partition_end) { //output default value, win end is under partition
517
223
            this->set_offset_value(columns[1]);
518
            // eg: lead(column, 10, default_value), column size maybe 3 rows
519
            // offset value 10 is from second argument, pos: 11 is calculated as frame_end
520
223
            auto pos = frame_end - 1 - this->get_offset_value();
521
223
            this->set_value_from_default(columns[2], pos);
522
223
            return;
523
223
        }
524
383
        this->set_value(columns, frame_end - 1);
525
383
    }
Unexecuted instantiation: _ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
515
737
                                int64_t frame_end, const IColumn** columns) {
516
737
        if (frame_end > partition_end) { //output default value, win end is under partition
517
224
            this->set_offset_value(columns[1]);
518
            // eg: lead(column, 10, default_value), column size maybe 3 rows
519
            // offset value 10 is from second argument, pos: 11 is calculated as frame_end
520
224
            auto pos = frame_end - 1 - this->get_offset_value();
521
224
            this->set_value_from_default(columns[2], pos);
522
224
            return;
523
224
        }
524
513
        this->set_value(columns, frame_end - 1);
525
513
    }
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
515
6.44k
                                int64_t frame_end, const IColumn** columns) {
516
6.44k
        if (frame_end > partition_end) { //output default value, win end is under partition
517
883
            this->set_offset_value(columns[1]);
518
            // eg: lead(column, 10, default_value), column size maybe 3 rows
519
            // offset value 10 is from second argument, pos: 11 is calculated as frame_end
520
883
            auto pos = frame_end - 1 - this->get_offset_value();
521
883
            this->set_value_from_default(columns[2], pos);
522
883
            return;
523
883
        }
524
5.56k
        this->set_value(columns, frame_end - 1);
525
5.56k
    }
526
527
8.48k
    static const char* name() { return "lead"; }
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EE4nameEv
Line
Count
Source
527
690
    static const char* name() { return "lead"; }
Unexecuted instantiation: _ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EE4nameEv
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EE4nameEv
Line
Count
Source
527
817
    static const char* name() { return "lead"; }
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EE4nameEv
Line
Count
Source
527
6.98k
    static const char* name() { return "lead"; }
528
};
529
530
template <typename Data, bool = false>
531
struct WindowFunctionLagImpl : Data {
532
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
533
8.55k
                                int64_t frame_end, const IColumn** columns) {
534
        // window start is beyond partition
535
8.55k
        if (partition_start >= frame_end) { //[unbound preceding(0), offset preceding(-123)]
536
1.56k
            this->set_offset_value(columns[1]);
537
1.56k
            auto pos = frame_end - 1 + this->get_offset_value();
538
1.56k
            this->set_value_from_default(columns[2], pos);
539
1.56k
            return;
540
1.56k
        }
541
6.98k
        this->set_value(columns, frame_end - 1);
542
6.98k
    }
_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
533
1.37k
                                int64_t frame_end, const IColumn** columns) {
534
        // window start is beyond partition
535
1.37k
        if (partition_start >= frame_end) { //[unbound preceding(0), offset preceding(-123)]
536
505
            this->set_offset_value(columns[1]);
537
505
            auto pos = frame_end - 1 + this->get_offset_value();
538
505
            this->set_value_from_default(columns[2], pos);
539
505
            return;
540
505
        }
541
873
        this->set_value(columns, frame_end - 1);
542
873
    }
Unexecuted instantiation: _ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
533
737
                                int64_t frame_end, const IColumn** columns) {
534
        // window start is beyond partition
535
737
        if (partition_start >= frame_end) { //[unbound preceding(0), offset preceding(-123)]
536
224
            this->set_offset_value(columns[1]);
537
224
            auto pos = frame_end - 1 + this->get_offset_value();
538
224
            this->set_value_from_default(columns[2], pos);
539
224
            return;
540
224
        }
541
513
        this->set_value(columns, frame_end - 1);
542
513
    }
_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
533
6.43k
                                int64_t frame_end, const IColumn** columns) {
534
        // window start is beyond partition
535
6.43k
        if (partition_start >= frame_end) { //[unbound preceding(0), offset preceding(-123)]
536
839
            this->set_offset_value(columns[1]);
537
839
            auto pos = frame_end - 1 + this->get_offset_value();
538
839
            this->set_value_from_default(columns[2], pos);
539
839
            return;
540
839
        }
541
5.59k
        this->set_value(columns, frame_end - 1);
542
5.59k
    }
543
544
9.61k
    static const char* name() { return "lag"; }
_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EE4nameEv
Line
Count
Source
544
1.87k
    static const char* name() { return "lag"; }
Unexecuted instantiation: _ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EE4nameEv
_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EE4nameEv
Line
Count
Source
544
817
    static const char* name() { return "lag"; }
_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EE4nameEv
Line
Count
Source
544
6.92k
    static const char* name() { return "lag"; }
545
};
546
547
template <typename Data, bool arg_ignore_null = false>
548
struct WindowFunctionFirstImpl : Data {
549
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
550
6.14k
                                int64_t frame_end, const IColumn** columns) {
551
        // case 1: (has_set_value() = true && arg_ignore_null = false)
552
        // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false)
553
6.14k
        if ((this->has_set_value()) &&
554
6.14k
            (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
555
5.23k
            return;
556
5.23k
        }
557
6.14k
        DCHECK_LE(frame_start, frame_end);
558
904
        if (frame_start >= partition_end || frame_end <= partition_start) {
559
26
            this->set_is_null();
560
26
            return;
561
26
        }
562
878
        frame_start = std::max<int64_t>(frame_start, partition_start);
563
564
878
        if constexpr (arg_ignore_null) {
565
66
            frame_end = std::min<int64_t>(frame_end, partition_end);
566
66
            if (is_column_nullable(*columns[0])) {
567
44
                const auto& arg_nullable =
568
44
                        assert_cast<const ColumnNullable&, TypeCheckOnRelease::DISABLE>(
569
44
                                *columns[0]);
570
                // the valid range is: [frame_start, frame_end)
571
83
                while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) {
572
39
                    frame_start++;
573
39
                }
574
44
            }
575
66
        }
576
878
        this->set_value(columns, frame_start);
577
878
    }
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
550
5
                                int64_t frame_end, const IColumn** columns) {
551
        // case 1: (has_set_value() = true && arg_ignore_null = false)
552
        // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false)
553
5
        if ((this->has_set_value()) &&
554
5
            (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
555
2
            return;
556
2
        }
557
5
        DCHECK_LE(frame_start, frame_end);
558
3
        if (frame_start >= partition_end || frame_end <= partition_start) {
559
0
            this->set_is_null();
560
0
            return;
561
0
        }
562
3
        frame_start = std::max<int64_t>(frame_start, partition_start);
563
564
        if constexpr (arg_ignore_null) {
565
            frame_end = std::min<int64_t>(frame_end, partition_end);
566
            if (is_column_nullable(*columns[0])) {
567
                const auto& arg_nullable =
568
                        assert_cast<const ColumnNullable&, TypeCheckOnRelease::DISABLE>(
569
                                *columns[0]);
570
                // the valid range is: [frame_start, frame_end)
571
                while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) {
572
                    frame_start++;
573
                }
574
            }
575
        }
576
3
        this->set_value(columns, frame_start);
577
3
    }
Unexecuted instantiation: _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
550
720
                                int64_t frame_end, const IColumn** columns) {
551
        // case 1: (has_set_value() = true && arg_ignore_null = false)
552
        // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false)
553
720
        if ((this->has_set_value()) &&
554
720
            (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
555
398
            return;
556
398
        }
557
720
        DCHECK_LE(frame_start, frame_end);
558
322
        if (frame_start >= partition_end || frame_end <= partition_start) {
559
4
            this->set_is_null();
560
4
            return;
561
4
        }
562
318
        frame_start = std::max<int64_t>(frame_start, partition_start);
563
564
        if constexpr (arg_ignore_null) {
565
            frame_end = std::min<int64_t>(frame_end, partition_end);
566
            if (is_column_nullable(*columns[0])) {
567
                const auto& arg_nullable =
568
                        assert_cast<const ColumnNullable&, TypeCheckOnRelease::DISABLE>(
569
                                *columns[0]);
570
                // the valid range is: [frame_start, frame_end)
571
                while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) {
572
                    frame_start++;
573
                }
574
            }
575
        }
576
318
        this->set_value(columns, frame_start);
577
318
    }
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
550
5.33k
                                int64_t frame_end, const IColumn** columns) {
551
        // case 1: (has_set_value() = true && arg_ignore_null = false)
552
        // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false)
553
5.33k
        if ((this->has_set_value()) &&
554
5.33k
            (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
555
4.82k
            return;
556
4.82k
        }
557
5.33k
        DCHECK_LE(frame_start, frame_end);
558
507
        if (frame_start >= partition_end || frame_end <= partition_start) {
559
16
            this->set_is_null();
560
16
            return;
561
16
        }
562
491
        frame_start = std::max<int64_t>(frame_start, partition_start);
563
564
        if constexpr (arg_ignore_null) {
565
            frame_end = std::min<int64_t>(frame_end, partition_end);
566
            if (is_column_nullable(*columns[0])) {
567
                const auto& arg_nullable =
568
                        assert_cast<const ColumnNullable&, TypeCheckOnRelease::DISABLE>(
569
                                *columns[0]);
570
                // the valid range is: [frame_start, frame_end)
571
                while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) {
572
                    frame_start++;
573
                }
574
            }
575
        }
576
491
        this->set_value(columns, frame_start);
577
491
    }
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
550
22
                                int64_t frame_end, const IColumn** columns) {
551
        // case 1: (has_set_value() = true && arg_ignore_null = false)
552
        // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false)
553
22
        if ((this->has_set_value()) &&
554
22
            (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
555
0
            return;
556
0
        }
557
22
        DCHECK_LE(frame_start, frame_end);
558
22
        if (frame_start >= partition_end || frame_end <= partition_start) {
559
0
            this->set_is_null();
560
0
            return;
561
0
        }
562
22
        frame_start = std::max<int64_t>(frame_start, partition_start);
563
564
22
        if constexpr (arg_ignore_null) {
565
22
            frame_end = std::min<int64_t>(frame_end, partition_end);
566
22
            if (is_column_nullable(*columns[0])) {
567
0
                const auto& arg_nullable =
568
0
                        assert_cast<const ColumnNullable&, TypeCheckOnRelease::DISABLE>(
569
0
                                *columns[0]);
570
                // the valid range is: [frame_start, frame_end)
571
0
                while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) {
572
0
                    frame_start++;
573
0
                }
574
0
            }
575
22
        }
576
22
        this->set_value(columns, frame_start);
577
22
    }
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
550
64
                                int64_t frame_end, const IColumn** columns) {
551
        // case 1: (has_set_value() = true && arg_ignore_null = false)
552
        // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false)
553
64
        if ((this->has_set_value()) &&
554
64
            (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
555
14
            return;
556
14
        }
557
64
        DCHECK_LE(frame_start, frame_end);
558
50
        if (frame_start >= partition_end || frame_end <= partition_start) {
559
6
            this->set_is_null();
560
6
            return;
561
6
        }
562
44
        frame_start = std::max<int64_t>(frame_start, partition_start);
563
564
44
        if constexpr (arg_ignore_null) {
565
44
            frame_end = std::min<int64_t>(frame_end, partition_end);
566
44
            if (is_column_nullable(*columns[0])) {
567
44
                const auto& arg_nullable =
568
44
                        assert_cast<const ColumnNullable&, TypeCheckOnRelease::DISABLE>(
569
44
                                *columns[0]);
570
                // the valid range is: [frame_start, frame_end)
571
83
                while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) {
572
39
                    frame_start++;
573
39
                }
574
44
            }
575
44
        }
576
44
        this->set_value(columns, frame_start);
577
44
    }
578
579
7.25k
    static const char* name() { return "first_value"; }
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EE4nameEv
Line
Count
Source
579
6
    static const char* name() { return "first_value"; }
Unexecuted instantiation: _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EE4nameEv
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EE4nameEv
Line
Count
Source
579
1.31k
    static const char* name() { return "first_value"; }
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EE4nameEv
Line
Count
Source
579
5.79k
    static const char* name() { return "first_value"; }
Unexecuted instantiation: _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EE4nameEv
Unexecuted instantiation: _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EE4nameEv
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EE4nameEv
Line
Count
Source
579
43
    static const char* name() { return "first_value"; }
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EE4nameEv
Line
Count
Source
579
91
    static const char* name() { return "first_value"; }
580
};
581
582
template <typename Data, bool arg_ignore_null = false>
583
struct WindowFunctionLastImpl : Data {
584
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
585
1.28k
                                int64_t frame_end, const IColumn** columns) {
586
1.28k
        DCHECK_LE(frame_start, frame_end);
587
1.28k
        if ((frame_end <= partition_start) ||
588
1.28k
            (frame_start >= partition_end)) { //beyond or under partition, set null
589
257
            if ((this->has_set_value()) &&
590
257
                (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
591
                // have set value, do nothing, because like rows unbouned preceding and M following
592
                // it's caculated as the cumulative mode, so it's could reuse the previous
593
228
            } else {
594
228
                this->set_is_null();
595
228
            }
596
257
            return;
597
257
        }
598
1.02k
        frame_end = std::min<int64_t>(frame_end, partition_end);
599
600
1.02k
        if constexpr (arg_ignore_null) {
601
97
            frame_start = std::max<int64_t>(frame_start, partition_start);
602
97
            if (is_column_nullable(*columns[0])) {
603
79
                const auto& arg_nullable =
604
79
                        assert_cast<const ColumnNullable&, TypeCheckOnRelease::DISABLE>(
605
79
                                *columns[0]);
606
                // wants find a not null value in [frame_start, frame_end)
607
                // iff has find: set_value and return directly
608
                // iff not find: the while loop is finished
609
                //     case 1: iff has_set_value, means the previous window have value, could reuse it, so return directly
610
                //     case 2: iff not has_set_value, means there is none value, set it's to NULL
611
150
                while (frame_start < frame_end) {
612
123
                    if (arg_nullable.is_null_at(frame_end - 1)) {
613
71
                        frame_end--;
614
71
                    } else {
615
52
                        this->set_value(columns, frame_end - 1);
616
52
                        return;
617
52
                    }
618
123
                }
619
27
                if (!this->has_set_value()) {
620
12
                    this->set_is_null();
621
12
                }
622
27
                return;
623
79
            }
624
97
        }
625
626
18
        this->set_value(columns, frame_end - 1);
627
1.02k
    }
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
585
438
                                int64_t frame_end, const IColumn** columns) {
586
438
        DCHECK_LE(frame_start, frame_end);
587
438
        if ((frame_end <= partition_start) ||
588
438
            (frame_start >= partition_end)) { //beyond or under partition, set null
589
216
            if ((this->has_set_value()) &&
590
216
                (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
591
                // have set value, do nothing, because like rows unbouned preceding and M following
592
                // it's caculated as the cumulative mode, so it's could reuse the previous
593
204
            } else {
594
204
                this->set_is_null();
595
204
            }
596
216
            return;
597
216
        }
598
222
        frame_end = std::min<int64_t>(frame_end, partition_end);
599
600
        if constexpr (arg_ignore_null) {
601
            frame_start = std::max<int64_t>(frame_start, partition_start);
602
            if (is_column_nullable(*columns[0])) {
603
                const auto& arg_nullable =
604
                        assert_cast<const ColumnNullable&, TypeCheckOnRelease::DISABLE>(
605
                                *columns[0]);
606
                // wants find a not null value in [frame_start, frame_end)
607
                // iff has find: set_value and return directly
608
                // iff not find: the while loop is finished
609
                //     case 1: iff has_set_value, means the previous window have value, could reuse it, so return directly
610
                //     case 2: iff not has_set_value, means there is none value, set it's to NULL
611
                while (frame_start < frame_end) {
612
                    if (arg_nullable.is_null_at(frame_end - 1)) {
613
                        frame_end--;
614
                    } else {
615
                        this->set_value(columns, frame_end - 1);
616
                        return;
617
                    }
618
                }
619
                if (!this->has_set_value()) {
620
                    this->set_is_null();
621
                }
622
                return;
623
            }
624
        }
625
626
222
        this->set_value(columns, frame_end - 1);
627
222
    }
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
585
749
                                int64_t frame_end, const IColumn** columns) {
586
749
        DCHECK_LE(frame_start, frame_end);
587
749
        if ((frame_end <= partition_start) ||
588
749
            (frame_start >= partition_end)) { //beyond or under partition, set null
589
41
            if ((this->has_set_value()) &&
590
41
                (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
591
                // have set value, do nothing, because like rows unbouned preceding and M following
592
                // it's caculated as the cumulative mode, so it's could reuse the previous
593
24
            } else {
594
24
                this->set_is_null();
595
24
            }
596
41
            return;
597
41
        }
598
708
        frame_end = std::min<int64_t>(frame_end, partition_end);
599
600
        if constexpr (arg_ignore_null) {
601
            frame_start = std::max<int64_t>(frame_start, partition_start);
602
            if (is_column_nullable(*columns[0])) {
603
                const auto& arg_nullable =
604
                        assert_cast<const ColumnNullable&, TypeCheckOnRelease::DISABLE>(
605
                                *columns[0]);
606
                // wants find a not null value in [frame_start, frame_end)
607
                // iff has find: set_value and return directly
608
                // iff not find: the while loop is finished
609
                //     case 1: iff has_set_value, means the previous window have value, could reuse it, so return directly
610
                //     case 2: iff not has_set_value, means there is none value, set it's to NULL
611
                while (frame_start < frame_end) {
612
                    if (arg_nullable.is_null_at(frame_end - 1)) {
613
                        frame_end--;
614
                    } else {
615
                        this->set_value(columns, frame_end - 1);
616
                        return;
617
                    }
618
                }
619
                if (!this->has_set_value()) {
620
                    this->set_is_null();
621
                }
622
                return;
623
            }
624
        }
625
626
708
        this->set_value(columns, frame_end - 1);
627
708
    }
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EE22add_range_single_placeEllllPPKNS_7IColumnE
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EE22add_range_single_placeEllllPPKNS_7IColumnE
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
585
18
                                int64_t frame_end, const IColumn** columns) {
586
18
        DCHECK_LE(frame_start, frame_end);
587
18
        if ((frame_end <= partition_start) ||
588
18
            (frame_start >= partition_end)) { //beyond or under partition, set null
589
0
            if ((this->has_set_value()) &&
590
0
                (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
591
                // have set value, do nothing, because like rows unbouned preceding and M following
592
                // it's caculated as the cumulative mode, so it's could reuse the previous
593
0
            } else {
594
0
                this->set_is_null();
595
0
            }
596
0
            return;
597
0
        }
598
18
        frame_end = std::min<int64_t>(frame_end, partition_end);
599
600
18
        if constexpr (arg_ignore_null) {
601
18
            frame_start = std::max<int64_t>(frame_start, partition_start);
602
18
            if (is_column_nullable(*columns[0])) {
603
0
                const auto& arg_nullable =
604
0
                        assert_cast<const ColumnNullable&, TypeCheckOnRelease::DISABLE>(
605
0
                                *columns[0]);
606
                // wants find a not null value in [frame_start, frame_end)
607
                // iff has find: set_value and return directly
608
                // iff not find: the while loop is finished
609
                //     case 1: iff has_set_value, means the previous window have value, could reuse it, so return directly
610
                //     case 2: iff not has_set_value, means there is none value, set it's to NULL
611
0
                while (frame_start < frame_end) {
612
0
                    if (arg_nullable.is_null_at(frame_end - 1)) {
613
0
                        frame_end--;
614
0
                    } else {
615
0
                        this->set_value(columns, frame_end - 1);
616
0
                        return;
617
0
                    }
618
0
                }
619
0
                if (!this->has_set_value()) {
620
0
                    this->set_is_null();
621
0
                }
622
0
                return;
623
0
            }
624
18
        }
625
626
18
        this->set_value(columns, frame_end - 1);
627
18
    }
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
585
79
                                int64_t frame_end, const IColumn** columns) {
586
79
        DCHECK_LE(frame_start, frame_end);
587
79
        if ((frame_end <= partition_start) ||
588
79
            (frame_start >= partition_end)) { //beyond or under partition, set null
589
0
            if ((this->has_set_value()) &&
590
0
                (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
591
                // have set value, do nothing, because like rows unbouned preceding and M following
592
                // it's caculated as the cumulative mode, so it's could reuse the previous
593
0
            } else {
594
0
                this->set_is_null();
595
0
            }
596
0
            return;
597
0
        }
598
79
        frame_end = std::min<int64_t>(frame_end, partition_end);
599
600
79
        if constexpr (arg_ignore_null) {
601
79
            frame_start = std::max<int64_t>(frame_start, partition_start);
602
79
            if (is_column_nullable(*columns[0])) {
603
79
                const auto& arg_nullable =
604
79
                        assert_cast<const ColumnNullable&, TypeCheckOnRelease::DISABLE>(
605
79
                                *columns[0]);
606
                // wants find a not null value in [frame_start, frame_end)
607
                // iff has find: set_value and return directly
608
                // iff not find: the while loop is finished
609
                //     case 1: iff has_set_value, means the previous window have value, could reuse it, so return directly
610
                //     case 2: iff not has_set_value, means there is none value, set it's to NULL
611
150
                while (frame_start < frame_end) {
612
123
                    if (arg_nullable.is_null_at(frame_end - 1)) {
613
71
                        frame_end--;
614
71
                    } else {
615
52
                        this->set_value(columns, frame_end - 1);
616
52
                        return;
617
52
                    }
618
123
                }
619
27
                if (!this->has_set_value()) {
620
12
                    this->set_is_null();
621
12
                }
622
27
                return;
623
79
            }
624
79
        }
625
626
0
        this->set_value(columns, frame_end - 1);
627
79
    }
628
629
1.79k
    static const char* name() { return "last_value"; }
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EE4nameEv
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EE4nameEv
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EE4nameEv
Line
Count
Source
629
607
    static const char* name() { return "last_value"; }
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EE4nameEv
Line
Count
Source
629
1.04k
    static const char* name() { return "last_value"; }
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EE4nameEv
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EE4nameEv
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EE4nameEv
Line
Count
Source
629
36
    static const char* name() { return "last_value"; }
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EE4nameEv
Line
Count
Source
629
104
    static const char* name() { return "last_value"; }
630
};
631
632
template <typename Data, bool = false>
633
struct WindowFunctionNthValueImpl : Data {
634
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
635
341
                                int64_t frame_end, const IColumn** columns) {
636
341
        DCHECK_LE(frame_start, frame_end);
637
341
        int64_t real_frame_start = std::max<int64_t>(frame_start, partition_start);
638
341
        int64_t real_frame_end = std::min<int64_t>(frame_end, partition_end);
639
341
        this->_frame_start_pose =
640
341
                this->_frame_total_rows ? this->_frame_start_pose : real_frame_start;
641
341
        this->_frame_total_rows += real_frame_end - real_frame_start;
642
341
        int64_t offset = assert_cast<const ColumnInt64&, TypeCheckOnRelease::DISABLE>(*columns[1])
643
341
                                 .get_data()[0];
644
341
        DCHECK_NE(offset, 0);
645
341
        int64_t row_position = offset > 0 ? offset - 1 : this->_frame_total_rows + offset;
646
341
        if (row_position < 0 || row_position >= this->_frame_total_rows) {
647
            // offset is beyond the frame, so set null
648
139
            this->set_is_null();
649
139
            return;
650
139
        }
651
202
        this->set_value(columns, row_position + this->_frame_start_pose);
652
202
    }
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
_ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
635
58
                                int64_t frame_end, const IColumn** columns) {
636
58
        DCHECK_LE(frame_start, frame_end);
637
58
        int64_t real_frame_start = std::max<int64_t>(frame_start, partition_start);
638
58
        int64_t real_frame_end = std::min<int64_t>(frame_end, partition_end);
639
58
        this->_frame_start_pose =
640
58
                this->_frame_total_rows ? this->_frame_start_pose : real_frame_start;
641
58
        this->_frame_total_rows += real_frame_end - real_frame_start;
642
58
        int64_t offset = assert_cast<const ColumnInt64&, TypeCheckOnRelease::DISABLE>(*columns[1])
643
58
                                 .get_data()[0];
644
58
        DCHECK_NE(offset, 0);
645
58
        int64_t row_position = offset > 0 ? offset - 1 : this->_frame_total_rows + offset;
646
58
        if (row_position < 0 || row_position >= this->_frame_total_rows) {
647
            // offset is beyond the frame, so set null
648
19
            this->set_is_null();
649
19
            return;
650
19
        }
651
39
        this->set_value(columns, row_position + this->_frame_start_pose);
652
39
    }
_ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
635
283
                                int64_t frame_end, const IColumn** columns) {
636
283
        DCHECK_LE(frame_start, frame_end);
637
283
        int64_t real_frame_start = std::max<int64_t>(frame_start, partition_start);
638
283
        int64_t real_frame_end = std::min<int64_t>(frame_end, partition_end);
639
283
        this->_frame_start_pose =
640
283
                this->_frame_total_rows ? this->_frame_start_pose : real_frame_start;
641
283
        this->_frame_total_rows += real_frame_end - real_frame_start;
642
283
        int64_t offset = assert_cast<const ColumnInt64&, TypeCheckOnRelease::DISABLE>(*columns[1])
643
283
                                 .get_data()[0];
644
283
        DCHECK_NE(offset, 0);
645
283
        int64_t row_position = offset > 0 ? offset - 1 : this->_frame_total_rows + offset;
646
283
        if (row_position < 0 || row_position >= this->_frame_total_rows) {
647
            // offset is beyond the frame, so set null
648
120
            this->set_is_null();
649
120
            return;
650
120
        }
651
163
        this->set_value(columns, row_position + this->_frame_start_pose);
652
163
    }
653
654
526
    static const char* name() { return "nth_value"; }
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EE4nameEv
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EE4nameEv
_ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EE4nameEv
Line
Count
Source
654
108
    static const char* name() { return "nth_value"; }
_ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EE4nameEv
Line
Count
Source
654
418
    static const char* name() { return "nth_value"; }
655
};
656
657
template <typename Data>
658
class WindowFunctionData final
659
        : public IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>> {
660
public:
661
    WindowFunctionData(const DataTypes& argument_types_)
662
1.46k
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
1.46k
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
662
153
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
153
              _argument_type(argument_types_[0]) {}
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
_ZN5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
662
78
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
78
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
662
248
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
248
              _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
662
42
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
42
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
662
76
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
76
              _argument_type(argument_types_[0]) {}
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
662
18
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
18
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
662
24
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
24
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
662
66
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
66
              _argument_type(argument_types_[0]) {}
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
662
78
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
78
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
662
261
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
261
              _argument_type(argument_types_[0]) {}
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
_ZN5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
662
56
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
56
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
662
62
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
62
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
662
1
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
1
              _argument_type(argument_types_[0]) {}
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
_ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
662
138
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
138
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
662
115
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
115
              _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
662
19
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
19
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
662
25
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
663
25
              _argument_type(argument_types_[0]) {}
664
665
27.6k
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
665
1.87k
    String get_name() const override { return Data::name(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE8get_nameB5cxx11Ev
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
665
817
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
665
6.92k
    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
665
607
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
665
1.04k
    String get_name() const override { return Data::name(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEE8get_nameB5cxx11Ev
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEE8get_nameB5cxx11Ev
Line
Count
Source
665
36
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEE8get_nameB5cxx11Ev
Line
Count
Source
665
104
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
665
690
    String get_name() const override { return Data::name(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE8get_nameB5cxx11Ev
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
665
817
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
665
6.98k
    String get_name() const override { return Data::name(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE8get_nameB5cxx11Ev
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
665
108
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
665
418
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
665
6
    String get_name() const override { return Data::name(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE8get_nameB5cxx11Ev
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
665
1.31k
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
665
5.80k
    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
665
43
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE8get_nameB5cxx11Ev
Line
Count
Source
665
91
    String get_name() const override { return Data::name(); }
666
667
29.1k
    DataTypePtr get_return_type() const override {
668
29.1k
        if constexpr (Data::result_nullable) {
669
26.3k
            return make_nullable(_argument_type);
670
26.3k
        } else {
671
2.79k
            return _argument_type;
672
2.79k
        }
673
29.1k
    }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
667
2.02k
    DataTypePtr get_return_type() const override {
668
        if constexpr (Data::result_nullable) {
669
            return make_nullable(_argument_type);
670
2.02k
        } else {
671
2.02k
            return _argument_type;
672
2.02k
        }
673
2.02k
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
667
894
    DataTypePtr get_return_type() const override {
668
894
        if constexpr (Data::result_nullable) {
669
894
            return make_nullable(_argument_type);
670
        } else {
671
            return _argument_type;
672
        }
673
894
    }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE15get_return_typeEv
Line
Count
Source
667
7.17k
    DataTypePtr get_return_type() const override {
668
7.17k
        if constexpr (Data::result_nullable) {
669
7.17k
            return make_nullable(_argument_type);
670
        } else {
671
            return _argument_type;
672
        }
673
7.17k
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
667
648
    DataTypePtr get_return_type() const override {
668
648
        if constexpr (Data::result_nullable) {
669
648
            return make_nullable(_argument_type);
670
        } else {
671
            return _argument_type;
672
        }
673
648
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE15get_return_typeEv
Line
Count
Source
667
1.14k
    DataTypePtr get_return_type() const override {
668
1.14k
        if constexpr (Data::result_nullable) {
669
1.14k
            return make_nullable(_argument_type);
670
        } else {
671
            return _argument_type;
672
        }
673
1.14k
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEE15get_return_typeEv
Line
Count
Source
667
54
    DataTypePtr get_return_type() const override {
668
54
        if constexpr (Data::result_nullable) {
669
54
            return make_nullable(_argument_type);
670
        } else {
671
            return _argument_type;
672
        }
673
54
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEE15get_return_typeEv
Line
Count
Source
667
133
    DataTypePtr get_return_type() const override {
668
133
        if constexpr (Data::result_nullable) {
669
133
            return make_nullable(_argument_type);
670
        } else {
671
            return _argument_type;
672
        }
673
133
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
667
756
    DataTypePtr get_return_type() const override {
668
        if constexpr (Data::result_nullable) {
669
            return make_nullable(_argument_type);
670
756
        } else {
671
756
            return _argument_type;
672
756
        }
673
756
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
667
894
    DataTypePtr get_return_type() const override {
668
894
        if constexpr (Data::result_nullable) {
669
894
            return make_nullable(_argument_type);
670
        } else {
671
            return _argument_type;
672
        }
673
894
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE15get_return_typeEv
Line
Count
Source
667
7.24k
    DataTypePtr get_return_type() const override {
668
7.24k
        if constexpr (Data::result_nullable) {
669
7.24k
            return make_nullable(_argument_type);
670
        } else {
671
            return _argument_type;
672
        }
673
7.24k
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
667
162
    DataTypePtr get_return_type() const override {
668
162
        if constexpr (Data::result_nullable) {
669
162
            return make_nullable(_argument_type);
670
        } else {
671
            return _argument_type;
672
        }
673
162
    }
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE15get_return_typeEv
Line
Count
Source
667
480
    DataTypePtr get_return_type() const override {
668
480
        if constexpr (Data::result_nullable) {
669
480
            return make_nullable(_argument_type);
670
        } else {
671
            return _argument_type;
672
        }
673
480
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
667
7
    DataTypePtr get_return_type() const override {
668
        if constexpr (Data::result_nullable) {
669
            return make_nullable(_argument_type);
670
7
        } else {
671
7
            return _argument_type;
672
7
        }
673
7
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
667
1.45k
    DataTypePtr get_return_type() const override {
668
1.45k
        if constexpr (Data::result_nullable) {
669
1.45k
            return make_nullable(_argument_type);
670
        } else {
671
            return _argument_type;
672
        }
673
1.45k
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE15get_return_typeEv
Line
Count
Source
667
5.89k
    DataTypePtr get_return_type() const override {
668
5.89k
        if constexpr (Data::result_nullable) {
669
5.89k
            return make_nullable(_argument_type);
670
        } else {
671
            return _argument_type;
672
        }
673
5.89k
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EEEE15get_return_typeEv
Line
Count
Source
667
62
    DataTypePtr get_return_type() const override {
668
62
        if constexpr (Data::result_nullable) {
669
62
            return make_nullable(_argument_type);
670
        } else {
671
            return _argument_type;
672
        }
673
62
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE15get_return_typeEv
Line
Count
Source
667
141
    DataTypePtr get_return_type() const override {
668
141
        if constexpr (Data::result_nullable) {
669
141
            return make_nullable(_argument_type);
670
        } else {
671
            return _argument_type;
672
        }
673
141
    }
674
675
24.1k
    void check_input_columns_type(const IColumn** columns) const override {
676
24.1k
        IAggregateFunction::check_input_columns_type(columns);
677
24.1k
        const auto function_name = get_name();
678
24.1k
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
16.6k
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
16.6k
        }
681
24.1k
    }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
1.37k
    void check_input_columns_type(const IColumn** columns) const override {
676
1.37k
        IAggregateFunction::check_input_columns_type(columns);
677
1.37k
        const auto function_name = get_name();
678
1.37k
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
1.37k
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
1.37k
        }
681
1.37k
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
736
    void check_input_columns_type(const IColumn** columns) const override {
676
736
        IAggregateFunction::check_input_columns_type(columns);
677
736
        const auto function_name = get_name();
678
736
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
736
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
736
        }
681
736
    }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
6.43k
    void check_input_columns_type(const IColumn** columns) const override {
676
6.43k
        IAggregateFunction::check_input_columns_type(columns);
677
6.43k
        const auto function_name = get_name();
678
6.43k
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
6.43k
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
6.43k
        }
681
6.43k
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
438
    void check_input_columns_type(const IColumn** columns) const override {
676
438
        IAggregateFunction::check_input_columns_type(columns);
677
438
        const auto function_name = get_name();
678
438
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
0
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
0
        }
681
438
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
749
    void check_input_columns_type(const IColumn** columns) const override {
676
749
        IAggregateFunction::check_input_columns_type(columns);
677
749
        const auto function_name = get_name();
678
749
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
0
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
0
        }
681
749
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEE24check_input_columns_typeEPPKNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEE24check_input_columns_typeEPPKNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
18
    void check_input_columns_type(const IColumn** columns) const override {
676
18
        IAggregateFunction::check_input_columns_type(columns);
677
18
        const auto function_name = get_name();
678
18
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
0
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
0
        }
681
18
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
79
    void check_input_columns_type(const IColumn** columns) const override {
676
79
        IAggregateFunction::check_input_columns_type(columns);
677
79
        const auto function_name = get_name();
678
79
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
0
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
0
        }
681
79
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
606
    void check_input_columns_type(const IColumn** columns) const override {
676
606
        IAggregateFunction::check_input_columns_type(columns);
677
606
        const auto function_name = get_name();
678
606
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
606
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
606
        }
681
606
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
736
    void check_input_columns_type(const IColumn** columns) const override {
676
736
        IAggregateFunction::check_input_columns_type(columns);
677
736
        const auto function_name = get_name();
678
736
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
736
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
736
        }
681
736
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
6.44k
    void check_input_columns_type(const IColumn** columns) const override {
676
6.44k
        IAggregateFunction::check_input_columns_type(columns);
677
6.44k
        const auto function_name = get_name();
678
6.44k
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
6.44k
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
6.44k
        }
681
6.44k
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
54
    void check_input_columns_type(const IColumn** columns) const override {
676
54
        IAggregateFunction::check_input_columns_type(columns);
677
54
        const auto function_name = get_name();
678
54
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
54
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
54
        }
681
54
    }
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
283
    void check_input_columns_type(const IColumn** columns) const override {
676
283
        IAggregateFunction::check_input_columns_type(columns);
677
283
        const auto function_name = get_name();
678
283
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
283
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
283
        }
681
283
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
5
    void check_input_columns_type(const IColumn** columns) const override {
676
5
        IAggregateFunction::check_input_columns_type(columns);
677
5
        const auto function_name = get_name();
678
5
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
0
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
0
        }
681
5
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
719
    void check_input_columns_type(const IColumn** columns) const override {
676
719
        IAggregateFunction::check_input_columns_type(columns);
677
719
        const auto function_name = get_name();
678
719
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
0
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
0
        }
681
719
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
5.33k
    void check_input_columns_type(const IColumn** columns) const override {
676
5.33k
        IAggregateFunction::check_input_columns_type(columns);
677
5.33k
        const auto function_name = get_name();
678
5.34k
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
0
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
0
        }
681
5.33k
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EEEE24check_input_columns_typeEPPKNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EEEE24check_input_columns_typeEPPKNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
22
    void check_input_columns_type(const IColumn** columns) const override {
676
22
        IAggregateFunction::check_input_columns_type(columns);
677
22
        const auto function_name = get_name();
678
22
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
0
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
0
        }
681
22
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE24check_input_columns_typeEPPKNS_7IColumnE
Line
Count
Source
675
64
    void check_input_columns_type(const IColumn** columns) const override {
676
64
        IAggregateFunction::check_input_columns_type(columns);
677
64
        const auto function_name = get_name();
678
64
        if (function_name == "lead" || function_name == "lag" || function_name == "nth_value") {
679
0
            this->template check_argument_column_type<ColumnInt64>(columns[1]);
680
0
        }
681
64
    }
682
683
    void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start,
684
                                int64_t frame_end, AggregateDataPtr place, const IColumn** columns,
685
24.1k
                                Arena&, UInt8*, UInt8*) const override {
686
24.1k
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
24.1k
                                                 frame_end, columns);
688
24.1k
    }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
685
1.37k
                                Arena&, UInt8*, UInt8*) const override {
686
1.37k
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
1.37k
                                                 frame_end, columns);
688
1.37k
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
685
737
                                Arena&, UInt8*, UInt8*) const override {
686
737
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
737
                                                 frame_end, columns);
688
737
    }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
685
6.43k
                                Arena&, UInt8*, UInt8*) const override {
686
6.43k
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
6.43k
                                                 frame_end, columns);
688
6.43k
    }
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
685
439
                                Arena&, UInt8*, UInt8*) const override {
686
439
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
439
                                                 frame_end, columns);
688
439
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
685
749
                                Arena&, UInt8*, UInt8*) const override {
686
749
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
749
                                                 frame_end, columns);
688
749
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
685
18
                                Arena&, UInt8*, UInt8*) const override {
686
18
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
18
                                                 frame_end, columns);
688
18
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
685
79
                                Arena&, UInt8*, UInt8*) const override {
686
79
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
79
                                                 frame_end, columns);
688
79
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
685
606
                                Arena&, UInt8*, UInt8*) const override {
686
606
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
606
                                                 frame_end, columns);
688
606
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
685
737
                                Arena&, UInt8*, UInt8*) const override {
686
737
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
737
                                                 frame_end, columns);
688
737
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
685
6.44k
                                Arena&, UInt8*, UInt8*) const override {
686
6.44k
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
6.44k
                                                 frame_end, columns);
688
6.44k
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
685
58
                                Arena&, UInt8*, UInt8*) const override {
686
58
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
58
                                                 frame_end, columns);
688
58
    }
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
685
283
                                Arena&, UInt8*, UInt8*) const override {
686
283
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
283
                                                 frame_end, columns);
688
283
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
685
5
                                Arena&, UInt8*, UInt8*) const override {
686
5
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
5
                                                 frame_end, columns);
688
5
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
685
720
                                Arena&, UInt8*, UInt8*) const override {
686
720
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
720
                                                 frame_end, columns);
688
720
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
685
5.34k
                                Arena&, UInt8*, UInt8*) const override {
686
5.34k
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
5.34k
                                                 frame_end, columns);
688
5.34k
    }
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
685
22
                                Arena&, UInt8*, UInt8*) const override {
686
22
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
22
                                                 frame_end, columns);
688
22
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
685
64
                                Arena&, UInt8*, UInt8*) const override {
686
64
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
687
64
                                                 frame_end, columns);
688
64
    }
689
690
2.58k
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE5resetEPc
Line
Count
Source
690
152
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE5resetEPc
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE5resetEPc
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE5resetEPc
Line
Count
Source
690
39
    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
690
359
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE5resetEPc
Line
Count
Source
690
440
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEE5resetEPc
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEE5resetEPc
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEE5resetEPc
Line
Count
Source
690
18
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEE5resetEPc
Line
Count
Source
690
49
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE5resetEPc
Line
Count
Source
690
51
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE5resetEPc
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE5resetEPc
Line
Count
Source
690
61
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE5resetEPc
Line
Count
Source
690
297
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE5resetEPc
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE5resetEPc
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE5resetEPc
Line
Count
Source
690
54
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE5resetEPc
Line
Count
Source
690
230
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE5resetEPc
Line
Count
Source
690
3
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE5resetEPc
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE5resetEPc
Line
Count
Source
690
294
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE5resetEPc
Line
Count
Source
690
467
    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
690
22
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE5resetEPc
Line
Count
Source
690
49
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
691
692
26.8k
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
26.8k
        this->data(place).insert_result_into(to);
694
26.8k
    }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
692
1.37k
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
1.37k
        this->data(place).insert_result_into(to);
694
1.37k
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
692
737
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
737
        this->data(place).insert_result_into(to);
694
737
    }
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
692
6.43k
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
6.43k
        this->data(place).insert_result_into(to);
694
6.43k
    }
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
692
628
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
628
        this->data(place).insert_result_into(to);
694
628
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
692
1.07k
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
1.07k
        this->data(place).insert_result_into(to);
694
1.07k
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
692
180
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
180
        this->data(place).insert_result_into(to);
694
180
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
692
233
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
233
        this->data(place).insert_result_into(to);
694
233
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
692
606
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
606
        this->data(place).insert_result_into(to);
694
606
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
692
737
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
737
        this->data(place).insert_result_into(to);
694
737
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
692
6.44k
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
6.44k
        this->data(place).insert_result_into(to);
694
6.44k
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
692
544
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
544
        this->data(place).insert_result_into(to);
694
544
    }
_ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
692
688
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
688
        this->data(place).insert_result_into(to);
694
688
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
692
5
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
5
        this->data(place).insert_result_into(to);
694
5
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
692
1.05k
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
1.05k
        this->data(place).insert_result_into(to);
694
1.05k
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
692
5.60k
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
5.60k
        this->data(place).insert_result_into(to);
694
5.60k
    }
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
692
185
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
185
        this->data(place).insert_result_into(to);
694
185
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
692
264
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
693
264
        this->data(place).insert_result_into(to);
694
264
    }
695
696
    void add(AggregateDataPtr place, const IColumn** columns, ssize_t row_num,
697
0
             Arena&) const override {
698
0
        throw doris::Exception(Status::FatalError("WindowFunctionLeadLagData do not support add"));
699
0
    }
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_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
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_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
700
0
    void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {
701
0
        throw doris::Exception(
702
0
                Status::FatalError("WindowFunctionLeadLagData do not support merge"));
703
0
    }
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_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
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_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
704
0
    void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {
705
0
        throw doris::Exception(
706
0
                Status::FatalError("WindowFunctionLeadLagData do not support serialize"));
707
0
    }
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_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
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_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
708
0
    void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {
709
0
        throw doris::Exception(
710
0
                Status::FatalError("WindowFunctionLeadLagData do not support deserialize"));
711
0
    }
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_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
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_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
712
713
private:
714
    DataTypePtr _argument_type;
715
};
716
717
} // namespace doris