Coverage Report

Created: 2026-06-01 18:52

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
11
            : IAggregateFunctionDataHelper(argument_types_) {}
54
55
21
    String get_name() const override { return "row_number"; }
56
57
33
    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
1.02k
                                Arena&, UInt8*, UInt8*) const override {
66
1.02k
        ++data(place).count;
67
1.02k
    }
68
69
22
    void reset(AggregateDataPtr place) const override {
70
22
        WindowFunctionRowNumber::data(place).count = 0;
71
22
    }
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
22
    bool result_column_could_resize() const override { return true; }
79
80
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
81
1.02k
                                  const size_t start, const size_t end) const override {
82
1.02k
        auto& column = assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to);
83
2.04k
        for (size_t i = start; i < end; ++i) {
84
1.02k
            column.get_data()[i] = (doris::WindowFunctionRowNumber::data(place).count);
85
1.02k
        }
86
1.02k
    }
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
3
            : IAggregateFunctionDataHelper(argument_types_) {}
103
104
6
    String get_name() const override { return "rank"; }
105
106
9
    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
6
                                Arena&, UInt8*, UInt8*) const override {
115
6
        int64_t peer_group_count = frame_end - frame_start;
116
6
        if (WindowFunctionRank::data(place).peer_group_start != frame_start) {
117
6
            WindowFunctionRank::data(place).peer_group_start = frame_start;
118
6
            WindowFunctionRank::data(place).rank += WindowFunctionRank::data(place).count;
119
6
        }
120
6
        WindowFunctionRank::data(place).count = peer_group_count;
121
6
    }
122
123
6
    void reset(AggregateDataPtr place) const override {
124
6
        WindowFunctionRank::data(place).rank = 0;
125
6
        WindowFunctionRank::data(place).count = 1;
126
6
        WindowFunctionRank::data(place).peer_group_start = -1;
127
6
    }
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
6
    bool result_column_could_resize() const override { return true; }
135
136
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
137
6
                                  const size_t start, const size_t end) const override {
138
6
        auto& column = assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to);
139
40
        for (size_t i = start; i < end; ++i) {
140
34
            column.get_data()[i] = (doris::WindowFunctionRank::data(place).rank);
141
34
        }
142
6
    }
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
2
            : IAggregateFunctionDataHelper(argument_types_) {}
159
160
7
    String get_name() const override { return "dense_rank"; }
161
162
9
    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
2
                                Arena&, UInt8*, UInt8*) const override {
171
2
        if (WindowFunctionDenseRank::data(place).peer_group_start != frame_start) {
172
2
            WindowFunctionDenseRank::data(place).peer_group_start = frame_start;
173
2
            WindowFunctionDenseRank::data(place).rank++;
174
2
        }
175
2
    }
176
177
2
    void reset(AggregateDataPtr place) const override {
178
2
        WindowFunctionDenseRank::data(place).rank = 0;
179
2
        WindowFunctionDenseRank::data(place).peer_group_start = -1;
180
2
    }
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
7
    bool result_column_could_resize() const override { return true; }
188
189
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
190
2
                                  const size_t start, const size_t end) const override {
191
2
        auto& column = assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to);
192
4
        for (size_t i = start; i < end; ++i) {
193
2
            column.get_data()[i] = (doris::WindowFunctionDenseRank::data(place).rank);
194
2
        }
195
2
    }
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
0
    static double _cal_percent(int64_t rank, int64_t total_rows) {
213
0
        return total_rows <= 1 ? 0.0 : double(rank - 1) * 1.0 / double(total_rows - 1);
214
0
    }
215
216
public:
217
    WindowFunctionPercentRank(const DataTypes& argument_types_)
218
0
            : IAggregateFunctionDataHelper(argument_types_) {}
219
220
0
    String get_name() const override { return "percent_rank"; }
221
222
0
    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
0
                                Arena&, UInt8*, UInt8*) const override {
229
0
        int64_t peer_group_count = frame_end - frame_start;
230
0
        if (WindowFunctionPercentRank::data(place).peer_group_start != frame_start) {
231
0
            WindowFunctionPercentRank::data(place).peer_group_start = frame_start;
232
0
            WindowFunctionPercentRank::data(place).rank +=
233
0
                    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
0
            WindowFunctionPercentRank::data(place).partition_size = partition_end - partition_start;
237
0
        }
238
0
        WindowFunctionPercentRank::data(place).count = peer_group_count;
239
0
    }
