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 | | #include "common/compile_check_begin.h" |
42 | | class Arena; |
43 | | class BufferReadable; |
44 | | class BufferWritable; |
45 | | |
46 | | struct RowNumberData { |
47 | | int64_t count = 0; |
48 | | }; |
49 | | |
50 | | class WindowFunctionRowNumber final |
51 | | : public IAggregateFunctionDataHelper<RowNumberData, WindowFunctionRowNumber> { |
52 | | public: |
53 | | WindowFunctionRowNumber(const DataTypes& argument_types_) |
54 | 129 | : IAggregateFunctionDataHelper(argument_types_) {} |
55 | | |
56 | 500 | String get_name() const override { return "row_number"; } |
57 | | |
58 | 630 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
59 | | |
60 | 0 | void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override { |
61 | 0 | ++data(place).count; |
62 | 0 | } |
63 | | |
64 | | void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start, |
65 | | int64_t frame_end, AggregateDataPtr place, const IColumn** columns, |
66 | 21.8k | Arena&, UInt8*, UInt8*) const override { |
67 | 21.8k | ++data(place).count; |
68 | 21.8k | } |
69 | | |
70 | 177 | void reset(AggregateDataPtr place) const override { |
71 | 177 | WindowFunctionRowNumber::data(place).count = 0; |
72 | 177 | } |
73 | | |
74 | 0 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { |
75 | 0 | assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back( |
76 | 0 | doris::WindowFunctionRowNumber::data(place).count); |
77 | 0 | } |
78 | | |
79 | 500 | bool result_column_could_resize() const override { return true; } |
80 | | |
81 | | void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to, |
82 | 21.8k | const size_t start, const size_t end) const override { |
83 | 21.8k | auto& column = assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to); |
84 | 43.7k | for (size_t i = start; i < end; ++i) { |
85 | 21.8k | column.get_data()[i] = (doris::WindowFunctionRowNumber::data(place).count); |
86 | 21.8k | } |
87 | 21.8k | } |
88 | | |
89 | 0 | void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {} |
90 | 0 | void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {} |
91 | 0 | void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {} |
92 | | }; |
93 | | |
94 | | struct RankData { |
95 | | int64_t rank = 0; |
96 | | int64_t count = 1; |
97 | | int64_t peer_group_start = -1; |
98 | | }; |
99 | | |
100 | | class WindowFunctionRank final : public IAggregateFunctionDataHelper<RankData, WindowFunctionRank> { |
101 | | public: |
102 | | WindowFunctionRank(const DataTypes& argument_types_) |
103 | 147 | : IAggregateFunctionDataHelper(argument_types_) {} |
104 | | |
105 | 864 | String get_name() const override { return "rank"; } |
106 | | |
107 | 1.01k | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
108 | | |
109 | 0 | void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override { |
110 | 0 | ++data(place).rank; |
111 | 0 | } |
112 | | |
113 | | void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start, |
114 | | int64_t frame_end, AggregateDataPtr place, const IColumn** columns, |
115 | 953 | Arena&, UInt8*, UInt8*) const override { |
116 | 953 | int64_t peer_group_count = frame_end - frame_start; |
117 | 953 | if (WindowFunctionRank::data(place).peer_group_start != frame_start) { |
118 | 953 | WindowFunctionRank::data(place).peer_group_start = frame_start; |
119 | 953 | WindowFunctionRank::data(place).rank += WindowFunctionRank::data(place).count; |
120 | 953 | } |
121 | 953 | WindowFunctionRank::data(place).count = peer_group_count; |
122 | 953 | } |
123 | | |
124 | 484 | void reset(AggregateDataPtr place) const override { |
125 | 484 | WindowFunctionRank::data(place).rank = 0; |
126 | 484 | WindowFunctionRank::data(place).count = 1; |
127 | 484 | WindowFunctionRank::data(place).peer_group_start = -1; |
128 | 484 | } |
129 | | |
130 | 0 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { |
131 | 0 | assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back( |
132 | 0 | data(place).rank); |
133 | 0 | } |
134 | | |
135 | 861 | bool result_column_could_resize() const override { return true; } |
136 | | |
137 | | void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to, |
138 | 955 | const size_t start, const size_t end) const override { |
139 | 955 | auto& column = assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to); |
140 | 2.46k | for (size_t i = start; i < end; ++i) { |
141 | 1.51k | column.get_data()[i] = (doris::WindowFunctionRank::data(place).rank); |
142 | 1.51k | } |
143 | 955 | } |
144 | | |
145 | 0 | void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {} |
146 | 0 | void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {} |
147 | 0 | void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {} |
148 | | }; |
149 | | |
150 | | struct DenseRankData { |
151 | | int64_t rank = 0; |
152 | | int64_t peer_group_start = -1; |
153 | | }; |
154 | | |
155 | | class WindowFunctionDenseRank final |
156 | | : public IAggregateFunctionDataHelper<DenseRankData, WindowFunctionDenseRank> { |
157 | | public: |
158 | | WindowFunctionDenseRank(const DataTypes& argument_types_) |
159 | 11 | : IAggregateFunctionDataHelper(argument_types_) {} |
160 | | |
161 | 50 | String get_name() const override { return "dense_rank"; } |
162 | | |
163 | 61 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
164 | | |
165 | 0 | void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override { |
166 | 0 | ++data(place).rank; |
167 | 0 | } |
168 | | |
169 | | void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start, |
170 | | int64_t frame_end, AggregateDataPtr place, const IColumn** columns, |
171 | 71 | Arena&, UInt8*, UInt8*) const override { |
172 | 71 | if (WindowFunctionDenseRank::data(place).peer_group_start != frame_start) { |
173 | 71 | WindowFunctionDenseRank::data(place).peer_group_start = frame_start; |
174 | 71 | WindowFunctionDenseRank::data(place).rank++; |
175 | 71 | } |
176 | 71 | } |
177 | | |
178 | 36 | void reset(AggregateDataPtr place) const override { |
179 | 36 | WindowFunctionDenseRank::data(place).rank = 0; |
180 | 36 | WindowFunctionDenseRank::data(place).peer_group_start = -1; |
181 | 36 | } |
182 | | |
183 | 0 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { |
184 | 0 | assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back( |
185 | 0 | data(place).rank); |
186 | 0 | } |
187 | | |
188 | 50 | bool result_column_could_resize() const override { return true; } |
189 | | |
190 | | void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to, |
191 | 71 | const size_t start, const size_t end) const override { |
192 | 71 | auto& column = assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to); |
193 | 172 | for (size_t i = start; i < end; ++i) { |
194 | 101 | column.get_data()[i] = (doris::WindowFunctionDenseRank::data(place).rank); |
195 | 101 | } |
196 | 71 | } |
197 | | |
198 | 0 | void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {} |
199 | 0 | void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {} |
200 | 0 | void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {} |
201 | | }; |
202 | | |
203 | | struct PercentRankData { |
204 | | int64_t rank = 0; |
205 | | int64_t count = 1; |
206 | | int64_t peer_group_start = -1; |
207 | | int64_t partition_size = 0; |
208 | | }; |
209 | | |
210 | | class WindowFunctionPercentRank final |
211 | | : public IAggregateFunctionDataHelper<PercentRankData, WindowFunctionPercentRank> { |
212 | | private: |
213 | 47 | static double _cal_percent(int64_t rank, int64_t total_rows) { |
214 | 47 | return total_rows <= 1 ? 0.0 : double(rank - 1) * 1.0 / double(total_rows - 1); |
215 | 47 | } |
216 | | |
217 | | public: |
218 | | WindowFunctionPercentRank(const DataTypes& argument_types_) |
219 | 6 | : IAggregateFunctionDataHelper(argument_types_) {} |
220 | | |
221 | 36 | String get_name() const override { return "percent_rank"; } |
222 | | |
223 | 42 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeFloat64>(); } |
224 | | |
225 | 0 | void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override {} |
226 | | |
227 | | void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start, |
228 | | int64_t frame_end, AggregateDataPtr place, const IColumn** columns, |
229 | 47 | Arena&, UInt8*, UInt8*) const override { |
230 | 47 | int64_t peer_group_count = frame_end - frame_start; |
231 | 47 | if (WindowFunctionPercentRank::data(place).peer_group_start != frame_start) { |
232 | 47 | WindowFunctionPercentRank::data(place).peer_group_start = frame_start; |
233 | 47 | WindowFunctionPercentRank::data(place).rank += |
234 | 47 | WindowFunctionPercentRank::data(place).count; |
235 | | // some variables are partition related, but there is no chance to init them |
236 | | // when the new partition arrives, so we calculate them every time now. |
237 | 47 | WindowFunctionPercentRank::data(place).partition_size = partition_end - partition_start; |
238 | 47 | } |
239 | 47 | WindowFunctionPercentRank::data(place).count = peer_group_count; |
240 | 47 | } |
241 | | |
242 | 20 | void reset(AggregateDataPtr place) const override { |
243 | 20 | WindowFunctionPercentRank::data(place).rank = 0; |
244 | 20 | WindowFunctionPercentRank::data(place).count = 1; |
245 | 20 | WindowFunctionPercentRank::data(place).peer_group_start = -1; |
246 | 20 | WindowFunctionPercentRank::data(place).partition_size = 0; |
247 | 20 | } |
248 | | |
249 | 0 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { |
250 | 0 | auto percent_rank = _cal_percent(data(place).rank, data(place).partition_size); |
251 | 0 | assert_cast<ColumnFloat64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back( |
252 | 0 | percent_rank); |
253 | 0 | } |
254 | | |
255 | 36 | bool result_column_could_resize() const override { return true; } |
256 | | |
257 | | void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to, |
258 | 47 | const size_t start, const size_t end) const override { |
259 | 47 | auto& column = assert_cast<ColumnFloat64&, TypeCheckOnRelease::DISABLE>(to); |
260 | 47 | auto percent_rank = _cal_percent(data(place).rank, data(place).partition_size); |
261 | 116 | for (size_t i = start; i < end; ++i) { |
262 | 69 | column.get_data()[i] = percent_rank; |
263 | 69 | } |
264 | 47 | } |
265 | | |
266 | 0 | void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {} |
267 | 0 | void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {} |
268 | 0 | void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {} |
269 | | }; |
270 | | |
271 | | struct CumeDistData { |
272 | | int64_t numerator = 0; |
273 | | int64_t denominator = 0; |
274 | | int64_t peer_group_start = -1; |
275 | | }; |
276 | | |
277 | | class WindowFunctionCumeDist final |
278 | | : public IAggregateFunctionDataHelper<CumeDistData, WindowFunctionCumeDist> { |
279 | | private: |
280 | | static void check_default(AggregateDataPtr place, int64_t partition_start, |
281 | 47 | int64_t partition_end) { |
282 | 47 | if (data(place).denominator == 0) { |
283 | 21 | data(place).denominator = partition_end - partition_start; |
284 | 21 | } |
285 | 47 | } |
286 | | |
287 | | public: |
288 | | WindowFunctionCumeDist(const DataTypes& argument_types_) |
289 | 6 | : IAggregateFunctionDataHelper(argument_types_) {} |
290 | | |
291 | 36 | String get_name() const override { return "cume_dist"; } |
292 | | |
293 | 42 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeFloat64>(); } |
294 | | |
295 | 0 | void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override {} |
296 | | |
297 | | void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start, |
298 | | int64_t frame_end, AggregateDataPtr place, const IColumn** columns, |
299 | 47 | Arena&, UInt8*, UInt8*) const override { |
300 | 47 | check_default(place, partition_start, partition_end); |
301 | 47 | int64_t peer_group_count = frame_end - frame_start; |
302 | 47 | if (WindowFunctionCumeDist::data(place).peer_group_start != frame_start) { |
303 | 47 | WindowFunctionCumeDist::data(place).peer_group_start = frame_start; |
304 | 47 | WindowFunctionCumeDist::data(place).numerator += peer_group_count; |
305 | 47 | } |
306 | 47 | } |
307 | | |
308 | 21 | void reset(AggregateDataPtr place) const override { |
309 | 21 | WindowFunctionCumeDist::data(place).numerator = 0; |
310 | 21 | WindowFunctionCumeDist::data(place).denominator = 0; |
311 | 21 | WindowFunctionCumeDist::data(place).peer_group_start = -1; |
312 | 21 | } |
313 | | |
314 | 0 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { |
315 | 0 | auto cume_dist = (double)data(place).numerator * 1.0 / (double)data(place).denominator; |
316 | 0 | assert_cast<ColumnFloat64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back( |
317 | 0 | cume_dist); |
318 | 0 | } |
319 | | |
320 | 36 | bool result_column_could_resize() const override { return true; } |
321 | | |
322 | | void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to, |
323 | 47 | const size_t start, const size_t end) const override { |
324 | 47 | auto& column = assert_cast<ColumnFloat64&, TypeCheckOnRelease::DISABLE>(to); |
325 | 47 | auto cume_dist = (double)data(place).numerator * 1.0 / (double)data(place).denominator; |
326 | 116 | for (size_t i = start; i < end; ++i) { |
327 | 69 | column.get_data()[i] = cume_dist; |
328 | 69 | } |
329 | 47 | } |
330 | | |
331 | 0 | void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {} |
332 | 0 | void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {} |
333 | 0 | void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {} |
334 | | }; |
335 | | |
336 | | struct NTileData { |
337 | | int64_t bucket_index = 0; |
338 | | int64_t rows = 0; |
339 | | }; |
340 | | |
341 | | class WindowFunctionNTile final |
342 | | : public IAggregateFunctionDataHelper<NTileData, WindowFunctionNTile>, |
343 | | UnaryExpression, |
344 | | NullableAggregateFunction { |
345 | | public: |
346 | | WindowFunctionNTile(const DataTypes& argument_types_) |
347 | 10 | : IAggregateFunctionDataHelper(argument_types_) {} |
348 | | |
349 | 43 | String get_name() const override { return "ntile"; } |
350 | | |
351 | 54 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
352 | | |
353 | 0 | void add(AggregateDataPtr place, const IColumn**, ssize_t, Arena&) const override {} |
354 | | |
355 | | void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start, |
356 | | int64_t frame_end, AggregateDataPtr place, const IColumn** columns, |
357 | 110 | Arena&, UInt8*, UInt8*) const override { |
358 | | // some variables are partition related, but there is no chance to init them |
359 | | // when the new partition arrives, so we calculate them every time now. |
360 | | // Partition = big_bucket_num * big_bucket_size + small_bucket_num * small_bucket_size |
361 | 110 | int64_t row_index = ++WindowFunctionNTile::data(place).rows - 1; |
362 | 110 | int64_t bucket_num = columns[0]->get_int(0); |
363 | 110 | int64_t partition_size = partition_end - partition_start; |
364 | | |
365 | 110 | int64_t small_bucket_size = partition_size / bucket_num; |
366 | 110 | int64_t big_bucket_num = partition_size % bucket_num; |
367 | 110 | int64_t first_small_bucket_row_index = big_bucket_num * (small_bucket_size + 1); |
368 | 110 | if (row_index >= first_small_bucket_row_index) { |
369 | | // small_bucket_size can't be zero |
370 | 54 | WindowFunctionNTile::data(place).bucket_index = |
371 | 54 | big_bucket_num + 1 + |
372 | 54 | (row_index - first_small_bucket_row_index) / small_bucket_size; |
373 | 56 | } else { |
374 | 56 | WindowFunctionNTile::data(place).bucket_index = row_index / (small_bucket_size + 1) + 1; |
375 | 56 | } |
376 | 110 | } |
377 | | |
378 | 29 | void reset(AggregateDataPtr place) const override { WindowFunctionNTile::data(place).rows = 0; } |
379 | | |
380 | 0 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { |
381 | 0 | assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back( |
382 | 0 | WindowFunctionNTile::data(place).bucket_index); |
383 | 0 | } |
384 | | |
385 | 43 | bool result_column_could_resize() const override { return true; } |
386 | | |
387 | | void insert_result_into_range(ConstAggregateDataPtr __restrict place, IColumn& to, |
388 | 110 | const size_t start, const size_t end) const override { |
389 | 110 | auto& column = assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to); |
390 | 220 | for (size_t i = start; i < end; ++i) { |
391 | 110 | column.get_data()[i] = WindowFunctionNTile::data(place).bucket_index; |
392 | 110 | } |
393 | 110 | } |
394 | | |
395 | 0 | void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override {} |
396 | 0 | void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override {} |
397 | 0 | void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override {} |
398 | | }; |
399 | | |
400 | | template <bool result_is_nullable, bool arg_is_nullable> |
401 | | struct FirstLastData |
402 | | : public ReaderFirstAndLastData<void, result_is_nullable, arg_is_nullable, false> { |
403 | | public: |
404 | 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 | 404 | 208 | void set_is_null() { this->_data_value.reset(); } |
_ZN5doris13FirstLastDataILb1ELb1EE11set_is_nullEv Line | Count | Source | 404 | 156 | void set_is_null() { this->_data_value.reset(); } |
|
405 | | }; |
406 | | |
407 | | template <bool result_is_nullable, bool arg_is_nullable> |
408 | | struct NthValueData : public FirstLastData<result_is_nullable, arg_is_nullable> { |
409 | | public: |
410 | 182 | void reset() { |
411 | 182 | this->_data_value.reset(); |
412 | 182 | this->_has_value = false; |
413 | 182 | this->_frame_start_pose = 0; |
414 | 182 | this->_frame_total_rows = 0; |
415 | 182 | } Unexecuted instantiation: _ZN5doris12NthValueDataILb0ELb0EE5resetEv Unexecuted instantiation: _ZN5doris12NthValueDataILb0ELb1EE5resetEv Unexecuted instantiation: _ZN5doris12NthValueDataILb1ELb0EE5resetEv _ZN5doris12NthValueDataILb1ELb1EE5resetEv Line | Count | Source | 410 | 182 | void reset() { | 411 | 182 | this->_data_value.reset(); | 412 | 182 | this->_has_value = false; | 413 | 182 | this->_frame_start_pose = 0; | 414 | 182 | this->_frame_total_rows = 0; | 415 | 182 | } |
|
416 | | |
417 | | int64_t _frame_start_pose = 0; |
418 | | int64_t _frame_total_rows = 0; |
419 | | }; |
420 | | |
421 | | template <bool arg_is_nullable> |
422 | | struct BaseValue : public Value<arg_is_nullable> { |
423 | | public: |
424 | 658 | bool is_null() const { return this->_ptr == nullptr; }_ZNK5doris9BaseValueILb0EE7is_nullEv Line | Count | Source | 424 | 8 | bool is_null() const { return this->_ptr == nullptr; } |
_ZNK5doris9BaseValueILb1EE7is_nullEv Line | Count | Source | 424 | 650 | bool is_null() const { return this->_ptr == nullptr; } |
|
425 | | // because _ptr pointer to first_argument or third argument, so it's difficult to cast ptr |
426 | | // so here will call virtual function |
427 | 1.07k | StringRef get_value() const { return this->_ptr->get_data_at(this->_offset); }_ZNK5doris9BaseValueILb0EE9get_valueEv Line | Count | Source | 427 | 616 | StringRef get_value() const { return this->_ptr->get_data_at(this->_offset); } |
_ZNK5doris9BaseValueILb1EE9get_valueEv Line | Count | Source | 427 | 456 | StringRef get_value() const { return this->_ptr->get_data_at(this->_offset); } |
|
428 | | }; |
429 | | |
430 | | template <bool result_is_nullable, bool arg_is_nullable> |
431 | | struct LeadLagData { |
432 | | public: |
433 | | static constexpr bool result_nullable = result_is_nullable; |
434 | 267 | void reset() { |
435 | 267 | _data_value.reset(); |
436 | 267 | _is_inited = false; |
437 | 267 | _offset_value = 0; |
438 | 267 | } _ZN5doris11LeadLagDataILb0ELb0EE5resetEv Line | Count | Source | 434 | 98 | void reset() { | 435 | 98 | _data_value.reset(); | 436 | 98 | _is_inited = false; | 437 | 98 | _offset_value = 0; | 438 | 98 | } |
Unexecuted instantiation: _ZN5doris11LeadLagDataILb0ELb1EE5resetEv _ZN5doris11LeadLagDataILb1ELb0EE5resetEv Line | Count | Source | 434 | 4 | void reset() { | 435 | 4 | _data_value.reset(); | 436 | 4 | _is_inited = false; | 437 | 4 | _offset_value = 0; | 438 | 4 | } |
_ZN5doris11LeadLagDataILb1ELb1EE5resetEv Line | Count | Source | 434 | 165 | void reset() { | 435 | 165 | _data_value.reset(); | 436 | 165 | _is_inited = false; | 437 | 165 | _offset_value = 0; | 438 | 165 | } |
|
439 | | |
440 | 1.27k | void insert_result_into(IColumn& to) const { |
441 | 1.27k | if constexpr (result_is_nullable) { |
442 | 658 | if (_data_value.is_null()) { |
443 | 200 | auto& col = assert_cast<ColumnNullable&>(to); |
444 | 200 | col.insert_default(); |
445 | 458 | } else { |
446 | 458 | auto& col = assert_cast<ColumnNullable&>(to); |
447 | 458 | StringRef value = _data_value.get_value(); |
448 | 458 | col.insert_data(value.data, value.size); |
449 | 458 | } |
450 | 658 | } else { |
451 | 614 | StringRef value = _data_value.get_value(); |
452 | 614 | to.insert_data(value.data, value.size); |
453 | 614 | } |
454 | 1.27k | } _ZNK5doris11LeadLagDataILb0ELb0EE18insert_result_intoERNS_7IColumnE Line | Count | Source | 440 | 614 | void insert_result_into(IColumn& to) const { | 441 | | if constexpr (result_is_nullable) { | 442 | | if (_data_value.is_null()) { | 443 | | auto& col = assert_cast<ColumnNullable&>(to); | 444 | | col.insert_default(); | 445 | | } else { | 446 | | auto& col = assert_cast<ColumnNullable&>(to); | 447 | | StringRef value = _data_value.get_value(); | 448 | | col.insert_data(value.data, value.size); | 449 | | } | 450 | 614 | } else { | 451 | 614 | StringRef value = _data_value.get_value(); | 452 | 614 | to.insert_data(value.data, value.size); | 453 | 614 | } | 454 | 614 | } |
Unexecuted instantiation: _ZNK5doris11LeadLagDataILb0ELb1EE18insert_result_intoERNS_7IColumnE _ZNK5doris11LeadLagDataILb1ELb0EE18insert_result_intoERNS_7IColumnE Line | Count | Source | 440 | 8 | void insert_result_into(IColumn& to) const { | 441 | 8 | if constexpr (result_is_nullable) { | 442 | 8 | if (_data_value.is_null()) { | 443 | 6 | auto& col = assert_cast<ColumnNullable&>(to); | 444 | 6 | col.insert_default(); | 445 | 6 | } else { | 446 | 2 | auto& col = assert_cast<ColumnNullable&>(to); | 447 | 2 | StringRef value = _data_value.get_value(); | 448 | 2 | col.insert_data(value.data, value.size); | 449 | 2 | } | 450 | | } else { | 451 | | StringRef value = _data_value.get_value(); | 452 | | to.insert_data(value.data, value.size); | 453 | | } | 454 | 8 | } |
_ZNK5doris11LeadLagDataILb1ELb1EE18insert_result_intoERNS_7IColumnE Line | Count | Source | 440 | 650 | void insert_result_into(IColumn& to) const { | 441 | 650 | if constexpr (result_is_nullable) { | 442 | 650 | if (_data_value.is_null()) { | 443 | 194 | auto& col = assert_cast<ColumnNullable&>(to); | 444 | 194 | col.insert_default(); | 445 | 456 | } else { | 446 | 456 | auto& col = assert_cast<ColumnNullable&>(to); | 447 | 456 | StringRef value = _data_value.get_value(); | 448 | 456 | col.insert_data(value.data, value.size); | 449 | 456 | } | 450 | | } else { | 451 | | StringRef value = _data_value.get_value(); | 452 | | to.insert_data(value.data, value.size); | 453 | | } | 454 | 650 | } |
|
455 | | |
456 | 860 | void set_value(const IColumn** columns, size_t pos) { |
457 | 860 | if constexpr (arg_is_nullable) { |
458 | 475 | if (assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(columns[0]) |
459 | 475 | ->is_null_at(pos)) { |
460 | | // ptr == nullptr means nullable |
461 | 3 | _data_value.reset(); |
462 | 3 | return; |
463 | 3 | } |
464 | 475 | } |
465 | | // here ptr is pointer to nullable column or not null column from first |
466 | 472 | _data_value.set_value(columns[0], pos); |
467 | 860 | } _ZN5doris11LeadLagDataILb0ELb0EE9set_valueEPPKNS_7IColumnEm Line | Count | Source | 456 | 380 | void set_value(const IColumn** columns, size_t pos) { | 457 | | if constexpr (arg_is_nullable) { | 458 | | if (assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(columns[0]) | 459 | | ->is_null_at(pos)) { | 460 | | // ptr == nullptr means nullable | 461 | | _data_value.reset(); | 462 | | return; | 463 | | } | 464 | | } | 465 | | // here ptr is pointer to nullable column or not null column from first | 466 | 380 | _data_value.set_value(columns[0], pos); | 467 | 380 | } |
Unexecuted instantiation: _ZN5doris11LeadLagDataILb0ELb1EE9set_valueEPPKNS_7IColumnEm _ZN5doris11LeadLagDataILb1ELb0EE9set_valueEPPKNS_7IColumnEm Line | Count | Source | 456 | 5 | void set_value(const IColumn** columns, size_t pos) { | 457 | | if constexpr (arg_is_nullable) { | 458 | | if (assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(columns[0]) | 459 | | ->is_null_at(pos)) { | 460 | | // ptr == nullptr means nullable | 461 | | _data_value.reset(); | 462 | | return; | 463 | | } | 464 | | } | 465 | | // here ptr is pointer to nullable column or not null column from first | 466 | 5 | _data_value.set_value(columns[0], pos); | 467 | 5 | } |
_ZN5doris11LeadLagDataILb1ELb1EE9set_valueEPPKNS_7IColumnEm Line | Count | Source | 456 | 475 | void set_value(const IColumn** columns, size_t pos) { | 457 | 475 | if constexpr (arg_is_nullable) { | 458 | 475 | if (assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(columns[0]) | 459 | 475 | ->is_null_at(pos)) { | 460 | | // ptr == nullptr means nullable | 461 | 3 | _data_value.reset(); | 462 | 3 | return; | 463 | 3 | } | 464 | 475 | } | 465 | | // here ptr is pointer to nullable column or not null column from first | 466 | 472 | _data_value.set_value(columns[0], pos); | 467 | 475 | } |
|
468 | | |
469 | 543 | void set_value_from_default(const IColumn* column, size_t pos) { |
470 | 543 | DCHECK_GE(pos, 0); |
471 | 543 | if (is_column_nullable(*column)) { |
472 | 206 | const auto* nullable_column = |
473 | 206 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(column); |
474 | 206 | if (nullable_column->is_null_at(pos)) { |
475 | 200 | this->_data_value.reset(); |
476 | 200 | } else { |
477 | 6 | this->_data_value.set_value(nullable_column->get_nested_column_ptr().get(), pos); |
478 | 6 | } |
479 | 337 | } else { |
480 | 337 | this->_data_value.set_value(column, pos); |
481 | 337 | } |
482 | 543 | } _ZN5doris11LeadLagDataILb0ELb0EE22set_value_from_defaultEPKNS_7IColumnEm Line | Count | Source | 469 | 247 | void set_value_from_default(const IColumn* column, size_t pos) { | 470 | 247 | DCHECK_GE(pos, 0); | 471 | 247 | if (is_column_nullable(*column)) { | 472 | 0 | const auto* nullable_column = | 473 | 0 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(column); | 474 | 0 | if (nullable_column->is_null_at(pos)) { | 475 | 0 | this->_data_value.reset(); | 476 | 0 | } else { | 477 | 0 | this->_data_value.set_value(nullable_column->get_nested_column_ptr().get(), pos); | 478 | 0 | } | 479 | 247 | } else { | 480 | 247 | this->_data_value.set_value(column, pos); | 481 | 247 | } | 482 | 247 | } |
Unexecuted instantiation: _ZN5doris11LeadLagDataILb0ELb1EE22set_value_from_defaultEPKNS_7IColumnEm _ZN5doris11LeadLagDataILb1ELb0EE22set_value_from_defaultEPKNS_7IColumnEm Line | Count | Source | 469 | 6 | void set_value_from_default(const IColumn* column, size_t pos) { | 470 | 6 | DCHECK_GE(pos, 0); | 471 | 6 | if (is_column_nullable(*column)) { | 472 | 6 | const auto* nullable_column = | 473 | 6 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(column); | 474 | 6 | if (nullable_column->is_null_at(pos)) { | 475 | 6 | this->_data_value.reset(); | 476 | 6 | } else { | 477 | 0 | this->_data_value.set_value(nullable_column->get_nested_column_ptr().get(), pos); | 478 | 0 | } | 479 | 6 | } else { | 480 | 0 | this->_data_value.set_value(column, pos); | 481 | 0 | } | 482 | 6 | } |
_ZN5doris11LeadLagDataILb1ELb1EE22set_value_from_defaultEPKNS_7IColumnEm Line | Count | Source | 469 | 290 | void set_value_from_default(const IColumn* column, size_t pos) { | 470 | 290 | DCHECK_GE(pos, 0); | 471 | 290 | if (is_column_nullable(*column)) { | 472 | 200 | const auto* nullable_column = | 473 | 200 | assert_cast<const ColumnNullable*, TypeCheckOnRelease::DISABLE>(column); | 474 | 200 | if (nullable_column->is_null_at(pos)) { | 475 | 194 | this->_data_value.reset(); | 476 | 194 | } else { | 477 | 6 | this->_data_value.set_value(nullable_column->get_nested_column_ptr().get(), pos); | 478 | 6 | } | 479 | 200 | } else { | 480 | 90 | this->_data_value.set_value(column, pos); | 481 | 90 | } | 482 | 290 | } |
|
483 | | |
484 | 543 | void set_offset_value(const IColumn* column) { |
485 | 543 | if (!_is_inited) { |
486 | 468 | const auto* column_number = assert_cast<const ColumnInt64*>(column); |
487 | 468 | _offset_value = column_number->get_data()[0]; |
488 | 468 | _is_inited = true; |
489 | 468 | } |
490 | 543 | } _ZN5doris11LeadLagDataILb0ELb0EE16set_offset_valueEPKNS_7IColumnE Line | Count | Source | 484 | 247 | void set_offset_value(const IColumn* column) { | 485 | 247 | if (!_is_inited) { | 486 | 234 | const auto* column_number = assert_cast<const ColumnInt64*>(column); | 487 | 234 | _offset_value = column_number->get_data()[0]; | 488 | 234 | _is_inited = true; | 489 | 234 | } | 490 | 247 | } |
Unexecuted instantiation: _ZN5doris11LeadLagDataILb0ELb1EE16set_offset_valueEPKNS_7IColumnE _ZN5doris11LeadLagDataILb1ELb0EE16set_offset_valueEPKNS_7IColumnE Line | Count | Source | 484 | 6 | void set_offset_value(const IColumn* column) { | 485 | 6 | if (!_is_inited) { | 486 | 6 | const auto* column_number = assert_cast<const ColumnInt64*>(column); | 487 | 6 | _offset_value = column_number->get_data()[0]; | 488 | 6 | _is_inited = true; | 489 | 6 | } | 490 | 6 | } |
_ZN5doris11LeadLagDataILb1ELb1EE16set_offset_valueEPKNS_7IColumnE Line | Count | Source | 484 | 290 | void set_offset_value(const IColumn* column) { | 485 | 290 | if (!_is_inited) { | 486 | 228 | const auto* column_number = assert_cast<const ColumnInt64*>(column); | 487 | 228 | _offset_value = column_number->get_data()[0]; | 488 | 228 | _is_inited = true; | 489 | 228 | } | 490 | 290 | } |
|
491 | | |
492 | 543 | int64_t get_offset_value() const { return _offset_value; }_ZNK5doris11LeadLagDataILb0ELb0EE16get_offset_valueEv Line | Count | Source | 492 | 247 | int64_t get_offset_value() const { return _offset_value; } |
Unexecuted instantiation: _ZNK5doris11LeadLagDataILb0ELb1EE16get_offset_valueEv _ZNK5doris11LeadLagDataILb1ELb0EE16get_offset_valueEv Line | Count | Source | 492 | 6 | int64_t get_offset_value() const { return _offset_value; } |
_ZNK5doris11LeadLagDataILb1ELb1EE16get_offset_valueEv Line | Count | Source | 492 | 290 | int64_t get_offset_value() const { return _offset_value; } |
|
493 | | |
494 | | private: |
495 | | BaseValue<arg_is_nullable> _data_value; |
496 | | bool _is_inited = false; |
497 | | int64_t _offset_value = 0; |
498 | | }; |
499 | | |
500 | | template <typename Data, bool = false> |
501 | | struct WindowFunctionLeadImpl : Data { |
502 | | void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start, |
503 | 512 | int64_t frame_end, const IColumn** columns) { |
504 | 512 | if (frame_end > partition_end) { //output default value, win end is under partition |
505 | 172 | this->set_offset_value(columns[1]); |
506 | | // eg: lead(column, 10, default_value), column size maybe 3 rows |
507 | | // offset value 10 is from second argument, pos: 11 is calculated as frame_end |
508 | 172 | auto pos = frame_end - 1 - this->get_offset_value(); |
509 | 172 | this->set_value_from_default(columns[2], pos); |
510 | 172 | return; |
511 | 172 | } |
512 | 340 | this->set_value(columns, frame_end - 1); |
513 | 340 | } _ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE Line | Count | Source | 503 | 72 | int64_t frame_end, const IColumn** columns) { | 504 | 72 | if (frame_end > partition_end) { //output default value, win end is under partition | 505 | 20 | this->set_offset_value(columns[1]); | 506 | | // eg: lead(column, 10, default_value), column size maybe 3 rows | 507 | | // offset value 10 is from second argument, pos: 11 is calculated as frame_end | 508 | 20 | auto pos = frame_end - 1 - this->get_offset_value(); | 509 | 20 | this->set_value_from_default(columns[2], pos); | 510 | 20 | return; | 511 | 20 | } | 512 | 52 | this->set_value(columns, frame_end - 1); | 513 | 52 | } |
Unexecuted instantiation: _ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE _ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE Line | Count | Source | 503 | 7 | int64_t frame_end, const IColumn** columns) { | 504 | 7 | if (frame_end > partition_end) { //output default value, win end is under partition | 505 | 3 | this->set_offset_value(columns[1]); | 506 | | // eg: lead(column, 10, default_value), column size maybe 3 rows | 507 | | // offset value 10 is from second argument, pos: 11 is calculated as frame_end | 508 | 3 | auto pos = frame_end - 1 - this->get_offset_value(); | 509 | 3 | this->set_value_from_default(columns[2], pos); | 510 | 3 | return; | 511 | 3 | } | 512 | 4 | this->set_value(columns, frame_end - 1); | 513 | 4 | } |
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE Line | Count | Source | 503 | 433 | int64_t frame_end, const IColumn** columns) { | 504 | 433 | if (frame_end > partition_end) { //output default value, win end is under partition | 505 | 149 | this->set_offset_value(columns[1]); | 506 | | // eg: lead(column, 10, default_value), column size maybe 3 rows | 507 | | // offset value 10 is from second argument, pos: 11 is calculated as frame_end | 508 | 149 | auto pos = frame_end - 1 - this->get_offset_value(); | 509 | 149 | this->set_value_from_default(columns[2], pos); | 510 | 149 | return; | 511 | 149 | } | 512 | 284 | this->set_value(columns, frame_end - 1); | 513 | 284 | } |
|
514 | | |
515 | 210 | static const char* name() { return "lead"; }_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EE4nameEv Line | Count | Source | 515 | 28 | static const char* name() { return "lead"; } |
Unexecuted instantiation: _ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EE4nameEv _ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EE4nameEv Line | Count | Source | 515 | 16 | static const char* name() { return "lead"; } |
_ZN5doris22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EE4nameEv Line | Count | Source | 515 | 166 | static const char* name() { return "lead"; } |
|
516 | | }; |
517 | | |
518 | | template <typename Data, bool = false> |
519 | | struct WindowFunctionLagImpl : Data { |
520 | | void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start, |
521 | 891 | int64_t frame_end, const IColumn** columns) { |
522 | | // window start is beyond partition |
523 | 891 | if (partition_start >= frame_end) { //[unbound preceding(0), offset preceding(-123)] |
524 | 371 | this->set_offset_value(columns[1]); |
525 | 371 | auto pos = frame_end - 1 + this->get_offset_value(); |
526 | 371 | this->set_value_from_default(columns[2], pos); |
527 | 371 | return; |
528 | 371 | } |
529 | 520 | this->set_value(columns, frame_end - 1); |
530 | 520 | } _ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE Line | Count | Source | 521 | 555 | int64_t frame_end, const IColumn** columns) { | 522 | | // window start is beyond partition | 523 | 555 | if (partition_start >= frame_end) { //[unbound preceding(0), offset preceding(-123)] | 524 | 227 | this->set_offset_value(columns[1]); | 525 | 227 | auto pos = frame_end - 1 + this->get_offset_value(); | 526 | 227 | this->set_value_from_default(columns[2], pos); | 527 | 227 | return; | 528 | 227 | } | 529 | 328 | this->set_value(columns, frame_end - 1); | 530 | 328 | } |
Unexecuted instantiation: _ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE _ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE Line | Count | Source | 521 | 4 | int64_t frame_end, const IColumn** columns) { | 522 | | // window start is beyond partition | 523 | 4 | if (partition_start >= frame_end) { //[unbound preceding(0), offset preceding(-123)] | 524 | 3 | this->set_offset_value(columns[1]); | 525 | 3 | auto pos = frame_end - 1 + this->get_offset_value(); | 526 | 3 | this->set_value_from_default(columns[2], pos); | 527 | 3 | return; | 528 | 3 | } | 529 | 1 | this->set_value(columns, frame_end - 1); | 530 | 1 | } |
_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE Line | Count | Source | 521 | 332 | int64_t frame_end, const IColumn** columns) { | 522 | | // window start is beyond partition | 523 | 332 | if (partition_start >= frame_end) { //[unbound preceding(0), offset preceding(-123)] | 524 | 141 | this->set_offset_value(columns[1]); | 525 | 141 | auto pos = frame_end - 1 + this->get_offset_value(); | 526 | 141 | this->set_value_from_default(columns[2], pos); | 527 | 141 | return; | 528 | 141 | } | 529 | 191 | this->set_value(columns, frame_end - 1); | 530 | 191 | } |
|
531 | | |
532 | 656 | static const char* name() { return "lag"; }_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EE4nameEv Line | Count | Source | 532 | 469 | static const char* name() { return "lag"; } |
Unexecuted instantiation: _ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EE4nameEv _ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EE4nameEv Line | Count | Source | 532 | 16 | static const char* name() { return "lag"; } |
_ZN5doris21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EE4nameEv Line | Count | Source | 532 | 171 | static const char* name() { return "lag"; } |
|
533 | | }; |
534 | | |
535 | | template <typename Data, bool arg_ignore_null = false> |
536 | | struct WindowFunctionFirstImpl : Data { |
537 | | void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start, |
538 | 1.49k | int64_t frame_end, const IColumn** columns) { |
539 | | // case 1: (has_set_value() = true && arg_ignore_null = false) |
540 | | // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false) |
541 | 1.49k | if ((this->has_set_value()) && |
542 | 1.49k | (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) { |
543 | 764 | return; |
544 | 764 | } |
545 | 1.49k | DCHECK_LE(frame_start, frame_end); |
546 | 728 | if (frame_start >= partition_end || frame_end <= partition_start) { |
547 | 26 | this->set_is_null(); |
548 | 26 | return; |
549 | 26 | } |
550 | 702 | frame_start = std::max<int64_t>(frame_start, partition_start); |
551 | | |
552 | 702 | if constexpr (arg_ignore_null) { |
553 | 33 | frame_end = std::min<int64_t>(frame_end, partition_end); |
554 | 33 | if (columns[0]->is_nullable()) { |
555 | 29 | const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]); |
556 | | // the valid range is: [frame_start, frame_end) |
557 | 38 | while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) { |
558 | 9 | frame_start++; |
559 | 9 | } |
560 | 29 | } |
561 | 33 | } |
562 | 702 | this->set_value(columns, frame_start); |
563 | 702 | } _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE Line | Count | Source | 538 | 5 | int64_t frame_end, const IColumn** columns) { | 539 | | // case 1: (has_set_value() = true && arg_ignore_null = false) | 540 | | // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false) | 541 | 5 | if ((this->has_set_value()) && | 542 | 5 | (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) { | 543 | 2 | return; | 544 | 2 | } | 545 | 5 | DCHECK_LE(frame_start, frame_end); | 546 | 3 | if (frame_start >= partition_end || frame_end <= partition_start) { | 547 | 0 | this->set_is_null(); | 548 | 0 | return; | 549 | 0 | } | 550 | 3 | frame_start = std::max<int64_t>(frame_start, partition_start); | 551 | | | 552 | | if constexpr (arg_ignore_null) { | 553 | | frame_end = std::min<int64_t>(frame_end, partition_end); | 554 | | if (columns[0]->is_nullable()) { | 555 | | const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]); | 556 | | // the valid range is: [frame_start, frame_end) | 557 | | while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) { | 558 | | frame_start++; | 559 | | } | 560 | | } | 561 | | } | 562 | 3 | this->set_value(columns, frame_start); | 563 | 3 | } |
Unexecuted instantiation: _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE Line | Count | Source | 538 | 467 | int64_t frame_end, const IColumn** columns) { | 539 | | // case 1: (has_set_value() = true && arg_ignore_null = false) | 540 | | // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false) | 541 | 467 | if ((this->has_set_value()) && | 542 | 467 | (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) { | 543 | 206 | return; | 544 | 206 | } | 545 | 467 | DCHECK_LE(frame_start, frame_end); | 546 | 261 | if (frame_start >= partition_end || frame_end <= partition_start) { | 547 | 4 | this->set_is_null(); | 548 | 4 | return; | 549 | 4 | } | 550 | 257 | frame_start = std::max<int64_t>(frame_start, partition_start); | 551 | | | 552 | | if constexpr (arg_ignore_null) { | 553 | | frame_end = std::min<int64_t>(frame_end, partition_end); | 554 | | if (columns[0]->is_nullable()) { | 555 | | const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]); | 556 | | // the valid range is: [frame_start, frame_end) | 557 | | while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) { | 558 | | frame_start++; | 559 | | } | 560 | | } | 561 | | } | 562 | 257 | this->set_value(columns, frame_start); | 563 | 257 | } |
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE Line | Count | Source | 538 | 967 | int64_t frame_end, const IColumn** columns) { | 539 | | // case 1: (has_set_value() = true && arg_ignore_null = false) | 540 | | // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false) | 541 | 967 | if ((this->has_set_value()) && | 542 | 967 | (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) { | 543 | 542 | return; | 544 | 542 | } | 545 | 967 | DCHECK_LE(frame_start, frame_end); | 546 | 425 | if (frame_start >= partition_end || frame_end <= partition_start) { | 547 | 16 | this->set_is_null(); | 548 | 16 | return; | 549 | 16 | } | 550 | 409 | frame_start = std::max<int64_t>(frame_start, partition_start); | 551 | | | 552 | | if constexpr (arg_ignore_null) { | 553 | | frame_end = std::min<int64_t>(frame_end, partition_end); | 554 | | if (columns[0]->is_nullable()) { | 555 | | const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]); | 556 | | // the valid range is: [frame_start, frame_end) | 557 | | while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) { | 558 | | frame_start++; | 559 | | } | 560 | | } | 561 | | } | 562 | 409 | this->set_value(columns, frame_start); | 563 | 409 | } |
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 | 538 | 4 | int64_t frame_end, const IColumn** columns) { | 539 | | // case 1: (has_set_value() = true && arg_ignore_null = false) | 540 | | // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false) | 541 | 4 | if ((this->has_set_value()) && | 542 | 4 | (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) { | 543 | 0 | return; | 544 | 0 | } | 545 | 4 | DCHECK_LE(frame_start, frame_end); | 546 | 4 | if (frame_start >= partition_end || frame_end <= partition_start) { | 547 | 0 | this->set_is_null(); | 548 | 0 | return; | 549 | 0 | } | 550 | 4 | frame_start = std::max<int64_t>(frame_start, partition_start); | 551 | | | 552 | 4 | if constexpr (arg_ignore_null) { | 553 | 4 | frame_end = std::min<int64_t>(frame_end, partition_end); | 554 | 4 | if (columns[0]->is_nullable()) { | 555 | 0 | const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]); | 556 | | // the valid range is: [frame_start, frame_end) | 557 | 0 | while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) { | 558 | 0 | frame_start++; | 559 | 0 | } | 560 | 0 | } | 561 | 4 | } | 562 | 4 | this->set_value(columns, frame_start); | 563 | 4 | } |
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EE22add_range_single_placeEllllPPKNS_7IColumnE Line | Count | Source | 538 | 49 | int64_t frame_end, const IColumn** columns) { | 539 | | // case 1: (has_set_value() = true && arg_ignore_null = false) | 540 | | // case 2: (has_set_value() = true && arg_ignore_null = true && is_null() = false) | 541 | 49 | if ((this->has_set_value()) && | 542 | 49 | (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) { | 543 | 14 | return; | 544 | 14 | } | 545 | 49 | DCHECK_LE(frame_start, frame_end); | 546 | 35 | if (frame_start >= partition_end || frame_end <= partition_start) { | 547 | 6 | this->set_is_null(); | 548 | 6 | return; | 549 | 6 | } | 550 | 29 | frame_start = std::max<int64_t>(frame_start, partition_start); | 551 | | | 552 | 29 | if constexpr (arg_ignore_null) { | 553 | 29 | frame_end = std::min<int64_t>(frame_end, partition_end); | 554 | 29 | if (columns[0]->is_nullable()) { | 555 | 29 | const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]); | 556 | | // the valid range is: [frame_start, frame_end) | 557 | 38 | while (frame_start < frame_end - 1 && arg_nullable.is_null_at(frame_start)) { | 558 | 9 | frame_start++; | 559 | 9 | } | 560 | 29 | } | 561 | 29 | } | 562 | 29 | this->set_value(columns, frame_start); | 563 | 29 | } |
|
564 | | |
565 | 1.02k | static const char* name() { return "first_value"; }_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EE4nameEv Line | Count | Source | 565 | 1 | static const char* name() { return "first_value"; } |
Unexecuted instantiation: _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EE4nameEv _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EE4nameEv Line | Count | Source | 565 | 591 | static const char* name() { return "first_value"; } |
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EE4nameEv Line | Count | Source | 565 | 421 | static const char* name() { return "first_value"; } |
Unexecuted instantiation: _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EE4nameEv Unexecuted instantiation: _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EE4nameEv _ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EE4nameEv Line | Count | Source | 565 | 3 | static const char* name() { return "first_value"; } |
_ZN5doris23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EE4nameEv Line | Count | Source | 565 | 12 | static const char* name() { return "first_value"; } |
|
566 | | }; |
567 | | |
568 | | template <typename Data, bool arg_ignore_null = false> |
569 | | struct WindowFunctionLastImpl : Data { |
570 | | void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start, |
571 | 1.21k | int64_t frame_end, const IColumn** columns) { |
572 | 1.21k | DCHECK_LE(frame_start, frame_end); |
573 | 1.21k | if ((frame_end <= partition_start) || |
574 | 1.21k | (frame_start >= partition_end)) { //beyond or under partition, set null |
575 | 254 | if ((this->has_set_value()) && |
576 | 254 | (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) { |
577 | | // have set value, do nothing, because like rows unbouned preceding and M following |
578 | | // it's caculated as the cumulative mode, so it's could reuse the previous |
579 | 228 | } else { |
580 | 228 | this->set_is_null(); |
581 | 228 | } |
582 | 254 | return; |
583 | 254 | } |
584 | 964 | frame_end = std::min<int64_t>(frame_end, partition_end); |
585 | | |
586 | 964 | if constexpr (arg_ignore_null) { |
587 | 64 | frame_start = std::max<int64_t>(frame_start, partition_start); |
588 | 64 | if (columns[0]->is_nullable()) { |
589 | 64 | const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]); |
590 | | // wants find a not null value in [frame_start, frame_end) |
591 | | // iff has find: set_value and return directly |
592 | | // iff not find: the while loop is finished |
593 | | // case 1: iff has_set_value, means the previous window have value, could reuse it, so return directly |
594 | | // case 2: iff not has_set_value, means there is none value, set it's to NULL |
595 | 105 | while (frame_start < frame_end) { |
596 | 81 | if (arg_nullable.is_null_at(frame_end - 1)) { |
597 | 41 | frame_end--; |
598 | 41 | } else { |
599 | 40 | this->set_value(columns, frame_end - 1); |
600 | 40 | return; |
601 | 40 | } |
602 | 81 | } |
603 | 24 | if (!this->has_set_value()) { |
604 | 9 | this->set_is_null(); |
605 | 9 | } |
606 | 24 | return; |
607 | 64 | } |
608 | 64 | } |
609 | | |
610 | 0 | this->set_value(columns, frame_end - 1); |
611 | 964 | } 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 | 571 | 426 | int64_t frame_end, const IColumn** columns) { | 572 | 426 | DCHECK_LE(frame_start, frame_end); | 573 | 426 | if ((frame_end <= partition_start) || | 574 | 426 | (frame_start >= partition_end)) { //beyond or under partition, set null | 575 | 216 | if ((this->has_set_value()) && | 576 | 216 | (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) { | 577 | | // have set value, do nothing, because like rows unbouned preceding and M following | 578 | | // it's caculated as the cumulative mode, so it's could reuse the previous | 579 | 204 | } else { | 580 | 204 | this->set_is_null(); | 581 | 204 | } | 582 | 216 | return; | 583 | 216 | } | 584 | 210 | frame_end = std::min<int64_t>(frame_end, partition_end); | 585 | | | 586 | | if constexpr (arg_ignore_null) { | 587 | | frame_start = std::max<int64_t>(frame_start, partition_start); | 588 | | if (columns[0]->is_nullable()) { | 589 | | const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]); | 590 | | // wants find a not null value in [frame_start, frame_end) | 591 | | // iff has find: set_value and return directly | 592 | | // iff not find: the while loop is finished | 593 | | // case 1: iff has_set_value, means the previous window have value, could reuse it, so return directly | 594 | | // case 2: iff not has_set_value, means there is none value, set it's to NULL | 595 | | while (frame_start < frame_end) { | 596 | | if (arg_nullable.is_null_at(frame_end - 1)) { | 597 | | frame_end--; | 598 | | } else { | 599 | | this->set_value(columns, frame_end - 1); | 600 | | return; | 601 | | } | 602 | | } | 603 | | if (!this->has_set_value()) { | 604 | | this->set_is_null(); | 605 | | } | 606 | | return; | 607 | | } | 608 | | } | 609 | | | 610 | 210 | this->set_value(columns, frame_end - 1); | 611 | 210 | } |
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EE22add_range_single_placeEllllPPKNS_7IColumnE Line | Count | Source | 571 | 728 | int64_t frame_end, const IColumn** columns) { | 572 | 728 | DCHECK_LE(frame_start, frame_end); | 573 | 728 | if ((frame_end <= partition_start) || | 574 | 728 | (frame_start >= partition_end)) { //beyond or under partition, set null | 575 | 38 | if ((this->has_set_value()) && | 576 | 38 | (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) { | 577 | | // have set value, do nothing, because like rows unbouned preceding and M following | 578 | | // it's caculated as the cumulative mode, so it's could reuse the previous | 579 | 24 | } else { | 580 | 24 | this->set_is_null(); | 581 | 24 | } | 582 | 38 | return; | 583 | 38 | } | 584 | 690 | frame_end = std::min<int64_t>(frame_end, partition_end); | 585 | | | 586 | | if constexpr (arg_ignore_null) { | 587 | | frame_start = std::max<int64_t>(frame_start, partition_start); | 588 | | if (columns[0]->is_nullable()) { | 589 | | const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]); | 590 | | // wants find a not null value in [frame_start, frame_end) | 591 | | // iff has find: set_value and return directly | 592 | | // iff not find: the while loop is finished | 593 | | // case 1: iff has_set_value, means the previous window have value, could reuse it, so return directly | 594 | | // case 2: iff not has_set_value, means there is none value, set it's to NULL | 595 | | while (frame_start < frame_end) { | 596 | | if (arg_nullable.is_null_at(frame_end - 1)) { | 597 | | frame_end--; | 598 | | } else { | 599 | | this->set_value(columns, frame_end - 1); | 600 | | return; | 601 | | } | 602 | | } | 603 | | if (!this->has_set_value()) { | 604 | | this->set_is_null(); | 605 | | } | 606 | | return; | 607 | | } | 608 | | } | 609 | | | 610 | 690 | this->set_value(columns, frame_end - 1); | 611 | 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 | 571 | 64 | int64_t frame_end, const IColumn** columns) { | 572 | 64 | DCHECK_LE(frame_start, frame_end); | 573 | 64 | if ((frame_end <= partition_start) || | 574 | 64 | (frame_start >= partition_end)) { //beyond or under partition, set null | 575 | 0 | if ((this->has_set_value()) && | 576 | 0 | (!arg_ignore_null || (arg_ignore_null && !this->is_null()))) { | 577 | | // have set value, do nothing, because like rows unbouned preceding and M following | 578 | | // it's caculated as the cumulative mode, so it's could reuse the previous | 579 | 0 | } else { | 580 | 0 | this->set_is_null(); | 581 | 0 | } | 582 | 0 | return; | 583 | 0 | } | 584 | 64 | frame_end = std::min<int64_t>(frame_end, partition_end); | 585 | | | 586 | 64 | if constexpr (arg_ignore_null) { | 587 | 64 | frame_start = std::max<int64_t>(frame_start, partition_start); | 588 | 64 | if (columns[0]->is_nullable()) { | 589 | 64 | const auto& arg_nullable = assert_cast<const ColumnNullable&>(*columns[0]); | 590 | | // wants find a not null value in [frame_start, frame_end) | 591 | | // iff has find: set_value and return directly | 592 | | // iff not find: the while loop is finished | 593 | | // case 1: iff has_set_value, means the previous window have value, could reuse it, so return directly | 594 | | // case 2: iff not has_set_value, means there is none value, set it's to NULL | 595 | 105 | while (frame_start < frame_end) { | 596 | 81 | if (arg_nullable.is_null_at(frame_end - 1)) { | 597 | 41 | frame_end--; | 598 | 41 | } else { | 599 | 40 | this->set_value(columns, frame_end - 1); | 600 | 40 | return; | 601 | 40 | } | 602 | 81 | } | 603 | 24 | if (!this->has_set_value()) { | 604 | 9 | this->set_is_null(); | 605 | 9 | } | 606 | 24 | return; | 607 | 64 | } | 608 | 64 | } | 609 | | | 610 | 0 | this->set_value(columns, frame_end - 1); | 611 | 64 | } |
|
612 | | |
613 | 358 | static const char* name() { return "last_value"; }Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EE4nameEv Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EE4nameEv _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EE4nameEv Line | Count | Source | 613 | 132 | static const char* name() { return "last_value"; } |
_ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EE4nameEv Line | Count | Source | 613 | 211 | static const char* name() { return "last_value"; } |
Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb1EE4nameEv Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb1EE4nameEv Unexecuted instantiation: _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb1EE4nameEv _ZN5doris22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb1EE4nameEv Line | Count | Source | 613 | 15 | static const char* name() { return "last_value"; } |
|
614 | | }; |
615 | | |
616 | | template <typename Data, bool = false> |
617 | | struct WindowFunctionNthValueImpl : Data { |
618 | | void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start, |
619 | 232 | int64_t frame_end, const IColumn** columns) { |
620 | 232 | DCHECK_LE(frame_start, frame_end); |
621 | 232 | int64_t real_frame_start = std::max<int64_t>(frame_start, partition_start); |
622 | 232 | int64_t real_frame_end = std::min<int64_t>(frame_end, partition_end); |
623 | 232 | this->_frame_start_pose = |
624 | 232 | this->_frame_total_rows ? this->_frame_start_pose : real_frame_start; |
625 | 232 | this->_frame_total_rows += real_frame_end - real_frame_start; |
626 | 232 | int64_t offset = assert_cast<const ColumnInt64&, TypeCheckOnRelease::DISABLE>(*columns[1]) |
627 | 232 | .get_data()[0] - |
628 | 232 | 1; |
629 | 232 | if (offset >= this->_frame_total_rows) { |
630 | | // offset is beyond the frame, so set null |
631 | 101 | this->set_is_null(); |
632 | 101 | return; |
633 | 101 | } |
634 | 131 | this->set_value(columns, offset + this->_frame_start_pose); |
635 | 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 | 619 | 232 | int64_t frame_end, const IColumn** columns) { | 620 | 232 | DCHECK_LE(frame_start, frame_end); | 621 | 232 | int64_t real_frame_start = std::max<int64_t>(frame_start, partition_start); | 622 | 232 | int64_t real_frame_end = std::min<int64_t>(frame_end, partition_end); | 623 | 232 | this->_frame_start_pose = | 624 | 232 | this->_frame_total_rows ? this->_frame_start_pose : real_frame_start; | 625 | 232 | this->_frame_total_rows += real_frame_end - real_frame_start; | 626 | 232 | int64_t offset = assert_cast<const ColumnInt64&, TypeCheckOnRelease::DISABLE>(*columns[1]) | 627 | 232 | .get_data()[0] - | 628 | 232 | 1; | 629 | 232 | if (offset >= this->_frame_total_rows) { | 630 | | // offset is beyond the frame, so set null | 631 | 101 | this->set_is_null(); | 632 | 101 | return; | 633 | 101 | } | 634 | 131 | this->set_value(columns, offset + this->_frame_start_pose); | 635 | 131 | } |
|
636 | | |
637 | 71 | static const char* name() { return "nth_value"; }Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb0EEELb0EE4nameEv Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb0ELb1EEELb0EE4nameEv Unexecuted instantiation: _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb0EEELb0EE4nameEv _ZN5doris26WindowFunctionNthValueImplINS_12NthValueDataILb1ELb1EEELb0EE4nameEv Line | Count | Source | 637 | 71 | static const char* name() { return "nth_value"; } |
|
638 | | }; |
639 | | |
640 | | template <typename Data> |
641 | | class WindowFunctionData final |
642 | | : public IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>> { |
643 | | public: |
644 | | WindowFunctionData(const DataTypes& argument_types_) |
645 | 444 | : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_), |
646 | 444 | _argument_type(argument_types_[0]) {}_ZN5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE Line | Count | Source | 645 | 9 | : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_), | 646 | 9 | _argument_type(argument_types_[0]) {} |
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE _ZN5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE Line | Count | Source | 645 | 1 | : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_), | 646 | 1 | _argument_type(argument_types_[0]) {} |
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE Line | Count | Source | 645 | 39 | : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_), | 646 | 39 | _argument_type(argument_types_[0]) {} |
_ZN5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE Line | Count | Source | 645 | 69 | : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_), | 646 | 69 | _argument_type(argument_types_[0]) {} |
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE _ZN5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE Line | Count | Source | 645 | 1 | : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_), | 646 | 1 | _argument_type(argument_types_[0]) {} |
_ZN5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE Line | Count | Source | 645 | 37 | : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_), | 646 | 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 | 645 | 15 | : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_), | 646 | 15 | _argument_type(argument_types_[0]) {} |
_ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE Line | Count | Source | 645 | 1 | : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_), | 646 | 1 | _argument_type(argument_types_[0]) {} |
Unexecuted instantiation: _ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE _ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE Line | Count | Source | 645 | 95 | : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_), | 646 | 95 | _argument_type(argument_types_[0]) {} |
_ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE Line | Count | Source | 645 | 76 | : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_), | 646 | 76 | _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 | 645 | 1 | : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_), | 646 | 1 | _argument_type(argument_types_[0]) {} |
_ZN5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE Line | Count | Source | 645 | 10 | : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_), | 646 | 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 | 645 | 23 | : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_), | 646 | 23 | _argument_type(argument_types_[0]) {} |
_ZN5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE Line | Count | Source | 645 | 58 | : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_), | 646 | 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 | 645 | 9 | : IAggregateFunctionDataHelper<Data, WindowFunctionData<Data>>(argument_types_), | 646 | 9 | _argument_type(argument_types_[0]) {} |
|
647 | | |
648 | 2.32k | String get_name() const override { return Data::name(); }_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE8get_nameB5cxx11Ev Line | Count | Source | 648 | 28 | String get_name() const override { return Data::name(); } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE8get_nameB5cxx11Ev _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE8get_nameB5cxx11Ev Line | Count | Source | 648 | 16 | String get_name() const override { return Data::name(); } |
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev Line | Count | Source | 648 | 167 | String get_name() const override { return Data::name(); } |
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE8get_nameB5cxx11Ev Line | Count | Source | 648 | 469 | String get_name() const override { return Data::name(); } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE8get_nameB5cxx11Ev _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE8get_nameB5cxx11Ev Line | Count | Source | 648 | 16 | String get_name() const override { return Data::name(); } |
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev Line | Count | Source | 648 | 171 | 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 | 648 | 70 | String get_name() const override { return Data::name(); } |
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE8get_nameB5cxx11Ev Line | Count | Source | 648 | 1 | String get_name() const override { return Data::name(); } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE8get_nameB5cxx11Ev _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE8get_nameB5cxx11Ev Line | Count | Source | 648 | 591 | String get_name() const override { return Data::name(); } |
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev Line | Count | Source | 648 | 422 | 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 | 648 | 3 | String get_name() const override { return Data::name(); } |
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE8get_nameB5cxx11Ev Line | Count | Source | 648 | 12 | 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 | 648 | 130 | String get_name() const override { return Data::name(); } |
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE8get_nameB5cxx11Ev Line | Count | Source | 648 | 211 | 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 | 648 | 15 | String get_name() const override { return Data::name(); } |
|
649 | | |
650 | 2.76k | DataTypePtr get_return_type() const override { |
651 | 2.76k | if constexpr (Data::result_nullable) { |
652 | 2.18k | return make_nullable(_argument_type); |
653 | 2.18k | } else { |
654 | 577 | return _argument_type; |
655 | 577 | } |
656 | 2.76k | } _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE15get_return_typeEv Line | Count | Source | 650 | 37 | DataTypePtr get_return_type() const override { | 651 | | if constexpr (Data::result_nullable) { | 652 | | return make_nullable(_argument_type); | 653 | 37 | } else { | 654 | 37 | return _argument_type; | 655 | 37 | } | 656 | 37 | } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE15get_return_typeEv _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE15get_return_typeEv Line | Count | Source | 650 | 17 | DataTypePtr get_return_type() const override { | 651 | 17 | if constexpr (Data::result_nullable) { | 652 | 17 | return make_nullable(_argument_type); | 653 | | } else { | 654 | | return _argument_type; | 655 | | } | 656 | 17 | } |
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE15get_return_typeEv Line | Count | Source | 650 | 206 | DataTypePtr get_return_type() const override { | 651 | 206 | if constexpr (Data::result_nullable) { | 652 | 206 | return make_nullable(_argument_type); | 653 | | } else { | 654 | | return _argument_type; | 655 | | } | 656 | 206 | } |
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE15get_return_typeEv Line | Count | Source | 650 | 538 | DataTypePtr get_return_type() const override { | 651 | | if constexpr (Data::result_nullable) { | 652 | | return make_nullable(_argument_type); | 653 | 538 | } else { | 654 | 538 | return _argument_type; | 655 | 538 | } | 656 | 538 | } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE15get_return_typeEv _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE15get_return_typeEv Line | Count | Source | 650 | 16 | DataTypePtr get_return_type() const override { | 651 | 16 | if constexpr (Data::result_nullable) { | 652 | 16 | return make_nullable(_argument_type); | 653 | | } else { | 654 | | return _argument_type; | 655 | | } | 656 | 16 | } |
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE15get_return_typeEv Line | Count | Source | 650 | 208 | DataTypePtr get_return_type() const override { | 651 | 208 | if constexpr (Data::result_nullable) { | 652 | 208 | return make_nullable(_argument_type); | 653 | | } else { | 654 | | return _argument_type; | 655 | | } | 656 | 208 | } |
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 | 650 | 86 | DataTypePtr get_return_type() const override { | 651 | 86 | if constexpr (Data::result_nullable) { | 652 | 86 | return make_nullable(_argument_type); | 653 | | } else { | 654 | | return _argument_type; | 655 | | } | 656 | 86 | } |
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE15get_return_typeEv Line | Count | Source | 650 | 2 | DataTypePtr get_return_type() const override { | 651 | | if constexpr (Data::result_nullable) { | 652 | | return make_nullable(_argument_type); | 653 | 2 | } else { | 654 | 2 | return _argument_type; | 655 | 2 | } | 656 | 2 | } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE15get_return_typeEv _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE15get_return_typeEv Line | Count | Source | 650 | 686 | DataTypePtr get_return_type() const override { | 651 | 686 | if constexpr (Data::result_nullable) { | 652 | 686 | return make_nullable(_argument_type); | 653 | | } else { | 654 | | return _argument_type; | 655 | | } | 656 | 686 | } |
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE15get_return_typeEv Line | Count | Source | 650 | 498 | DataTypePtr get_return_type() const override { | 651 | 498 | if constexpr (Data::result_nullable) { | 652 | 498 | return make_nullable(_argument_type); | 653 | | } else { | 654 | | return _argument_type; | 655 | | } | 656 | 498 | } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb1EEEE15get_return_typeEv Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb1EEEE15get_return_typeEv _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb1EEEE15get_return_typeEv Line | Count | Source | 650 | 4 | DataTypePtr get_return_type() const override { | 651 | 4 | if constexpr (Data::result_nullable) { | 652 | 4 | return make_nullable(_argument_type); | 653 | | } else { | 654 | | return _argument_type; | 655 | | } | 656 | 4 | } |
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE15get_return_typeEv Line | Count | Source | 650 | 22 | DataTypePtr get_return_type() const override { | 651 | 22 | if constexpr (Data::result_nullable) { | 652 | 22 | return make_nullable(_argument_type); | 653 | | } else { | 654 | | return _argument_type; | 655 | | } | 656 | 22 | } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb0EEELb0EEEE15get_return_typeEv Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb0ELb1EEELb0EEEE15get_return_typeEv _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb0EEELb0EEEE15get_return_typeEv Line | Count | Source | 650 | 154 | DataTypePtr get_return_type() const override { | 651 | 154 | if constexpr (Data::result_nullable) { | 652 | 154 | return make_nullable(_argument_type); | 653 | | } else { | 654 | | return _argument_type; | 655 | | } | 656 | 154 | } |
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE15get_return_typeEv Line | Count | Source | 650 | 268 | DataTypePtr get_return_type() const override { | 651 | 268 | if constexpr (Data::result_nullable) { | 652 | 268 | return make_nullable(_argument_type); | 653 | | } else { | 654 | | return _argument_type; | 655 | | } | 656 | 268 | } |
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 | 650 | 24 | DataTypePtr get_return_type() const override { | 651 | 24 | if constexpr (Data::result_nullable) { | 652 | 24 | return make_nullable(_argument_type); | 653 | | } else { | 654 | | return _argument_type; | 655 | | } | 656 | 24 | } |
|
657 | | |
658 | | void add_range_single_place(int64_t partition_start, int64_t partition_end, int64_t frame_start, |
659 | | int64_t frame_end, AggregateDataPtr place, const IColumn** columns, |
660 | 4.34k | Arena&, UInt8*, UInt8*) const override { |
661 | 4.34k | this->data(place).add_range_single_place(partition_start, partition_end, frame_start, |
662 | 4.34k | frame_end, columns); |
663 | 4.34k | } _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_ Line | Count | Source | 660 | 72 | Arena&, UInt8*, UInt8*) const override { | 661 | 72 | this->data(place).add_range_single_place(partition_start, partition_end, frame_start, | 662 | 72 | frame_end, columns); | 663 | 72 | } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_ _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_ Line | Count | Source | 660 | 7 | Arena&, UInt8*, UInt8*) const override { | 661 | 7 | this->data(place).add_range_single_place(partition_start, partition_end, frame_start, | 662 | 7 | frame_end, columns); | 663 | 7 | } |
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_ Line | Count | Source | 660 | 433 | Arena&, UInt8*, UInt8*) const override { | 661 | 433 | this->data(place).add_range_single_place(partition_start, partition_end, frame_start, | 662 | 433 | frame_end, columns); | 663 | 433 | } |
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_ Line | Count | Source | 660 | 555 | Arena&, UInt8*, UInt8*) const override { | 661 | 555 | this->data(place).add_range_single_place(partition_start, partition_end, frame_start, | 662 | 555 | frame_end, columns); | 663 | 555 | } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_ _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_ Line | Count | Source | 660 | 4 | Arena&, UInt8*, UInt8*) const override { | 661 | 4 | this->data(place).add_range_single_place(partition_start, partition_end, frame_start, | 662 | 4 | frame_end, columns); | 663 | 4 | } |
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_ Line | Count | Source | 660 | 332 | Arena&, UInt8*, UInt8*) const override { | 661 | 332 | this->data(place).add_range_single_place(partition_start, partition_end, frame_start, | 662 | 332 | frame_end, columns); | 663 | 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 | 660 | 232 | Arena&, UInt8*, UInt8*) const override { | 661 | 232 | this->data(place).add_range_single_place(partition_start, partition_end, frame_start, | 662 | 232 | frame_end, columns); | 663 | 232 | } |
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_ Line | Count | Source | 660 | 5 | Arena&, UInt8*, UInt8*) const override { | 661 | 5 | this->data(place).add_range_single_place(partition_start, partition_end, frame_start, | 662 | 5 | frame_end, columns); | 663 | 5 | } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_ _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_ Line | Count | Source | 660 | 467 | Arena&, UInt8*, UInt8*) const override { | 661 | 467 | this->data(place).add_range_single_place(partition_start, partition_end, frame_start, | 662 | 467 | frame_end, columns); | 663 | 467 | } |
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_ Line | Count | Source | 660 | 967 | Arena&, UInt8*, UInt8*) const override { | 661 | 967 | this->data(place).add_range_single_place(partition_start, partition_end, frame_start, | 662 | 967 | frame_end, columns); | 663 | 967 | } |
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 | 660 | 4 | Arena&, UInt8*, UInt8*) const override { | 661 | 4 | this->data(place).add_range_single_place(partition_start, partition_end, frame_start, | 662 | 4 | frame_end, columns); | 663 | 4 | } |
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_ Line | Count | Source | 660 | 49 | Arena&, UInt8*, UInt8*) const override { | 661 | 49 | this->data(place).add_range_single_place(partition_start, partition_end, frame_start, | 662 | 49 | frame_end, columns); | 663 | 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 | 660 | 426 | Arena&, UInt8*, UInt8*) const override { | 661 | 426 | this->data(place).add_range_single_place(partition_start, partition_end, frame_start, | 662 | 426 | frame_end, columns); | 663 | 426 | } |
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE22add_range_single_placeEllllPcPPKNS_7IColumnERNS_5ArenaEPhSD_ Line | Count | Source | 660 | 728 | Arena&, UInt8*, UInt8*) const override { | 661 | 728 | this->data(place).add_range_single_place(partition_start, partition_end, frame_start, | 662 | 728 | frame_end, columns); | 663 | 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 | 660 | 64 | Arena&, UInt8*, UInt8*) const override { | 661 | 64 | this->data(place).add_range_single_place(partition_start, partition_end, frame_start, | 662 | 64 | frame_end, columns); | 663 | 64 | } |
|
664 | | |
665 | 1.96k | void reset(AggregateDataPtr place) const override { this->data(place).reset(); }_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE5resetEPc Line | Count | Source | 665 | 13 | void reset(AggregateDataPtr place) const override { this->data(place).reset(); } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE5resetEPc _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE5resetEPc Line | Count | Source | 665 | 3 | void reset(AggregateDataPtr place) const override { this->data(place).reset(); } |
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE5resetEPc Line | Count | Source | 665 | 117 | void reset(AggregateDataPtr place) const override { this->data(place).reset(); } |
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE5resetEPc Line | Count | Source | 665 | 85 | void reset(AggregateDataPtr place) const override { this->data(place).reset(); } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE5resetEPc _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE5resetEPc Line | Count | Source | 665 | 1 | void reset(AggregateDataPtr place) const override { this->data(place).reset(); } |
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE5resetEPc Line | Count | Source | 665 | 48 | 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 | 665 | 182 | void reset(AggregateDataPtr place) const override { this->data(place).reset(); } |
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE5resetEPc Line | Count | Source | 665 | 3 | void reset(AggregateDataPtr place) const override { this->data(place).reset(); } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE5resetEPc _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE5resetEPc Line | Count | Source | 665 | 250 | void reset(AggregateDataPtr place) const override { this->data(place).reset(); } |
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE5resetEPc Line | Count | Source | 665 | 415 | 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 | 665 | 4 | void reset(AggregateDataPtr place) const override { this->data(place).reset(); } |
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE5resetEPc Line | Count | Source | 665 | 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 | 665 | 352 | void reset(AggregateDataPtr place) const override { this->data(place).reset(); } |
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE5resetEPc Line | Count | Source | 665 | 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 | 665 | 34 | void reset(AggregateDataPtr place) const override { this->data(place).reset(); } |
|
666 | | |
667 | 4.92k | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { |
668 | 4.92k | this->data(place).insert_result_into(to); |
669 | 4.92k | } _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 667 | 59 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { | 668 | 59 | this->data(place).insert_result_into(to); | 669 | 59 | } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb0ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE _ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 667 | 4 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { | 668 | 4 | this->data(place).insert_result_into(to); | 669 | 4 | } |
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLeadImplINS_11LeadLagDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 667 | 318 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { | 668 | 318 | this->data(place).insert_result_into(to); | 669 | 318 | } |
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 667 | 555 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { | 668 | 555 | this->data(place).insert_result_into(to); | 669 | 555 | } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb0ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE _ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 667 | 4 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { | 668 | 4 | this->data(place).insert_result_into(to); | 669 | 4 | } |
_ZNK5doris18WindowFunctionDataINS_21WindowFunctionLagImplINS_11LeadLagDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 667 | 332 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { | 668 | 332 | this->data(place).insert_result_into(to); | 669 | 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 | 667 | 230 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { | 668 | 230 | this->data(place).insert_result_into(to); | 669 | 230 | } |
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 667 | 5 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { | 668 | 5 | this->data(place).insert_result_into(to); | 669 | 5 | } |
Unexecuted instantiation: _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb0ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE _ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb0EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 667 | 724 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { | 668 | 724 | this->data(place).insert_result_into(to); | 669 | 724 | } |
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 667 | 1.14k | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { | 668 | 1.14k | this->data(place).insert_result_into(to); | 669 | 1.14k | } |
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 | 667 | 5 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { | 668 | 5 | this->data(place).insert_result_into(to); | 669 | 5 | } |
_ZNK5doris18WindowFunctionDataINS_23WindowFunctionFirstImplINS_13FirstLastDataILb1ELb1EEELb1EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 667 | 114 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { | 668 | 114 | this->data(place).insert_result_into(to); | 669 | 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 | 667 | 447 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { | 668 | 447 | this->data(place).insert_result_into(to); | 669 | 447 | } |
_ZNK5doris18WindowFunctionDataINS_22WindowFunctionLastImplINS_13FirstLastDataILb1ELb1EEELb0EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 667 | 906 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { | 668 | 906 | this->data(place).insert_result_into(to); | 669 | 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 | 667 | 83 | void insert_result_into(ConstAggregateDataPtr place, IColumn& to) const override { | 668 | 83 | this->data(place).insert_result_into(to); | 669 | 83 | } |
|
670 | | |
671 | | void add(AggregateDataPtr place, const IColumn** columns, ssize_t row_num, |
672 | 0 | Arena&) const override { |
673 | 0 | throw doris::Exception(Status::FatalError("WindowFunctionLeadLagData do not support add")); |
674 | 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 |
675 | 0 | void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena&) const override { |
676 | 0 | throw doris::Exception( |
677 | 0 | Status::FatalError("WindowFunctionLeadLagData do not support merge")); |
678 | 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 |
679 | 0 | void serialize(ConstAggregateDataPtr place, BufferWritable& buf) const override { |
680 | 0 | throw doris::Exception( |
681 | 0 | Status::FatalError("WindowFunctionLeadLagData do not support serialize")); |
682 | 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 |
683 | 0 | void deserialize(AggregateDataPtr place, BufferReadable& buf, Arena&) const override { |
684 | 0 | throw doris::Exception( |
685 | 0 | Status::FatalError("WindowFunctionLeadLagData do not support deserialize")); |
686 | 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 |
687 | | |
688 | | private: |
689 | | DataTypePtr _argument_type; |
690 | | }; |
691 | | |
692 | | } // namespace doris |
693 | | |
694 | | #include "common/compile_check_end.h" |