move test folder

This commit is contained in:
wangzelin.wzl
2022-08-12 19:29:16 +08:00
parent 29e0cb7475
commit d5269307a9
419 changed files with 275972 additions and 77007 deletions

View File

@ -0,0 +1,77 @@
--disable_query_log
set @@session.explicit_defaults_for_timestamp=off;
--enable_query_log
#owner: ryan.ly
#owner group: SQL1
# tags: optimizer
#tags: optimizer
#description: subquery in order by clause
#
--disable_warnings
drop table if exists t1,t2,t3,t4,t5;
--enable_warnings
CREATE TABLE t1 (
c1 int primary key,
c2 int, c3 int
) partition by hash(c1) partitions 4;
INSERT INTO t1 VALUES (1,1,1);
INSERT INTO t1 VALUES (2,2,2);
INSERT INTO t1 VALUES (3,3,3);
create table t2 (
c1 int primary key,
c2 int, c3 int
) partition by hash(c1) partitions 5;
INSERT INTO t2 VALUES (1,1,1);
INSERT INTO t2 VALUES (2,2,2);
INSERT INTO t2 VALUES (3,3,3);
create table t3 (
c1 int primary key,
c2 int, c3 int
) partition by hash(c1) partitions 6;
INSERT INTO t3 VALUES (1,1,1);
INSERT INTO t3 VALUES (2,2,2);
INSERT INTO t3 VALUES (3,3,3);
create table t4 (
c1 int primary key,
c2 int, c3 int
);
INSERT INTO t4 VALUES (1,1,1);
INSERT INTO t4 VALUES (2,2,2);
INSERT INTO t4 VALUES (3,3,3);
create table t5 (
c1 int primary key,
c2 int, c3 int
) partition by hash(c1) partitions 8;
INSERT INTO t5 VALUES (1,1,1);
select * from t1 order by c1;
select * from t1 order by c1,(select c1 from t2 limit 1);
select * from t1 order by c1,(select c1 from t2 where t1.c1=t2.c1);
select * from t1 order by c1,(select c1 from t4 where t1.c1=t4.c1);
select * from t1 order by c1,(select c1 from t2 where t1.c1=t2.c1 order by c1,(select c1 from t3 where t1.c1=t3.c1));
--error 1242
select * from t1 order by c1,(select c1 from t2);
--error 1242
select * from t1 order by c1,(select c1 from t2 limit 2);
--error 1242
select * from t1 order by c1,(select c1 from t2 where t1.c1<t2.c1);
--error 1242
select * from t1 order by c1,(select c1 from t2 where 1=t2.c1 order by c1,(select c1 from t3));
--error 1242
select * from t1 order by c1,(select c1 from t5 order by c1,(select c1 from t3));
(select * from t1 order by c1,(select c1 from t5 order by c1,(select c1 from t3))) intersect (select * from t1 order by c1,(select c1 from t5 order by c1,(select c1 from t3)));
(select * from t1 order by c1,(select c1 from t5 order by c1)) intersect (select * from t1 order by c1,(select c1 from t5 order by c1));
DROP TABLE t1,t2,t3,t4,t5;

View File