240
241
0
    void reset(AggregateDataPtr place) const override {
242
0
        WindowFunctionPercentRank::data(place).rank = 0;
243
0
        WindowFunctionPercentRank::data(place).count = 1;
244
0
        WindowFunctionPercentRank::data(place).peer_group_start = -1;
245
0
        WindowFunctionPercentRank::data(place).partition_size = 0;
246
0
    }
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
0
    bool result_column_could_resize() const override { return true; }
255
256
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
257
0
                                  const size_t start, const size_t end) const override {
258
0
        auto& column = assert_cast<ColumnFloat64&, TypeCheckOnRelease::DISABLE>(to);
259
0
        auto percent_rank = _cal_percent(data(place).rank, data(place).partition_size);
260
0
        for (size_t i = start; i < end; ++i) {
261
0
            column.get_data()[i] = percent_rank;
262
0
        }
263
0
    }
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
0
                              int64_t partition_end) {
281
0
        if (data(place).denominator == 0) {
282
0
            data(place).denominator = partition_end - partition_start;
283
0
        }
284
0
    }
285
286
public:
287
    WindowFunctionCumeDist(const DataTypes& argument_types_)
288
0
            : IAggregateFunctionDataHelper(argument_types_) {}
289
290
0
    String get_name() const override { return "cume_dist"; }
291
292
0
    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
0
                                Arena&, UInt8*, UInt8*) const override {
299
0
        check_default(place, partition_start, partition_end);
300
0
        int64_t peer_group_count = frame_end - frame_start;
301
0
        if (WindowFunctionCumeDist::data(place).peer_group_start != frame_start) {
302
0
            WindowFunctionCumeDist::data(place).peer_group_start = frame_start;
303
0
            WindowFunctionCumeDist::data(place).numerator += peer_group_count;
304
0
        }
305
0
    }
306
307
0
    void reset(AggregateDataPtr place) const override {
308
0
        WindowFunctionCumeDist::data(place).numerator = 0;
309
0
        WindowFunctionCumeDist::data(place).denominator = 0;
310
0
        WindowFunctionCumeDist::data(place).peer_group_start = -1;
311
0
    }
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
0
    bool result_column_could_resize() const override { return true; }
320
321
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
322
0
                                  const size_t start, const size_t end) const override {
323
0
        auto& column = assert_cast<ColumnFloat64&, TypeCheckOnRelease::DISABLE>(to);
324
0
        auto cume_dist = (double)data(place).numerator * 1.0 / (double)data(place).denominator;
325
0
        for (size_t i = start; i < end; ++i) {
326
0
            column.get_data()[i] = cume_dist;
327
0
        }
328
0
    }
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
0
            : IAggregateFunctionDataHelper(argument_types_) {}
347
348
0
    String get_name() const override { return "ntile"; }
349
350
0
    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
0
                                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
0
        int64_t row_index = ++WindowFunctionNTile::data(place).rows - 1;
361
0
        int64_t bucket_num = columns[0]->get_int(0);
362
0
        int64_t partition_size = partition_end - partition_start;
363
364
0
        int64_t small_bucket_size = partition_size / bucket_num;
365
0
        int64_t big_bucket_num = partition_size % bucket_num;
366
0
        int64_t first_small_bucket_row_index = big_bucket_num * (small_bucket_size + 1);
367
0
        if (row_index >= first_small_bucket_row_index) {
368
            // small_bucket_size can't be zero
369
0
            WindowFunctionNTile::data(place).bucket_index =
370
0
                    big_bucket_num + 1 +
371
0
                    (row_index - first_small_bucket_row_index) / small_bucket_size;
372
0
        } else {
373
0
            WindowFunctionNTile::data(place).bucket_index = row_index / (small_bucket_size + 1) + 1;
374
0
        }
375
0
    }
376
377
0
    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
0
    bool result_column_could_resize() const override { return true; }
385
386
    void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to,
387
0
                                  const size_t start, const size_t end) const override {
388
0
        auto& column = assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to);
389
0
        for (size_t i = start; i < end; ++i) {
390
0
            column.get_data()[i] = WindowFunctionNTile::data(place).bucket_index;
391
0
        }
392
0
    }
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
61
    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
8
    void set_is_null() { this->_data_value.reset(); }
_ZN5doris13FirstLastDataILb1ELb1EE11set_is_nullEv
Line
Count
Source
403
53
    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
0
    void reset() {
410
0
        this->_data_value.reset();
411
0
        this->_has_value = false;
412
0
        this->_frame_start_pose = 0;
413
0
        this->_frame_total_rows = 0;
414
0
    }
