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