Coverage Report

Created: 2026-04-10 18:35

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