Unexecuted instantiation: _ZN5doris12NthValueDataILb0ELb0EE5resetEv
Unexecuted instantiation: _ZN5doris12NthValueDataILb0ELb1EE5resetEv
Unexecuted instantiation: _ZN5doris12NthValueDataILb1ELb0EE5resetEv
Unexecuted instantiation: _ZN5doris12NthValueDataILb1ELb1EE5resetEv
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
322
    bool is_null() const { return this->_ptr == nullptr; }
Unexecuted instantiation: _ZNK5doris9BaseValueILb0EE7is_nullEv
_ZNK5doris9BaseValueILb1EE7is_nullEv
Line
Count
Source
423
322
    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
194
    StringRef get_value() const { return this->_ptr->get_data_at(this->_offset); }
_ZNK5doris9BaseValueILb0EE9get_valueEv
Line
Count
Source
426
2
    StringRef get_value() const { return this->_ptr->get_data_at(this->_offset); }
_ZNK5doris9BaseValueILb1EE9get_valueEv
Line
Count
Source
426
192
    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
81
    void reset() {
434
81
        _data_value.reset();
435
81
        _is_inited = false;
436
81
        _offset_value = 0;
437
81
    }
_ZN5doris11LeadLagDataILb0ELb0EE5resetEv
Line
Count
Source
433
2
    void reset() {
434
2
        _data_value.reset();
435
2
        _is_inited = false;
436
2
        _offset_value = 0;
437
2
    }
Unexecuted instantiation: _ZN5doris11LeadLagDataILb0ELb1EE5resetEv
Unexecuted instantiation: _ZN5doris11LeadLagDataILb1ELb0EE5resetEv
_ZN5doris11LeadLagDataILb1ELb1EE5resetEv
Line
Count
Source
433
79
    void reset() {
434
79
        _data_value.reset();
435
79
        _is_inited = false;
436
79
        _offset_value = 0;
437
79
    }
438
439
324
    void insert_result_into(IColumn& to) const {
440
324
        if constexpr (result_is_nullable) {
441
322
            if (_data_value.is_null()) {
442
130
                auto& col = assert_cast<ColumnNullable&>(to);
443
130
                col.insert_default();
444
192
            } else {
445
192
                auto& col = assert_cast<ColumnNullable&>(to);
446
192
                StringRef value = _data_value.get_value();
447
192
                col.insert_data(value.data, value.size);
448
192
            }
449
322
        } else {
450
2
            StringRef value = _data_value.get_value();
451
2
            to.insert_data(value.data, value.size);
452
2
        }
453
324
    }
_ZNK5doris11LeadLagDataILb0ELb0EE18insert_result_intoERNS_7IColumnE
Line
Count
Source
439
2
    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
2
        } else {
450
2
            StringRef value = _data_value.get_value();
451
2
            to.insert_data(value.data, value.size);
452
2
        }
453
2
    }
Unexecuted instantiation: _ZNK5doris11LeadLagDataILb0ELb1EE18insert_result_intoERNS_7IColumnE
Unexecuted instantiation: _ZNK5doris11LeadLagDataILb1ELb0EE18insert_result_intoERNS_7IColumnE
_ZNK5doris11LeadLagDataILb1ELb1EE18insert_result_intoERNS_7IColumnE
Line
Count
Source
439
322
    void insert_result_into(IColumn& to) const {
440
322
        if constexpr (result_is_nullable) {
441
322
            if (_data_value.is_null()) {
442
130
                auto& col = assert_cast<ColumnNullable&>(to);
443
130
                col.insert_default();
444
192
            } else {
445
192
                auto& col = assert_cast<ColumnNullable&>(to);
446
192
                StringRef value = _data_value.get_value();
447
192
                col.insert_data(value.data, value.size);
448
192
            }
449
        } else {
450
            StringRef value = _data_value.get_value();
451
            to.insert_data(value.data, value.size);
452
        }
453
322
    }
454
455
234
    void set_value(const IColumn** columns, size_t pos) {
456
234
        if constexpr (arg_is_nullable) {
457
232
            if (assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(columns[0])
458
232
                        ->is_null_at(pos)) {
459
                // ptr == nullptr means nullable
460
1
                _data_value.reset();
461
1
                return;
462
1
            }
463
232
        }
464
        // here ptr is pointer to nullable column or not null column from first
465
231
        _data_value.set_value(columns[0], pos);
466
234
    }
_ZN5doris11LeadLagDataILb0ELb0EE9set_valueEPPKNS_7IColumnEm
Line
Count
Source
455
2
    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
