Coverage Report

Created: 2026-10-09 05:44

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