@ -0,0 +1,162 @@
--disable_query_log
set @@session.explicit_defaults_for_timestamp=off;
--enable_query_log
# owner: guoping.wgp
# owner group: sql4
# tags: optimizer
# description: 从mysql中迁移过来的基础subquery_sj_innodb.test测试集
--disable_warnings
drop table if exists t0, t1, t2, t3;
drop view if exists v1, v2, v3, v_t2, view_b, view_c;
--enable_warnings
#
# DuplicateElimination strategy test
#
-- disable_query_log
-- disable_result_log
#SET GLOBAL innodb_stats_persistent=0;
-- enable_result_log
-- enable_query_log
create table t0 (a int);
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
# First test simple cases: I20 order, no join buffering.
create table t1 (
a int,
b int
) ;
insert into t1 values (1,1),(1,1),(2,2);
create table t2 (
a int,
b int,
key(b)
) ;
insert into t2 select a, a/2 from t0;
sleep 1;
select * from t1;
select * from t2;
explain select * from t2 where b in (select a from t1);
select * from t2 where b in (select a from t1);
# Try an InnoDB table with very long rowid
create table t3 (
a int,
b int,
key(b),
pk1 char(50), pk2 char(50), pk3 char(50),
primary key(pk1, pk2, pk3)
) ;
insert into t3 select a,a, a,a,a from t0;
sleep 1;
explain select * from t3 where b in (select a from t1);
select * from t3 where b in (select a from t1);
# Test overflow to MyISAM:
#set @save_max_heap_table_size= @@max_heap_table_size;
#set max_heap_table_size=16384;
#set @save_join_buffer_size = @@join_buffer_size;
#set join_buffer_size= 8192;
drop table t3;
create table t3 (
a int,
b int,
key(b),
pk1 char(100), pk2 char(100),
primary key(pk1, pk2)
) ;
insert into t3 select
A.a + 10*B.a, A.a + 10*B.a, A.a + 10*B.a, A.a + 10*B.a
from t0 A, t0 B where B.a <5;
sleep 1;
--replace_column 9 #
explain select * from t3 where b in (select a from t0);
--sorted_result
select * from t3 where b in (select A.a+B.a from t0 A, t0 B where B.a<5);
#set join_buffer_size= @save_join_buffer_size;
#set max_heap_table_size= @save_max_heap_table_size;
# O2I join orders, with shortcutting:
explain select * from t1 where a in (select b from t2);
select * from t1;
select * from t1 where a in (select b from t2);
drop table t0, t1, t2, t3;
# (no need for anything in range/index_merge/DS-MRR)
#
# BUG#34799: crash or/and memory overrun with dependant subquery and some joins
#
create table t1 (a int);
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
create table t2 (a char(50), b char(50), c char(50), primary key (a,b,c)) ;
insert into t2 select concat(a, repeat('X',48)),repeat('B',50),repeat('B',50) from t1;
insert into t2 select concat(a, repeat('Y',48)),repeat('B',50),repeat('B',50) from t1;
alter table t2 add filler1 int;
insert into t1 select A.a + 10*(B.a + 10*C.a) from t1 A, t1 B, t1 C;
sleep 1;
#set @save_join_buffer_size=@@join_buffer_size;
--disable_warnings
#set join_buffer_size=1;
--enable_warnings
select * from t2 where filler1 in ( select a from t1);
#set join_buffer_size=default;
drop table t1, t2;
--echo
--echo BUG#42740: crash in optimize_semijoin_nests
--echo
create table t1 (c6 timestamp,key (c6)) ;
create table t2 (c2 double) ;
#explain select 1 from t2 where c2 = any (select log10(null) from t1 where c6 <null) ;
drop table t1, t2;
--echo #
--echo # BUG#42742: crash in setup_sj_materialization, Copy_field::set
--echo #
create table t3 ( c1 year) ;
insert into t3 values (2135),(2142);
create table t2 (c1 binary,c2 binary,c6 timestamp) ;
-- echo # The following must not crash, EXPLAIN should show one SJ strategy, not a mix:
explain select 1 from t2 where
c2 in (select 1 from t3, t2) and
c1 in (select convert(c6,char(1)) from t2);
drop table t2, t3;
--echo #
--echo # BUG#57431: subquery returns wrong result (semijoin=on) with pred AND
--echo #
CREATE TABLE t1 (
i INT
) ;
INSERT INTO t1 VALUES (2),(4);
CREATE TABLE t2 (
i INT,
vc VARCHAR(1)
) ;
INSERT INTO t2 VALUES (8,NULL);
SELECT i
FROM t1
WHERE i IN (SELECT innr.i
FROM t2 LEFT JOIN t2 innr ON innr.vc)
AND i = 2;
DROP TABLE t1, t2;
-- disable_query_log
-- disable_result_log
#SET GLOBAL innodb_stats_persistent=default;
-- enable_result_log
-- enable_query_log