25#ifndef WINDOWS_INCLUDED
26#define WINDOWS_INCLUDED
320 int reason_index =
static_cast<int>(reason);
331 int reason_index =
static_cast<int>(reason);
342 int from_index =
static_cast<int>(from_reason);
343 int to_index =
static_cast<int>(to_reason);
784 while (o ==
nullptr && w !=
nullptr) {
809 while (w !=
nullptr) {
1023 bool partition_order);
1057 bool partition_order);
1439 bool expand_definition)
const;
A wrapper class which provides array bounds checking.
Definition: sql_array.h:47
This is used for segregating rows in groups (e.g.
Definition: item.h:6333
Definition: item_func.h:102
Class Item_sum is the base class used for special expressions that SQL calls 'set functions'.
Definition: item_sum.h:399
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:853
Definition: sql_list.h:434
A typesafe replacement for DYNAMIC_ARRAY.
Definition: mem_root_array.h:61
A typesafe replacement for DYNAMIC_ARRAY.
Definition: mem_root_array.h:426
Parse tree node for a single of a window extent's borders, cf.
Definition: parse_tree_nodes.h:1243
Parse tree node for a window's frame, cf.
Definition: parse_tree_nodes.h:1322
Definition: parse_tree_nodes.h:214
Parse tree node for a window; just a shallow wrapper for class Window, q.v.
Definition: parse_tree_window.h:39
This class represents a query block, aka a query specification, which is a query consisting of a SELE...
Definition: sql_lex.h:1156
SQL_I_List< Table_ref > m_table_list
List of tables in FROM clause - use Table_ref::next_local to traverse.
Definition: sql_lex.h:1898
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:168
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:34
Object containing parameters used when creating and using temporary tables.
Definition: temp_table_param.h:95
Represents the (explicit) window of a SQL 2003 section 7.11 <window clause>, or the implicit (inlined...
Definition: window.h:105
static bool equal_sort(Window *w1, Window *w2)
Return true of the physical[1] sort orderings for the two windows are the same, cf.
Definition: window.cc:736
int64 rowno_in_partition() const
See m_rowno_in_partition.
Definition: window.h:1321
Item_string *const m_inherit_from
<existing window name>
Definition: window.h:124
bool m_is_last_row_in_frame
Execution state: the current row is the last row in a window frame For some aggregate functions,...
Definition: window.h:644
bool m_row_optimizable
The functions are optimizable with ROW unit.
Definition: window.h:162
bool check_border_sanity2(THD *thd)
Like check_border_sanity1() but contains checks which must wait until the start of the execution phas...
Definition: window.cc:875
const bool m_is_reference
If true, m_name is an unbound window reference, other fields are unused.
Definition: window.h:129
bool needs_last_peer_in_frame() const
If we cannot compute one of window functions without looking at all rows in the peerset of the curren...
Definition: window.h:1089
void reset_order_by_peer_set()
Reset the current row's ORDER BY expressions when starting a new peer set.
Definition: window.cc:507
int64 last_rowno_in_range_frame() const
See m_last_rowno_in_range_frame.
Definition: window.h:1219
bool before_or_after_frame(bool before)
Common implementation of before_frame() and after_frame().
Definition: window.cc:540
void reset_all_wf_state()
Reset the execution state for all window functions defined on this window.
Definition: window.cc:1507
void apply_temp_table(THD *thd, const Func_ptr_array &items_to_copy)
Specify that this window is to be evaluated after a given temporary table.
Definition: window.cc:1528
bool in_new_order_by_peer_set(bool compare_all_order_by_items=true)
Determine if the current row is not in the same peer set as the previous row.
Definition: window.cc:528
bool opt_last_row() const
See m_opt_last_row.
Definition: window.h:1125
int64 m_rowno_in_partition
Execution state: The row number of the current row being readied for output within the partition.
Definition: window.h:502
void set_last_rowno_in_range_frame(uint64 rno)
See m_last_rowno_in_range_frame.
Definition: window.h:1226
void set_def_pos(uint pos)
Definition: window.h:768
Window & set_rowno_in_frame(int64 rowno)
See m_rowno_in_frame.
Definition: window.h:1313
int64 m_first_rowno_in_range_frame
Execution state: the row number of the first row in a frame when evaluating RANGE based frame bounds.
Definition: window.h:595
void reset_partition_state()
Reset window state for a new partition.
Definition: window.h:1411
Item_string * m_name
<window name>
Definition: window.h:117
Frame_buffer_position m_tmp_pos
Sometimes we read one row too many, so that the saved position will be too far out because we subsequ...
Definition: window.h:314
bool static_aggregates() const
Return true if the aggregates are static, i.e.
Definition: window.h:1115
int64 first_rowno_in_range_frame() const
See m_first_rowno_in_range_frame.
Definition: window.h:1349
bool after_frame()
Definition: window.h:928
int64 m_row_has_fields_in_out_table
If >=1: the row with this number (1-based, relative to start of partition) currently has its fields i...
Definition: window.h:422
void copy_pos(Window_retrieve_cached_row_reason from_reason, Window_retrieve_cached_row_reason to_reason)
Copy frame buffer position hint from one to another.
Definition: window.h:340
int64 m_frame_buffer_partition_offset
Execution state: Snapshot of m_frame_buffer_total_rows when we start a new partition,...
Definition: window.h:412
bool resolve_window_ordering(THD *thd, Ref_item_array ref_item_array, Table_ref *tables, mem_root_deque< Item * > *fields, ORDER *o, bool partition_order)
Resolve and set up the PARTITION BY or an ORDER BY list of a window.
Definition: window.cc:673
void restore_special_row(uint64 special_rowno, uchar *record)
Restore row special_rowno into record from in-memory copy.
Definition: window_iterators.cc:506
void set_row_has_fields_in_out_table(int64 rowno)
See m_row_has_fields_in_out_table.
Definition: window.h:1389
bool m_needs_peerset
(At least) one window function needs the peer set of the current row to evaluate the wf for the curre...
Definition: window.h:141
ORDER * m_sorting_order
merged partition/order by
Definition: window.h:115
const st_nth & opt_nth_row() const
See m_opt_nth_row.
Definition: window.h:1140
void set_first_rowno_in_range_frame(int64 rowno)
See m_first_rowno_in_range_frame.
Definition: window.h:1342
const Window * m_ancestor
resolved from existing window name
Definition: window.h:237
uint m_def_pos
Position of definition in query's text, 1 for leftmost.
Definition: window.h:123
Temp_table_param * m_frame_buffer_param
Execution state: used iff m_needs_frame_buffering.
Definition: window.h:383
const st_lead_lag & opt_lead_lag() const
See m_opt_lead_lag.
Definition: window.h:1145
bool aggregates_primed() const
See m_aggregates_primed.
Definition: window.h:1280
int64 row_has_fields_in_out_table() const
See m_row_has_fields_in_out_table.
Definition: window.h:1382
int64 m_is_last_row_in_peerset_within_frame
Execution state: used iff m_needs_last_peer_in_frame.
Definition: window.h:455
bool make_special_rows_cache(THD *thd, TABLE *out_tbl)
Allocate the cache for special rows.
Definition: window.cc:1320
size_t m_special_rows_cache_length[FBC_FIRST_KEY - FBC_LAST_KEY+1]
Length of each copy in m_special_rows_cache, in bytes.
Definition: window.h:434
void set_short_circuit(bool short_circuit)
Definition: window.h:1168
const PT_frame * frame() const
Get the frame, if any.
Definition: window.h:773
int64 m_part_row_number
Execution state: the current row number in the current partition.
Definition: window.h:463
PT_order_list *const m_order_by
<window order clause>
Definition: window.h:114
bool check_border_sanity1(THD *thd)
Check that frame borders are sane; resolution phase.
Definition: window.cc:802
int64 rowno_in_frame() const
Return the size of the frame in number of rows.
Definition: window.h:1308
static bool resolve_reference(THD *thd, Item_sum *wf, PT_window **m_window)
Resolve any named window to its definition and update m_window to point to the definition instead.
Definition: window.cc:428
void set_frame_buffer_param(Temp_table_param *p)
Setter for m_frame_buffer_param, q.v.
Definition: window.h:1155
bool short_circuit() const
Definition: window.h:1167
void set_frame_buffer(TABLE *tab)
Setter for m_frame_buffer, q.v.
Definition: window.h:1165
int64 frame_buffer_total_rows() const
See m_frame_buffer_total_rows.
Definition: window.h:1363
const PT_order_list * effective_partition_by() const
Get partition, if any.
Definition: window.h:806
Window(Item_string *name)
Reference to a named window.
Definition: window.h:726
bool needs_buffering() const
If we cannot compute one of window functions without looking at succeeding rows, return true,...
Definition: window.h:1075
int64 m_frame_buffer_total_rows
Execution state: The frame buffer tmp file is not truncated for each new partition.
Definition: window.h:405
bool check_window_functions2(THD *thd)
Like check_window_functions1() but contains checks which must wait until the start of the execution p...
Definition: window.cc:1275
bool m_do_copy_null
Execution state: make frame wf produce a NULL (or 0 depending, e.g.
Definition: window.h:652
bool m_opt_first_row
Window equires re-evaluation of the first row in optimized moving frame mode e.g.
Definition: window.h:183
bool m_inverse_aggregation
Execution state: do inverse, e.g.
Definition: window.h:659
bool m_range_optimizable
The functions are optimizable with RANGE unit.
Definition: window.h:170
bool m_static_aggregates
The aggregates (SUM, etc) can be evaluated once for a partition, since it is static,...
Definition: window.h:177
bool setup_ordering_cached_items(THD *thd, Query_block *select, const PT_order_list *o, bool partition_order)
Set up cached items for an partition or an order by list updating m_partition_items or m_order_by_ite...
Definition: window.cc:644
bool check_window_functions1(THD *thd, Query_block *select)
Check that the semantic requirements for window functions over this window are fulfilled,...
Definition: window.cc:121
Window(PT_order_list *partition_by, PT_order_list *order_by, PT_frame *frame)
Unnamed window.
Definition: window.h:733
static void eliminate_unused_objects(List< Window > *windows)
Check window definitions to remove unused windows.
Definition: window.cc:1024
bool check_unique_name(const List< Window > &windows)
Return true if this window's name is not unique in windows.
Definition: window.cc:629
ORDER * first_order_by() const
Get the first argument of the ORDER BY clause for this window if any.
Definition: window.cc:117
bool is_last_row_in_frame() const
See m_is_last_row_in_frame.
Definition: window.h:1290
void set_is_last_row_in_peerset_within_frame(bool value)
See m_is_last_row_in_peerset_within_frame.
Definition: window.h:1250
bool opt_first_row() const
See m_opt_first_row.
Definition: window.h:1120
bool m_needs_partition_cardinality
(At least) one window function needs the cardinality of the partition of the current row to evaluate ...
Definition: window.h:154
void set_name(Item_string *name)
We have a named window.
Definition: window.h:754
uchar * m_special_rows_cache
Holds a fixed number of copies of special rows; each copy can use up to m_special_rows_cache_max_leng...
Definition: window.h:432
static constexpr int FRAME_BUFFER_POSITIONS_CARD
Cardinality of m_frame_buffer_positions if no NTH_VALUE, LEAD/LAG.
Definition: window.h:253
static double compute_cost(double cost, const List< Window > &windows)
Compute sorting costs for windowing.
Definition: window.cc:1521
void set_is_last(bool last)
An override used by the hypergraph join optimizer only.
Definition: window.h:1135
int64 m_rowno_being_visited
Execution state: The number of the row being visited for its contribution to a window function,...
Definition: window.h:486
int64 first_rowno_in_rows_frame() const
Definition: window.h:1335
bool at_partition_border() const
Check if we have read all the rows in a partition, possibly having buffered them for further processi...
Definition: window.h:936
bool m_needs_last_peer_in_frame
(At least) one window function (currently JSON_OBJECTAGG) needs the last peer for the current row to ...
Definition: window.h:148
bool m_last
The last window to be evaluated at execution time.
Definition: window.h:194
void set_first_rowno_in_rows_frame(int64 rowno)
See m_first_rowno_in_rows_frame.
Definition: window.h:1331
const PT_order_list * effective_order_by() const
Get the ORDER BY, if any.
Definition: window.h:780
int64 m_rowno_in_frame
Execution state: the row number of the row we are looking at for evaluating its contribution to some ...
Definition: window.h:495
bool m_aggregates_primed
Execution state: for optimizable aggregates, cf.
Definition: window.h:510
Window(PT_order_list *partition_by, PT_order_list *order_by, PT_frame *frame, Item_string *inherit)
Unnamed window based on a named window.
Definition: window.h:740
Mem_root_array< Cached_item * > m_order_by_items
items for the ORDER BY exprs.
Definition: window.h:242
void set_ancestor(Window *a)
After resolving an existing window name reference in a window definition, we set the ancestor pointer...
Definition: window.h:760
void set_last_row_output(int64 rno)
See m_last_row_output.
Definition: window.h:1194
void save_special_row(uint64 special_rowno, TABLE *t)
Save row special_rowno in table t->record[0] to an in-memory copy for later restoration.
Definition: window_iterators.cc:488
int64 is_last_row_in_peerset_within_frame() const
See m_is_last_row_in_peerset_within_frame.
Definition: window.h:1243
bool needs_sorting() const
Determine if the window had either a partition clause (inclusive) or a ORDER BY clause,...
Definition: window.h:1069
st_lead_lag m_opt_lead_lag
Definition: window.h:234
bool before_frame()
While processing buffered rows in RANGE frame mode we, determine if the present row revisited from th...
Definition: window.h:925
void save_pos(Window_retrieve_cached_row_reason reason)
See m_tmp_pos.
Definition: window.h:319
int64 last_row_output() const
See m_last_row_output.
Definition: window.h:1189
bool setup_range_expressions(THD *thd)
For RANGE frames we need to do computations involving add/subtract and less than, smaller than.
Definition: window.cc:240
bool m_short_circuit
Holds whether this window should be “short-circuit”, ie., goes directly to the query output instead o...
Definition: window.h:389
void set_last_rowno_in_peerset(uint64 rno)
See m_last_rowno_in_peerset.
Definition: window.h:1238
Item_string * name() const
Get the name of a window.
Definition: window.h:765
int64 partition_rowno() const
Getter for m_part_row_number, q.v., the current row number within the partition.
Definition: window.h:1176
Query_block * m_query_block
The SELECT the window is on.
Definition: window.h:112
void reset_execution_state(Reset_level level)
Common function for all types of resetting.
Definition: window.cc:1371
ORDER * first_partition_by() const
Get the first argument of the PARTITION clause for this window if any.
Definition: window.cc:113
bool do_inverse() const
See m_inverse_aggregation.
Definition: window.h:1267
int64 m_first_rowno_in_rows_frame
Execution state.
Definition: window.h:613
void destroy()
Free structures that were set up during preparation of window functions.
Definition: window.cc:1350
static bool setup_windows1(THD *thd, Query_block *select, Ref_item_array ref_item_array, Table_ref *tables, mem_root_deque< Item * > *fields, List< Window > *windows)
Semantic checking of windows.
Definition: window.cc:1090
void set_rowno_being_visited(int64 rno)
See m_rowno_being_visited.
Definition: window.h:1204
size_t m_special_rows_cache_max_length
Maximum allocated size in m_special_rows_cache.
Definition: window.h:436
TABLE * frame_buffer() const
Getter for m_frame_buffer, q.v.
Definition: window.h:1160
const char * printable_name() const
Definition: window.cc:1500
TABLE * m_frame_buffer
Execution state: used iff m_needs_frame_buffering.
Definition: window.h:395
bool do_copy_null() const
See m_do_copy_null.
Definition: window.h:1257
Window & set_inverse(bool b)
See m_inverse_aggregation.
Definition: window.h:1272
void cleanup()
Free up any resource used to process the window functions of this window, e.g.
Definition: window.cc:1335
bool is_reference() const
Return if this window represents an unresolved window reference seen in a window function OVER clause...
Definition: window.h:880
bool m_partition_border
Execution state: the current row starts a new partition.
Definition: window.h:469
List< Item_sum > & functions()
Get the list of functions invoked on this window.
Definition: window.h:835
int64 m_last_rowno_in_peerset
Execution state: used iff m_needs_peerset.
Definition: window.h:449
void set_last_rowno_in_cache(uint64 rno)
See m_last_rowno_in_cache.
Definition: window.h:1214
void reset_lead_lag()
Reset execution state for LEAD/LAG for the current row in partition.
Definition: window.cc:1362
Temp_table_param * frame_buffer_param() const
Getter for m_frame_buffer_param, q.v.
Definition: window.h:1150
void reset_round()
Reset execution state for next call to JOIN::exec, cf.
Definition: window.h:1417
void set_frame_buffer_partition_offset(int64 offset)
See m_frame_buffer_partition_offset.
Definition: window.h:1368
int64 last_rowno_in_peerset() const
See m_last_rowno_in_peerset.
Definition: window.h:1233
bool optimizable_row_aggregates() const
Return true if the set of window functions are all ROW unit optimizable.
Definition: window.h:1103
Mem_root_array_YY< Frame_buffer_position > m_frame_buffer_positions
Execution state: used iff m_needs_frame_buffering.
Definition: window.h:305
int m_ordering_idx
The logical ordering index (into LogicalOrderings) needed by this window's PARTITION BY and ORDER BY ...
Definition: window.h:571
bool check_constant_bound(THD *thd, PT_border *border)
Check that a frame border is constant during execution and that it does not contain subqueries (relev...
Definition: window.cc:772
bool m_needs_frame_buffering
(At least) one window function needs to buffer frame rows for evaluation i.e.
Definition: window.h:135
bool is_last() const
See m_last.
Definition: window.h:1130
int64 m_last_rowno_in_cache
Execution state: used iff m_needs_frame_buffering.
Definition: window.h:443
Special_keys
Keys for m_special_rows_cache, for special rows (see the comment on m_special_row_cache).
Definition: window.h:364
@ FBC_LAST_KEY
Definition: window.h:375
@ FBC_FIRST_KEY
Definition: window.h:374
@ FBC_FIRST_IN_NEXT_PARTITION
We read an incoming row.
Definition: window.h:371
void print_frame(const THD *thd, String *str, enum_query_type qt) const
Definition: window.cc:1453
bool needs_peerset() const
If we cannot compute one of window functions without looking at all rows in the peerset of the curren...
Definition: window.h:1082
Reset_level
Definition: window.h:1425
@ RL_ROUND
Definition: window.h:1425
@ RL_PARTITION
Definition: window.h:1425
bool m_mark
Used temporarily by the hypergraph join optimizer to mark which windows are referred to by a given or...
Definition: window.h:578
Mem_root_array< Cached_item * > m_partition_items
items for the PARTITION BY columns
Definition: window.h:240
int64 m_last_rowno_in_range_frame
Execution state: used for RANGE bounds frame evaluation for the continued evaluation for current row ...
Definition: window.h:607
int64 m_last_row_output
Execution state: The number, in the current partition, of the last output row, i.e.
Definition: window.h:476
void print_border(const THD *thd, String *str, PT_border *b, enum_query_type qt) const
Definition: window.cc:1422
Bounds_checked_array< Arg_comparator > m_comparators[2]
Definition: window.h:564
uint def_pos() const
Definition: window.h:767
Window(Item_string *name, PT_order_list *part, PT_order_list *ord, PT_frame *frame, bool is_reference, Item_string *inherit)
Generic window constructor, shared.
Definition: window.h:670
PT_frame *const m_frame
<window frame clause>
Definition: window.h:116
void print(const THD *thd, String *str, enum_query_type qt, bool expand_definition) const
Definition: window.cc:1466
int64 rowno_being_visited() const
See m_rowno_being_visited.
Definition: window.h:1199
bool optimizable_range_aggregates() const
Return true if the set of window functions are all RANGE unit optimizable.
Definition: window.h:1109
void check_partition_boundary()
Check if the just read input row marks the start of a new partition.
Definition: window.cc:456
void set_rowno_in_partition(int64 rowno)
See m_rowno_in_partition.
Definition: window.h:1326
void restore_pos(Window_retrieve_cached_row_reason reason)
See m_tmp_pos.
Definition: window.h:330
bool has_windowing_steps() const
Definition: window.cc:1516
void set_frame_buffer_total_rows(int64 rows)
See m_frame_buffer_total_rows.
Definition: window.h:1356
int64 frame_buffer_partition_offset() const
See m_frame_buffer_partition_offset.
Definition: window.h:1375
void set_is_last_row_in_frame(bool b)
See m_is_last_row_in_frame.
Definition: window.h:1297
void set_aggregates_primed(bool b)
See m_aggregates_primed.
Definition: window.h:1285
st_nth m_opt_nth_row
Window requires re-evaluation of the Nth row in optimized moving frame mode e.g.
Definition: window.h:233
int64 last_rowno_in_cache() const
See m_last_rowno_in_cache.
Definition: window.h:1209
bool needs_partition_cardinality() const
If we need to read the entire partition before we can evaluate some window function(s) on this window...
Definition: window.h:1095
ORDER * sorting_order(THD *thd=nullptr, bool implicit_grouping=false)
Concatenation of columns in PARTITION BY and ORDER BY.
Definition: window.cc:393
List< Item_sum > m_functions
window functions based on 'this'
Definition: window.h:238
void set_do_copy_null(bool b)
See m_do_copy_null.
Definition: window.h:1262
PT_order_list *const m_partition_by
<window partition clause>
Definition: window.h:113
static void reorder_and_eliminate_sorts(List< Window > *windows)
Reorder windows and eliminate redundant ordering.
Definition: window.cc:752
bool m_opt_last_row
Window requires re-evaluation of the last row in optimized moving frame mode e.g.
Definition: window.h:189
static bool setup_windows2(THD *thd, List< Window > *windows)
Like setup_windows1() but contains operations which must wait until the start of the execution phase.
Definition: window.cc:1308
A (partial) implementation of std::deque allocating its blocks on a MEM_ROOT.
Definition: mem_root_deque.h:110
const char * p
Definition: ctype-mb.cc:1237
enum_query_type
Query type constants (usable as bitmap flags).
Definition: enum_query_type.h:31
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:222
Some integer typedefs for easier portability.
#define INT_MIN64
Definition: my_inttypes.h:75
unsigned char uchar
Definition: my_inttypes.h:52
int64_t int64
Definition: my_inttypes.h:68
uint64_t uint64
Definition: my_inttypes.h:69
thread_local MEM_ROOT ** THR_MALLOC
Definition: mysqld.cc:1560
static int record
Definition: mysqltest.cc:188
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1052
Holds information about a position in the buffer frame as stored in a temporary file (cf.
Definition: window.h:262
int64 m_rowno
Definition: window.h:266
uchar * m_position
< The size of the file position is determined by handler::ref_length
Definition: window.h:264
Frame_buffer_position(uchar *position, int64 rowno)
Definition: window.h:267
Mem_root_array_YY< st_ll_offset > m_offsets
sorted set of LEAD/LAG offsets
Definition: window.h:225
st_ll_offset()
Definition: window.h:210
int64 m_rowno
negative values is LEAD
Definition: window.h:209
bool operator<(const st_ll_offset &a) const
Used for sorting offsets in ascending order for faster traversal of frame buffer tmp file.
Definition: window.h:215
Mem_root_array_YY< st_offset > m_offsets
sorted set of NTH_VALUE offsets
Definition: window.h:220
bool operator<(const st_offset &a) const
Used for sorting offsets in ascending order for faster traversal of frame buffer tmp file.
Definition: window.h:205
st_offset()
Definition: window.h:200
bool m_from_last
Definition: window.h:199
int64 m_rowno
Definition: window.h:198
Collects evaluation requirements from a window function, used by Item_sum::check_wf_semantics and its...
Definition: window.h:1538
bool needs_buffer
Set to true if window function requires row buffering.
Definition: window.h:1542
bool needs_last_peer_in_frame
Set to true if we need last peer for evaluation within a frame (e.g.
Definition: window.h:1551
bool opt_first_row
Set to true if we need FIRST_VALUE or optimized MIN/MAX.
Definition: window.h:1555
bool range_optimizable
Similar to row_optimizable but for RANGE frame bounds unit.
Definition: window.h:1573
Window_evaluation_requirements()
Definition: window.h:1575
Window::st_offset opt_nth_row
Used if we have NTH_VALUE.
Definition: window.h:1560
bool opt_last_row
Set to true if we need LAST_VALUE or optimized MIN/MAX.
Definition: window.h:1559
bool row_optimizable
Set to true if we can compute a sliding window by a combination of undoing the contribution of rows g...
Definition: window.h:1569
bool needs_peerset
Set to true if we need peerset for evaluation (e.g.
Definition: window.h:1546
Window::st_ll_offset opt_ll_row
Used if we have LEAD or LAG.
Definition: window.h:1561
unsigned int uint
Definition: uca9-dump.cc:75
constexpr int kMaxWindows
The number of windows is limited to avoid the stack blowing up when constructing iterators recursivel...
Definition: window.h:83
Window_retrieve_cached_row_reason
Position hints for the frame buffer are saved for these kind of row accesses, cf.
Definition: window.h:65