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