1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-07 00:04:31 +03:00

Merge tag '11.1' into 11.2

MariaDB 11.1.3 release
This commit is contained in:
Oleksandr Byelkin
2023-11-14 18:28:37 +01:00
608 changed files with 15628 additions and 9174 deletions

View File

@@ -1287,6 +1287,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;
/*
@@ -1479,6 +1481,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);
@@ -1590,6 +1593,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,
@@ -4308,7 +4312,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,
@@ -4324,7 +4328,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*/
@@ -4382,9 +4386,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);