2
        _data_value.set_value(columns[0], pos);
466
2
    }
Unexecuted instantiation: _ZN5doris11LeadLagDataILb0ELb1EE9set_valueEPPKNS_7IColumnEm
Unexecuted instantiation: _ZN5doris11LeadLagDataILb1ELb0EE9set_valueEPPKNS_7IColumnEm
_ZN5doris11LeadLagDataILb1ELb1EE9set_valueEPPKNS_7IColumnEm
Line
Count
Source
455
232
    void set_value(const IColumn** columns, size_t pos) {
456
232
        if constexpr (arg_is_nullable) {
457
232
            if (assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(columns[0])
458
232
                        ->is_null_at(pos)) {
459
                // ptr == nullptr means nullable
460
1
                _data_value.reset();
461
1
                return;
462
1
            }
463
232
        }
464
        // here ptr is pointer to nullable column or not null column from first
465
231
        _data_value.set_value(columns[0], pos);
466
232
    }
467
468
144
    void set_value_from_default(const IColumn* column, size_t pos) {
469
144
        DCHECK_GE(pos, 0);
470
144
        if (is_column_nullable(*column)) {
471
134
            const auto* nullable_column =
472
134
                    assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(column);
473
134
            if (nullable_column->is_null_at(pos)) {
474
129
                this->_data_value.reset();
475
129
            } else {
476
5
                this->_data_value.set_value(nullable_column->get_nested_column_ptr().get(), pos);
477
5
            }
478
134
        } else {
479
10
            this->_data_value.set_value(column, pos);
480
10
        }
481
144
    }
_ZN5doris11LeadLagDataILb0ELb0EE22set_value_from_defaultEPKNS_7IColumnEm
Line
Count
Source
468
2
    void set_value_from_default(const IColumn* column, size_t pos) {
469
2
        DCHECK_GE(pos, 0);
470
2
        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
2
        } else {
479
2
            this->_data_value.set_value(column, pos);
480
2
        }
481
2
    }
Unexecuted instantiation: _ZN5doris11LeadLagDataILb0ELb1EE22set_value_from_defaultEPKNS_7IColumnEm
Unexecuted instantiation: _ZN5doris11LeadLagDataILb1ELb0EE22set_value_from_defaultEPKNS_7IColumnEm
_ZN5doris11LeadLagDataILb1ELb1EE22set_value_from_defaultEPKNS_7IColumnEm
Line
Count
Source
468
142
    void set_value_from_default(const IColumn* column, size_t pos) {
469
142
        DCHECK_GE(pos, 0);
470
142
        if (is_column_nullable(*column)) {
471
134
            const auto* nullable_column =
472
134
                    assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(column);
473
134
            if (nullable_column->is_null_at(pos)) {
474
129
                this->_data_value.reset();
475
129
            } else {
476
5
                this->_data_value.set_value(nullable_column->get_nested_column_ptr().get(), pos);
477
5
            }
478
134
        } else {
479
8
            this->_data_value.set_value(column, pos);
480
8
        }
481
142
    }
482
483
144
    void set_offset_value(const IColumn* column) {
484
144
        if (!_is_inited) {
485
112
            const auto* column_number = assert_cast<const ColumnInt64*>(column);
486
112
            _offset_value = column_number->get_data()[0];
487
112
            _is_inited = true;
488
112
        }
489
144
    }
_ZN5doris11LeadLagDataILb0ELb0EE16set_offset_valueEPKNS_7IColumnE
Line
Count
Source
483
2
    void set_offset_value(const IColumn* column) {
484
2
        if (!_is_inited) {
485
2
            const auto* column_number = assert_cast<const ColumnInt64*>(column);
486
2
            _offset_value = column_number->get_data()[0];
487
2
            _is_inited = true;
488
2
        }
489
2
    }
Unexecuted instantiation: _ZN5doris11LeadLagDataILb0ELb1EE16set_offset_valueEPKNS_7IColumnE
Unexecuted instantiation: _ZN5doris11LeadLagDataILb1ELb0EE16set_offset_valueEPKNS_7IColumnE
_ZN5doris11LeadLagDataILb1ELb1EE16set_offset_valueEPKNS_7IColumnE
Line
Count
Source
483
142
    void set_offset_value(const IColumn* column) {
484
142
        if (!_is_inited) {
485
110
            const auto* column_number = assert_cast<const ColumnInt64*>(column);
486
110
            _offset_value = column_number->get_data()[0];
487
110
            _is_inited = true;
488
110
        }
489
142
    }
