208 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			208 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| --disable_query_log
 | |
| set @@session.explicit_defaults_for_timestamp=off;
 | |
| --enable_query_log
 | |
| #owner: link.zt
 | |
| #owner group: sql1
 | |
| 
 | |
| #
 | |
| ## Bug 
 | |
| #
 | |
| # partition by key()
 | |
| --disable_warnings
 | |
| drop database if exists db1;
 | |
| drop database if exists db2;
 | |
| create database db1;
 | |
| create database db2;
 | |
| use db1;
 | |
| drop table if exists t1;
 | |
| create table t1(c1 int key) partition by key() partitions 2;
 | |
| --enable_warnings
 | |
| use db2;
 | |
| --disable_warnings
 | |
| drop table if exists t1;
 | |
| --enable_warnings
 | |
| create table t1(c1 int key) partition by key() partitions 2;
 | |
| select * from db1.t1,db2.t1;
 | |
| # partition by key(expr)
 | |
| use db1;
 | |
| --disable_warnings
 | |
| drop table if exists t1;
 | |
| create table t1(c1 int key) partition by key(c1) partitions 2;
 | |
| create database if not exists db2;
 | |
| use db2;
 | |
| --enable_warnings
 | |
| --disable_warnings
 | |
| drop table if exists t1;
 | |
| --enable_warnings
 | |
| create table t1(c1 int key) partition by key(c1) partitions 2;
 | |
| select * from db1.t1,db2.t1;
 | |
| # partition by hash(expr)
 | |
| use db1;
 | |
| --disable_warnings
 | |
| drop table if exists t1;
 | |
| create table t1(c1 int key) partition by hash(c1) partitions 2;
 | |
| create database if not exists db2;
 | |
| --enable_warnings
 | |
| use db2;
 | |
| --disable_warnings
 | |
| drop table if exists t1;
 | |
| --enable_warnings
 | |
| create table t1(c1 int key) partition by hash(c1) partitions 2;
 | |
| select * from db1.t1,db2.t1;
 | |
| 
 | |
| #
 | |
| --disable_warnings
 | |
| drop table if exists t1;
 | |
| --enable_warnings
 | |
| create table t1 (c1 int primary key, c2 int);
 | |
| insert into t1 values(1,8), (2,7), (3,6), (4,5);
 | |
| --error 1054
 | |
| select c1 from t1 group by t2.c1;
 | |
| --error 1052
 | |
| select c1, c2 as c1 from t1 group by c1;
 | |
| --sorted_result
 | |
| select c1, c2 as c1 from t1 group by t1.c1;
 | |
| --error 1052
 | |
| select c1 as c1, c2 as c1 from t1 group by c1;
 | |
| --sorted_result
 | |
| select c1 as c1, c2 as c1 from t1 group by t1.c1;
 | |
| --sorted_result
 | |
| select t1.c1 as cc from t1 group by t1.c1;
 | |
| --sorted_result
 | |
| select c1, c1 from t1 group by c1;
 | |
| select 1 as c1, 2 as c2 from t1 group by c1;
 | |
| --error 1052
 | |
| select 1 as c1, c1 from t1 group by c1;
 | |
| --disable_warnings
 | |
| select c1 as c2, c2 as c1 from t1 group by c1;
 | |
| --error 1052
 | |
| select c2+1 as c1, c1 from t1 group by c1;
 | |
| --enable_warnings
 | |
| select c1, c2 as c1 from t1 having t1.c1 > 2;
 | |
| select c1, c2 + 1 as c1 from t1 having t1.c1 > 2;
 | |
| --error 1052
 | |
| select c1, c2 + 1 as c1 from t1 having c1 > 2;
 | |
| --error 1052
 | |
| select c1, c2 + 1 as c1 from t1 order by c1;
 | |
| select c1, c2 + 1 as c1 from t1 order by t1.c1;
 | |
| --disable_warnings
 | |
| --error 1052
 | |
| select c1, c2 + 1 as c1 from t1 group by c1;
 | |
| --sorted_result
 | |
| select c1, c2 + 1 as c1 from t1 group by t1.c1;
 | |
| --enable_warnings
 | |
| select t1.c1 as c1 from t1 order by t1.c1;
 | |
| select t1.c1 as c2 from t1 order by t1.c1;
 | |
| drop table t1;
 | |
| 
 | |
| #
 | |
| --disable_warnings
 | |
| drop table if exists t1, t2;
 | |
| --enable_warnings
 | |
| create table t1 (a int(11), b char(10), key (a));
 | |
| insert into t1 (a) values (1),(2),(3),(4);
 | |
| create table t2 (a int);
 | |
| select * from t1 left join t2 on t1.a=t2.a order by t1.a;
 | |
| select * from t1 left join t2 on t1.a=t2.a having not (t2.a <=> t1.a) order by t1.a;
 | |
| select exists(( select 1));
 | |
| select exists( select 1);
 | |
| drop table t1,t2;
 | |
| 
 | |
