mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-20699 followup.
Normally we disable caching of routines in "SHOW CREATE". Introduce an exception, if debug_dbug="+d,cache_sp_in_show_create". lock_sync.test needs a way to populate the cache without side effects, or else it runs into debug_sync timeouts. So, this possibility to cache will be remain only for very special tests.
This commit is contained in:
@ -205,6 +205,8 @@ end|
|
|||||||
# called below.
|
# called below.
|
||||||
#
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
|
set @save_dbug=@@debug_dbug;
|
||||||
|
set debug_dbug="+d,cache_sp_in_show_create";
|
||||||
# Cache all functions used in the tests below so statements
|
# Cache all functions used in the tests below so statements
|
||||||
# calling them won't need to open and lock mysql.proc table
|
# calling them won't need to open and lock mysql.proc table
|
||||||
# and we can assume that each statement locks its tables
|
# and we can assume that each statement locks its tables
|
||||||
@ -229,6 +231,7 @@ show create function f14;
|
|||||||
show create function f15;
|
show create function f15;
|
||||||
show create function f16;
|
show create function f16;
|
||||||
show create function f17;
|
show create function f17;
|
||||||
|
set debug_dbug=@save_dbug;
|
||||||
connection default;
|
connection default;
|
||||||
#
|
#
|
||||||
# 1. Statements that read tables and do not use subqueries.
|
# 1. Statements that read tables and do not use subqueries.
|
||||||
|
@ -232,6 +232,8 @@ let $con_aux2= con2;
|
|||||||
let $table= t1;
|
let $table= t1;
|
||||||
|
|
||||||
connection con1;
|
connection con1;
|
||||||
|
set @save_dbug=@@debug_dbug;
|
||||||
|
set debug_dbug="+d,cache_sp_in_show_create";
|
||||||
--echo # Cache all functions used in the tests below so statements
|
--echo # Cache all functions used in the tests below so statements
|
||||||
--echo # calling them won't need to open and lock mysql.proc table
|
--echo # calling them won't need to open and lock mysql.proc table
|
||||||
--echo # and we can assume that each statement locks its tables
|
--echo # and we can assume that each statement locks its tables
|
||||||
@ -257,6 +259,7 @@ show create function f14;
|
|||||||
show create function f15;
|
show create function f15;
|
||||||
show create function f16;
|
show create function f16;
|
||||||
show create function f17;
|
show create function f17;
|
||||||
|
set debug_dbug=@save_dbug;
|
||||||
--enable_result_log
|
--enable_result_log
|
||||||
connection default;
|
connection default;
|
||||||
|
|
||||||
|
@ -1903,6 +1903,14 @@ Sp_handler::sp_show_create_routine(THD *thd,
|
|||||||
of the binary log or the query cache, which currently it does not.
|
of the binary log or the query cache, which currently it does not.
|
||||||
*/
|
*/
|
||||||
sp_head *sp= 0;
|
sp_head *sp= 0;
|
||||||
|
|
||||||
|
DBUG_EXECUTE_IF("cache_sp_in_show_create",
|
||||||
|
/* Some tests need just need a way to cache SP without other side-effects.*/
|
||||||
|
sp_cache_routine(thd, name, false, &sp);
|
||||||
|
sp->show_create_routine(thd, this);
|
||||||
|
DBUG_RETURN(false);
|
||||||
|
);
|
||||||
|
|
||||||
bool free_sp= db_find_routine(thd, name, &sp) == SP_OK;
|
bool free_sp= db_find_routine(thd, name, &sp) == SP_OK;
|
||||||
bool ret= !sp || sp->show_create_routine(thd, this);
|
bool ret= !sp || sp->show_create_routine(thd, this);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
Reference in New Issue
Block a user