490
491
144
    int64_t get_offset_value() const { return _offset_value; }
_ZNK5doris11LeadLagDataILb0ELb0EE16get_offset_valueEv
Line
Count
Source
491
2
    int64_t get_offset_value() const { return _offset_value; }
Unexecuted instantiation: _ZNK5doris11LeadLagDataILb0ELb1EE16get_offset_valueEv
Unexecuted instantiation: _ZNK5doris11LeadLagDataILb1ELb0EE16get_offset_valueEv
_ZNK5doris11LeadLagDataILb1ELb1EE16get_offset_valueEv
Line
Count
Source
491
142
    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
203
                                int64_t frame_end, const IColumn** columns) {
503
203
        if (frame_end > partition_end) { //output default value, win end is under partition
504
70
            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
70
            auto pos = frame_end - 1 - this->get_offset_value();
508
70
            this->set_value_from_default(columns[2], pos);
509
70
            return;
510
70
        }
511
133
        this->set_value(columns, frame_end - 1);
512
133
    }
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
502
4
                                int64_t frame_end, const IColumn** columns) {
503
4
        if (frame_end > partition_end) { //output default value, win end is under partition
504
2
            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
2
            auto pos = frame_end - 1 - this->get_offset_value();
508
2
            this->set_value_from_default(columns[2], pos);
509
2
            return;
510
2
        }
511
2
        this->set_value(columns, frame_end - 1);
512
2
    }
Unexecuted instantiation: _ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Unexecuted instantiation: _ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
502
199
                                int64_t frame_end, const IColumn** columns) {
503
199
        if (frame_end > partition_end) { //output default value, win end is under partition
504
68
            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
68
            auto pos = frame_end - 1 - this->get_offset_value();
508
68
            this->set_value_from_default(columns[2], pos);
509
68
            return;
510
68
        }
511
131
        this->set_value(columns, frame_end - 1);
512
131
    }
513
514
155
    static const char* name() { return "lead"; }
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EE4nameEv
Line
Count
Source
514
23
    static const char* name() { return "lead"; }
Unexecuted instantiation: _ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EE4nameEv
Unexecuted instantiation: _ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EE4nameEv
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EE4nameEv
Line
Count
Source
514
132
    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
175
                                int64_t frame_end, const IColumn** columns) {
521
        // window start is beyond partition
522
175
        if (partition_start >= frame_end) { //[unbound preceding(0), offset preceding(-123)]
523
74
            this->set_offset_value(columns[1]);
524
74
            auto pos = frame_end - 1 + this->get_offset_value();
525
74
            this->set_value_from_default(columns[2], pos);
526
74
            return;
527
74
        }
528
101
        this->set_value(columns, frame_end - 1);
529
101
    }
Unexecuted instantiation: _ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Unexecuted instantiation: _ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Unexecuted instantiation: _ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
520
175
                                int64_t frame_end, const IColumn** columns) {
521
        // window start is beyond partition
522
175
        if (partition_start >= frame_end) { //[unbound preceding(0), offset preceding(-123)]
523
74
            this->set_offset_value(columns[1]);
524
74
            auto pos = frame_end - 1 + this->get_offset_value();
525
74
            this->set_value_from_default(columns[2], pos);
526
74
            return;
527
74
        }
528
101
        this->set_value(columns, frame_end - 1);
529
101
    }
530
531
137
    static const char* name() { return "lag"; }
Unexecuted instantiation: _ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EE4nameEv
Unexecuted instantiation: _ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EE4nameEv
Unexecuted instantiation: _ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EE4nameEv
_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EE4nameEv
Line
Count
Source
531
137
    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
254
                                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
254
        if ((this->has_set_value()) &&
541
254
            (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
542
84
            return;
543
84
        }
544
254
        DCHECK_LE(frame_start, frame_end);
545
170
        if (frame_start >= partition_end || frame_end <= partition_start) {
546
26
            this->set_is_null();
547
26
            return;
548
26
        }
549
144
        frame_start = std::max<int64_t>(frame_start, partition_start);
550
551
144
        if constexpr (arg_ignore_null) {
552
28
            frame_end = std::min<int64_t>(frame_end, partition_end);
553
28
            if (columns[0]->is_nullable()) {
554
24
                const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]);
555
                // the valid range is: [frame_start, frame_end)
556
33
                while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) {
557
9
                    frame_start++;
558
9
                }
559
24
            }
560
28
        }
561
144
        this->set_value(columns, frame_start);
562
144
    }
_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
15
                                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
