mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
MDEV-15347: Valgrind or ASAN errors in mysql_make_view on query from information_schema
Make each lex pointing to statement lex instead of global pointer in THD (no need store and restore the global pointer and put it on SP stack).
This commit is contained in:
@ -6927,8 +6927,9 @@ void THD::reset_for_next_command(bool do_clear_error)
|
||||
We also assign thd->stmt_lex in lex_start(), but during bootstrap this
|
||||
code is executed first.
|
||||
*/
|
||||
thd->stmt_lex= &main_lex; thd->stmt_lex->current_select_number= 1;
|
||||
DBUG_PRINT("info", ("Lex %p stmt_lex: %p", thd->lex, thd->stmt_lex));
|
||||
DBUG_ASSERT(lex == &main_lex);
|
||||
main_lex.stmt_lex= &main_lex; main_lex.current_select_number= 1;
|
||||
DBUG_PRINT("info", ("Lex and stmt_lex: %p", &main_lex));
|
||||
/*
|
||||
Those two lines below are theoretically unneeded as
|
||||
THD::cleanup_after_query() should take care of this already.
|
||||
@ -7046,7 +7047,7 @@ mysql_new_select(LEX *lex, bool move_down)
|
||||
|
||||
if (!(select_lex= new (thd->mem_root) SELECT_LEX()))
|
||||
DBUG_RETURN(1);
|
||||
select_lex->select_number= ++thd->stmt_lex->current_select_number;
|
||||
select_lex->select_number= ++thd->lex->stmt_lex->current_select_number;
|
||||
select_lex->parent_lex= lex; /* Used in init_query. */
|
||||
select_lex->init_query();
|
||||
select_lex->init_select();
|
||||
|
Reference in New Issue
Block a user