| create table t1(c1 int, c2 int);
 | |
| insert into t1 values(1, 1), (2, 2);
 | |
| select * from t1 where c1<'2';
 | |
| select * from t1 where c1>'1';
 | |
| select * from t1 where c1='2';
 | |
| select * from t1 where c1!='2';
 | |
| select * from t1 where c1<='2';
 | |
| select * from t1 where c1>='2';
 | |
| select * from t1 where c1+'1'<=3;
 | |
| select * from t1 where c1+'1'>=2;
 | |
| drop table t1;
 | |
| 
 | |
| create table t1(c1 int primary key, c2 int);
 | |
| insert into t1 values(1, 1), (2, 2);
 | |
| select * from t1 where c1<'2';
 | |
| select * from t1 where c1>'1';
 | |
| select * from t1 where c1='2';
 | |
| select * from t1 where c1!='2';
 | |
| select * from t1 where c1<='2';
 | |
| select * from t1 where c1>='2';
 | |
| select * from t1 where c1+'1'<=3;
 | |
| select * from t1 where c1+'1'>=2;
 | |
| drop table t1;
 | |
| 
 | |
| ##like syntax
 | |
| SELECT 'a' = 'a ', 'a' LIKE 'a ';
 | |
| SELECT 'David!' LIKE 'David_';
 | |
| SELECT 'David!' LIKE '%D%v%';
 | |
| SELECT 'David!' LIKE 'David\_';
 | |
| SELECT 'David_' LIKE 'David\_';
 | |
| SELECT 'David_' LIKE 'David|_' ESCAPE '|';
 | |
| SELECT 'abc' LIKE 'ABC';
 | |
| SELECT 'abc' LIKE BINARY 'ABC';
 | |
| SELECT 10 LIKE '1%';
 | |
| SELECT 'David_' LIKE 'David|_' ESCAPE null;
 | |
| SELECT 'David_' LIKE 'David|_' ESCAPE 1;
 | |
| --error 1210
 | |
| SELECT 'David_' LIKE 'David|_' ESCAPE 12;
 | |
| --error 1210
 | |
| SELECT 'David_' LIKE 'David|_' ESCAPE '12';
 | |
| ## alias
 | |
| --disable_warnings
 | |
| drop table if exists a1,a2;
 | |
| --enable_warnings
 | |
| create table a2(rowkey_suffix2 int primary key, price2 int);
 | |
| create table a1(rowkey_suffix int primary key, price int);
 | |
| --error 1064
 | |
| select (select price from a2 where 1000 > price) as 'x', a1.* as 'with_alias' from a1;
 | |
| --error 1064
 | |
| select (select price from a2 where 1000 > price) as 'x', a1.* as with_alias from a1;
 | |
| --error 1241
 | |
| select 1 from dual where @a:=1 and (1, 2);
 | |
| --error 1241
 | |
| select 1 from dual where @a:=1 and (1, (select 2));
 | |
| --error 1241
 | |
| select 1 from dual where @a:=1 and (1, exists(select 2));
 | |
| 
 | |
| create table t1(c1 int);
 | |
| select 1 from t1 where c1 in (select c1 from t1 where exists( (select 1) union (select 1)));
 | |
| select (1 and 100) or 100;
 | |
| 
 | |
| drop table t1;
 | |
| create table t1(c1 bigint, c2 varchar(64), c3 datetime);
 | |
| insert into t1 values(20101010000000, '020101010000000', '2010-10-10 00:00:00');
 | |
| select * from t1 where c1=c2 and c1=cast('2010-10-10 00:00:00' as datetime);
 | |
| 
 | |
| --disable_warnings
 | |
| drop table if exists bug;
 | |
| --enable_warnings
 | |
| create table bug (col_float float);
 | |
| insert into bug values(100);
 | |
| select ((col_float and 100) or col_float) from bug;
 | |
| 
 | |
| drop table t1;
 | |
| create table test1 (id int,dt datetime(6), primary key(id, dt));
 | |
| insert into test1 values (0, '2017-01-01'), (0, '2017-01-02'), (0, '2017-01-03'), (1, '2017-01-01'), (1, '2017-01-02'), (1, '2017-01-03');
 | |
| select * from test1 where (id, dt) > (0, '2017-01-02') and (id, dt) <= (1, '2017-01-03');
 | |
| select * from test1 where (id, dt) > (0, '2017-01-02') and (id, dt) <= (1, '2017-01-03') and dt < '2017-01-02';
 | |
| 
 | |
| 
 | |
| #fix a bug :
 | |
| --result_format 4
 | |
| --error 1054
 | |
| select cast '';
 | |
| --error 1054
 | |
| select length '';
 | |
| --error 1054
 | |
| select yearweek '';
 | |
| --error 1054
 | |
| select lala '';
 | |
| select 1 '';
 | |
| select 2 '';
 | |
| select 2 as '';
 | |
| select 1 as '';
 | |
| 
 | |
| drop database if exists db1;
 | |
| drop database if exists db2;
 | 