15
        if ((this->has_set_value()) &&
541
15
            (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
542
2
            return;
543
2
        }
544
15
        DCHECK_LE(frame_start, frame_end);
545
13
        if (frame_start >= partition_end || frame_end <= partition_start) {
546
4
            this->set_is_null();
547
4
            return;
548
4
        }
549
9
        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
9
        this->set_value(columns, frame_start);
562
9
    }
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
537
186
                                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
186
        if ((this->has_set_value()) &&
541
186
            (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
542
66
            return;
543
66
        }
544
186
        DCHECK_LE(frame_start, frame_end);
545
120
        if (frame_start >= partition_end || frame_end <= partition_start) {
546
16
            this->set_is_null();
547
16
            return;
548
16
        }
549
104
        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
104
        this->set_value(columns, frame_start);
562
104
    }
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
44
                                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
44
        if ((this->has_set_value()) &&
541
44
            (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) {
542
14
            return;
543
14
        }
544
44
        DCHECK_LE(frame_start, frame_end);
545
30
        if (frame_start >= partition_end || frame_end <= partition_start) {
546
6
            this->set_is_null();
547
6
            return;
548
6
        }
549
24
        frame_start = std::max<int64_t>(frame_start, partition_start);
550
551
24
        if constexpr (arg_ignore_null) {
552
24
            frame_end = std::min<int64_t>(frame_end, partition_end);
553
24
            if (columns[0]->is_nullable()) {
554
24
                const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]);
555
                // the valid range is: [frame_start, frame_end)
556
33
                while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) {
557
9
                    frame_start++;
558
9
                }
559
24
            }
560
24
        }
561
24
        this->set_value(columns, frame_start);
562
24
    }
563
564
124
    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
15
    static const char* name() { return "first_value"; }
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EE4nameEv
Line
Count
Source
564
94
    static const char* name() { return "first_value"; }
Unexecuted instantiation: _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EE4nameEv
Unexecuted instantiation: _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EE4nameEv
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EE4nameEv
Line
Count
Source
564
5
    static const char* name() { return "first_value"; }
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EE4nameEv
Line
Count
Source
564
9
    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
