Commit 11c75fc3 authored by Monty's avatar Monty

Fixed sporadically failing test show_explain_json.test

Code taken from MDEV-33423: show_analyze sporadically fails

Thanks to Sergei Petrunia for pointing this out.
parent 611d4425
...@@ -518,9 +518,12 @@ SET debug_dbug=@old_debug; ...@@ -518,9 +518,12 @@ SET debug_dbug=@old_debug;
# Try to do SHOW EXPLAIN for a query that runs a SET command: # Try to do SHOW EXPLAIN for a query that runs a SET command:
# I've found experimentally that select_id==2 here... # I've found experimentally that select_id==2 here...
# #
set @show_explain_probe_select_id=2; create table t2 (a int);
insert into t2 values (1),(2);
set @show_explain_probe_select_id=3;
SET debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
set @foo= (select max(a) from t0 where sin(a) >0); set @foo= (select max(a) from t2
where a + (select max(a) from t0 where t0.a>t2.a) < 10000);
connection default; connection default;
show explain format=JSON for $thr2; show explain format=JSON for $thr2;
ERROR HY000: Target is not executing an operation with a query plan ERROR HY000: Target is not executing an operation with a query plan
...@@ -528,6 +531,7 @@ kill query $thr2; ...@@ -528,6 +531,7 @@ kill query $thr2;
connection con1; connection con1;
ERROR 70100: Query execution was interrupted ERROR 70100: Query execution was interrupted
SET debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t2;
# #
# Attempt SHOW EXPLAIN for an UPDATE # Attempt SHOW EXPLAIN for an UPDATE
# #
......
...@@ -271,9 +271,16 @@ SET debug_dbug=@old_debug; ...@@ -271,9 +271,16 @@ SET debug_dbug=@old_debug;
--echo # Try to do SHOW EXPLAIN for a query that runs a SET command: --echo # Try to do SHOW EXPLAIN for a query that runs a SET command:
--echo # I've found experimentally that select_id==2 here... --echo # I've found experimentally that select_id==2 here...
--echo # --echo #
set @show_explain_probe_select_id=2;
create table t2 (a int);
insert into t2 values (1),(2);
set @show_explain_probe_select_id=3; # Stop in the subquery.
SET debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send set @foo= (select max(a) from t0 where sin(a) >0); # t2 has 2 rows so we will stop in the subquery twice:
# - first one to serve the SHOW ANALYZE request
# - second one when waiting to be KILLed.
send set @foo= (select max(a) from t2
where a + (select max(a) from t0 where t0.a>t2.a) < 10000);
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
--error ER_TARGET_NOT_EXPLAINABLE --error ER_TARGET_NOT_EXPLAINABLE
...@@ -283,6 +290,7 @@ connection con1; ...@@ -283,6 +290,7 @@ connection con1;
--error ER_QUERY_INTERRUPTED --error ER_QUERY_INTERRUPTED
reap; reap;
SET debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t2;
--echo # --echo #
--echo # Attempt SHOW EXPLAIN for an UPDATE --echo # Attempt SHOW EXPLAIN for an UPDATE
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment