1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

Merge branch '10.5' into 10.6

This commit is contained in:
Oleksandr Byelkin
2023-11-08 15:57:05 +01:00
381 changed files with 10233 additions and 5782 deletions

View File

@@ -1278,6 +1278,8 @@ public:
and all inner subselects.
*/
uint select_n_where_fields;
/* Total number of elements in group by and order by lists */
uint order_group_num;
/* reserved for exists 2 in */
uint select_n_reserved;
/*
@@ -1470,6 +1472,7 @@ public:
init_select();
}
bool setup_ref_array(THD *thd, uint order_group_num);
uint get_cardinality_of_ref_ptrs_slice(uint order_group_num_arg);
void print(THD *thd, String *str, enum_query_type query_type);
void print_item_list(THD *thd, String *str, enum_query_type query_type);
void print_set_clause(THD *thd, String *str, enum_query_type query_type);
@@ -1581,6 +1584,7 @@ public:
bool no_to_clones);
List<Window_spec> window_specs;
bool is_win_spec_list_built;
void prepare_add_window_spec(THD *thd);
bool add_window_def(THD *thd, LEX_CSTRING *win_name, LEX_CSTRING *win_ref,
SQL_I_List<ORDER> win_partition_list,
@@ -4249,7 +4253,7 @@ public:
const LEX_CSTRING *index,
const Lex_for_loop_bounds_st &bounds);
bool sp_for_loop_intrange_condition_test(THD *thd, const Lex_for_loop_st &loop);
bool sp_for_loop_intrange_finalize(THD *thd, const Lex_for_loop_st &loop);
bool sp_for_loop_intrange_iterate(THD *thd, const Lex_for_loop_st &loop);
/* Cursor FOR LOOP methods */
bool sp_for_loop_cursor_declarations(THD *thd, Lex_for_loop_st *loop,
@@ -4265,7 +4269,7 @@ public:
Lex_for_loop_bounds_st *bounds,
sp_lex_cursor *cur);
bool sp_for_loop_cursor_condition_test(THD *thd, const Lex_for_loop_st &loop);
bool sp_for_loop_cursor_finalize(THD *thd, const Lex_for_loop_st &);
bool sp_for_loop_cursor_iterate(THD *thd, const Lex_for_loop_st &);
/* Generic FOR LOOP methods*/
@@ -4323,9 +4327,12 @@ public:
*/
bool sp_for_loop_finalize(THD *thd, const Lex_for_loop_st &loop)
{
return loop.is_for_loop_cursor() ?
sp_for_loop_cursor_finalize(thd, loop) :
sp_for_loop_intrange_finalize(thd, loop);
if (loop.is_for_loop_cursor() ?
sp_for_loop_cursor_iterate(thd, loop) :
sp_for_loop_intrange_iterate(thd, loop))
return true;
// Generate a jump to the beginning of the loop
return sp_while_loop_finalize(thd);
}
bool sp_for_loop_outer_block_finalize(THD *thd, const Lex_for_loop_st &loop);