mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 02:30:06 +01:00
82 lines
2 KiB
PHP
82 lines
2 KiB
PHP
|
--echo #
|
||
|
--echo # Delete with EXISTS subquery over the updated table
|
||
|
--echo # in WHERE + non-sargable condition
|
||
|
--echo #
|
||
|
|
||
|
analyze table t1 persistent for all;
|
||
|
|
||
|
let $c = exists (select 'X' from t1 a where a.c2 = t1.c2) and c2 = 3;
|
||
|
eval create table tmp as select * from t1 where $c;
|
||
|
let $q = delete from t1 where $c;
|
||
|
eval explain select * from t1 where $c;
|
||
|
eval explain $q;
|
||
|
--enable_info ONCE
|
||
|
eval $q;
|
||
|
--sorted_result
|
||
|
select * from t1;
|
||
|
insert into t1(c1,c2,c3) select c1,c2,c3 from tmp;
|
||
|
drop table tmp;
|
||
|
|
||
|
--echo #
|
||
|
--echo # Delete with order by
|
||
|
--echo #
|
||
|
|
||
|
analyze table t1 persistent for all;
|
||
|
|
||
|
let $c = exists (select 'X' from t1 a where a.c2 = t1.c2)
|
||
|
and c2 >= 3 order by c2;
|
||
|
eval create table tmp as select * from t1 where $c;
|
||
|
let $q = delete from t1 where $c;
|
||
|
--replace_column 9 #
|
||
|
eval explain select * from t1 where $c;
|
||
|
--replace_column 9 #
|
||
|
eval explain $q;
|
||
|
--replace_column 9 #
|
||
|
eval analyze $q;
|
||
|
--sorted_result
|
||
|
select * from t1;
|
||
|
insert into t1(c1,c2,c3) select c1,c2,c3 from tmp;
|
||
|
drop table tmp;
|
||
|
|
||
|
--echo #
|
||
|
--echo # Delete from view
|
||
|
--echo #
|
||
|
|
||
|
analyze table t1 persistent for all;
|
||
|
|
||
|
let $c = v1.c1 in
|
||
|
(select max(a.c1) from t1 a where a.c2 = v1.c2) and c3 = 5;
|
||
|
eval create table tmp as select * from v1 where $c;
|
||
|
let $q = delete from v1 where $c;
|
||
|
eval explain select * from v1 where $c;
|
||
|
eval explain $q;
|
||
|
--enable_info ONCE
|
||
|
eval $q;
|
||
|
--sorted_result
|
||
|
select * from t1;
|
||
|
insert into t1(c1,c2,c3) select c1,c2,c3 from tmp;
|
||
|
drop table tmp;
|
||
|
|
||
|
--echo #
|
||
|
--echo # Delete from view using reference
|
||
|
--echo # to the same view in subquery
|
||
|
--echo #
|
||
|
|
||
|
analyze table t1 persistent for all;
|
||
|
|
||
|
let $c = v1.c2 in (select max(a.c2) from t1 a where a.c3 = v1.c3)
|
||
|
and c1 = 2
|
||
|
and exists (select 'X' from v1 a where a.c1 = v1.c1);
|
||
|
eval create table tmp as select * from v1 where $c;
|
||
|
let $q = delete from v1 where $c;
|
||
|
--replace_column 9 #
|
||
|
eval explain select * from v1 where $c;
|
||
|
--replace_column 9 #
|
||
|
eval explain $q;
|
||
|
--replace_column 9 #
|
||
|
eval analyze $q;
|
||
|
--sorted_result
|
||
|
select * from t1;
|
||
|
insert into t1(c1,c2,c3) select c1,c2,c3 from tmp;
|
||
|
drop table tmp;
|