195
                                int64_t frame_end, const IColumn** columns) {
571
195
        DCHECK_LE(frame_start, frame_end);
572
195
        if ((frame_end <= partition_start) ||
573
195
            (frame_start >= partition_end)) { //beyond or under partition, set null
574
26
            if ((this->has_set_value()) &&
575
26
                (!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
26
            } else {
579
26
                this->set_is_null();
580
26
            }
581
26
            return;
582
26
        }
583
169
        frame_end = std::min<int64_t>(frame_end, partition_end);
584
585
169
        if constexpr (arg_ignore_null) {
586
63
            frame_start = std::max<int64_t>(frame_start, partition_start);
587
63
            if (columns[0]->is_nullable()) {
588
63
                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
104
                while (frame_start < frame_end) {
595
80
                    if (arg_nullable.is_null_at(frame_end - 1)) {
596
41
                        frame_end--;
597
41
                    } else {
598
39
                        this->set_value(columns, frame_end - 1);
599
39
                        return;
600
39
                    }
601
80
                }
602
24
                if (!this->has_set_value()) {
603
9
                    this->set_is_null();
604
9
                }
605
24
                return;
606
63
            }
607
63
        }
608
609
0
        this->set_value(columns, frame_end - 1);
610
169
    }
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
5
                                int64_t frame_end, const IColumn** columns) {
571
5
        DCHECK_LE(frame_start, frame_end);
572
5
        if ((frame_end <= partition_start) ||
573
5
            (frame_start >= partition_end)) { //beyond or under partition, set null
574
4
            if ((this->has_set_value()) &&
575
4
                (!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
4
            } else {
579
4
                this->set_is_null();
580
4
            }
581
4
            return;
582
4
        }
583
1
        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
1
        this->set_value(columns, frame_end - 1);
610
1
    }
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Line
Count
Source
570
127
                                int64_t frame_end, const IColumn** columns) {
571
127
        DCHECK_LE(frame_start, frame_end);
572
127
        if ((frame_end <= partition_start) ||
573
127
            (frame_start >= partition_end)) { //beyond or under partition, set null
574
22
            if ((this->has_set_value()) &&
575
22
                (!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
22
            } else {
579
22
                this->set_is_null();
580
22
            }
581
22
            return;
582
22
        }
583
105
        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
105
        this->set_value(columns, frame_end - 1);
610
105
    }
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
63
                                int64_t frame_end, const IColumn** columns) {
571
63
        DCHECK_LE(frame_start, frame_end);
572
63
        if ((frame_end <= partition_start) ||
573
63
            (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
63
        frame_end = std::min<int64_t>(frame_end, partition_end);
584
585
63
        if constexpr (arg_ignore_null) {
586
63
            frame_start = std::max<int64_t>(frame_start, partition_start);
587
63
            if (columns[0]->is_nullable()) {
588
63
                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
104
                while (frame_start < frame_end) {
595
80
                    if (arg_nullable.is_null_at(frame_end - 1)) {
596
41
                        frame_end--;
597
41
                    } else {
598
39
                        this->set_value(columns, frame_end - 1);
599
39
                        return;
600
39
                    }
601
80
                }
602
24
                if (!this->has_set_value()) {
603
9
                    this->set_is_null();
604
9
                }
605
24
                return;
606
63
            }
607
63
        }
608
609
0
        this->set_value(columns, frame_end - 1);
610
63
    }
611
612
112
    static const char* name() { return "last_value"; }
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EE4nameEv
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EE4nameEv
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EE4nameEv
Line
Count
Source
612
5
    static const char* name() { return "last_value"; }
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EE4nameEv
Line
Count
Source
612
95
    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
12
    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
0
                                int64_t frame_end, const IColumn** columns) {
619
0
        DCHECK_LE(frame_start, frame_end);
620
0
        int64_t real_frame_start = std::max<int64_t>(frame_start, partition_start);
621
0
        int64_t real_frame_end = std::min<int64_t>(frame_end, partition_end);
622
0
        this->_frame_start_pose =
623
0
                this->_frame_total_rows ? this->_frame_start_pose : real_frame_start;
624
0
        this->_frame_total_rows += real_frame_end - real_frame_start;
625
0
        int64_t offset = assert_cast<const ColumnInt64&, TypeCheckOnRelease::DISABLE>(*columns[1])
626
0
                                 .get_data()[0] -
627
0
                         1;
628
0
        if (offset >= this->_frame_total_rows) {
629
            // offset is beyond the frame, so set null
630
0
            this->set_is_null();
631
0
            return;
632
0
        }
633
0
        this->set_value(columns, offset + this->_frame_start_pose);
634
0
    }
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE
635
636
0
    static const char* name() { return "nth_value"; }
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EE4nameEv
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EE4nameEv
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EE4nameEv
Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EE4nameEv
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
86
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
645
86
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
644
2
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
645
2
              _argument_type(argument_types_[0]) {}
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
644
18
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
645
18
              _argument_type(argument_types_[0]) {}
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
_ZN5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
644
17
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
645
17
              _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
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
_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
3
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
645
3
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
644
15
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
645
15
              _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
5
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
645
5
              _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
1
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
645
1
              _argument_type(argument_types_[0]) {}
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
644
15
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
645
15
              _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
8
            : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_),
645
8
              _argument_type(argument_types_[0]) {}
646
647
527
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
647
23
    String get_name() const override { return Data::name(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE8get_nameB5cxx11Ev
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
647
132
    String get_name() const override { return Data::name(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE8get_nameB5cxx11Ev
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
647
136
    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
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev
_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
15
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
647
94
    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
5
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE8get_nameB5cxx11Ev
Line
Count
Source
647
9
    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
5
    String get_name() const override { return Data::name(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
647
95
    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
12
    String get_name() const override { return Data::name(); }
648
649
615
    DataTypePtr get_return_type() const override {
650
615
        if constexpr (Data::result_nullable) {
651
588
            return make_nullable(_argument_type);
652
588
        } else {
653
27
            return _argument_type;
654
27
        }
655
615
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
649
25
    DataTypePtr get_return_type() const override {
650
        if constexpr (Data::result_nullable) {
651
            return make_nullable(_argument_type);
652
25
        } else {
653
25
            return _argument_type;
654
25
        }
655
25
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE15get_return_typeEv
Line
Count
Source
649
151
    DataTypePtr get_return_type() const override {
650
151
        if constexpr (Data::result_nullable) {
651
151
            return make_nullable(_argument_type);
652
        } else {
653
            return _argument_type;
654
        }
655
151
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE15get_return_typeEv
Line
Count
Source
649
154
    DataTypePtr get_return_type() const override {
650
154
        if constexpr (Data::result_nullable) {
651
154
            return make_nullable(_argument_type);
652
        } else {
653
            return _argument_type;
654
        }
655
154
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE15get_return_typeEv
_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
18
    DataTypePtr get_return_type() const override {
650
18
        if constexpr (Data::result_nullable) {
651
18
            return make_nullable(_argument_type);
652
        } else {
653
            return _argument_type;
654
        }
655
18
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE15get_return_typeEv
Line
Count
Source
649
109
    DataTypePtr get_return_type() const override {
650
109
        if constexpr (Data::result_nullable) {
651
109
            return make_nullable(_argument_type);
652
        } else {
653
            return _argument_type;
654
        }
655
109
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EEEE15get_return_typeEv
Line
Count
Source
649
6
    DataTypePtr get_return_type() const override {
650
6
        if constexpr (Data::result_nullable) {
651
6
            return make_nullable(_argument_type);
652
        } else {
653
            return _argument_type;
654
        }
655
6
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE15get_return_typeEv
Line
Count
Source
649
14
    DataTypePtr get_return_type() const override {
650
14
        if constexpr (Data::result_nullable) {
651
14
            return make_nullable(_argument_type);
652
        } else {
653
            return _argument_type;
654
        }
655
14
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EEEE15get_return_typeEv
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EEEE15get_return_typeEv
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EEEE15get_return_typeEv
Line
Count
Source
649
6
    DataTypePtr get_return_type() const override {
650
6
        if constexpr (Data::result_nullable) {
651
6
            return make_nullable(_argument_type);
652
        } else {
653
            return _argument_type;
654
        }
655
6
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE15get_return_typeEv
Line
Count
Source
649
110
    DataTypePtr get_return_type() const override {
650
110
        if constexpr (Data::result_nullable) {
651
110
            return make_nullable(_argument_type);
652
        } else {
653
            return _argument_type;
654
        }
655
110
    }
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
20
    DataTypePtr get_return_type() const override {
650
20
        if constexpr (Data::result_nullable) {
651
20
            return make_nullable(_argument_type);
652
        } else {
653
            return _argument_type;
654
        }
655
20
    }
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
827
                                Arena&, UInt8*, UInt8*) const override {
660
827
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
661
827
                                                 frame_end, columns);
662
827
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE22add_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
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
659
199
                                Arena&, UInt8*, UInt8*) const override {
660
199
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
661
199
                                                 frame_end, columns);
662
199
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
659
175
                                Arena&, UInt8*, UInt8*) const override {
660
175
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
661
175
                                                 frame_end, columns);
662
175
    }
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_
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
_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
15
                                Arena&, UInt8*, UInt8*) const override {
660
15
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
661
15
                                                 frame_end, columns);
662
15
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
659
186
                                Arena&, UInt8*, UInt8*) const override {
660
186
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
661
186
                                                 frame_end, columns);
662
186
    }
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
44
                                Arena&, UInt8*, UInt8*) const override {
660
44
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
661
44
                                                 frame_end, columns);
662
44
    }
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
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
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_
Line
Count
Source
659
127
                                Arena&, UInt8*, UInt8*) const override {
660
127
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
661
127
                                                 frame_end, columns);
662
127
    }
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
63
                                Arena&, UInt8*, UInt8*) const override {
660
63
        this->data(place).add_range_single_place(partition_start, partition_end, frame_start,
661
63
                                                 frame_end, columns);
662
63
    }
663
664
470
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE5resetEPc
Line
Count
Source
664
2
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE5resetEPc
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE5resetEPc
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE5resetEPc
Line
Count
Source
664
54
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE5resetEPc
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE5resetEPc
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE5resetEPc
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE5resetEPc
Line
Count
Source
664
25
    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
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE5resetEPc
_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
11
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE5resetEPc
Line
Count
Source
664
148
    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
29
    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
7
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE5resetEPc
Line
Count
Source
664
154
    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
33
    void reset(AggregateDataPtr place) const override { this->data(place).reset(); }
665
666
810
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
667
810
        this->data(place).insert_result_into(to);
668
810
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
666
2
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
667
2
        this->data(place).insert_result_into(to);
668
2
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
666
147
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
667
147
        this->data(place).insert_result_into(to);
668
147
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
666
175
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
667
175
        this->data(place).insert_result_into(to);
668
175
    }
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
_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
15
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
667
15
        this->data(place).insert_result_into(to);
668
15
    }
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
666
187
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
667
187
        this->data(place).insert_result_into(to);
668
187
    }
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
44
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
667
44
        this->data(place).insert_result_into(to);
668
44
    }
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
5
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
667
5
        this->data(place).insert_result_into(to);
668
5
    }
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
666
156
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
667
156
        this->data(place).insert_result_into(to);
668
156
    }
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
69
    void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override {
667
69
        this->data(place).insert_result_into(to);
668
69
    }
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