188 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			188 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								create table t1 (USR_ID integer not null, MAX_REQ integer not null, constraint PK_SEA_USER primary key (USR_ID)) engine=InnoDB;
							 | 
						||
| 
								 | 
							
								insert into t1 values (1, 3);
							 | 
						||
| 
								 | 
							
								select count(*) + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ from t1 group by MAX_REQ;
							 | 
						||
| 
								 | 
							
								count(*) + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								select Case When Count(*) < MAX_REQ Then 1 Else 0 End from t1 where t1.USR_ID = 1 group by MAX_REQ;
							 | 
						||
| 
								 | 
							
								Case When Count(*) < MAX_REQ Then 1 Else 0 End
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								create table t1m (a int) engine=myisam;
							 | 
						||
| 
								 | 
							
								create table t1i (a int) engine=innodb;
							 | 
						||
| 
								 | 
							
								create table t2m (a int) engine=myisam;
							 | 
						||
| 
								 | 
							
								create table t2i (a int) engine=innodb;
							 | 
						||
| 
								 | 
							
								insert into t2m values (5);
							 | 
						||
| 
								 | 
							
								insert into t2i values (5);
							 | 
						||
| 
								 | 
							
								select min(a) from t1m;
							 | 
						||
| 
								 | 
							
								min(a)
							 | 
						||
| 
								 | 
							
								NULL
							 | 
						||
| 
								 | 
							
								select min(7) from t1m;
							 | 
						||
| 
								 | 
							
								min(7)
							 | 
						||
| 
								 | 
							
								NULL
							 | 
						||
| 
								 | 
							
								select min(7) from DUAL;
							 | 
						||
| 
								 | 
							
								min(7)
							 | 
						||
| 
								 | 
							
								7
							 | 
						||
| 
								 | 
							
								explain select min(7) from t2m join t1m;
							 | 
						||
| 
								 | 
							
								id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
							 | 
						||
| 
								 | 
							
								1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Select tables optimized away
							 | 
						||
| 
								 | 
							
								select min(7) from t2m join t1m;
							 | 
						||
| 
								 | 
							
								min(7)
							 | 
						||
| 
								 | 
							
								NULL
							 | 
						||
| 
								 | 
							
								select max(a) from t1m;
							 | 
						||
| 
								 | 
							
								max(a)
							 | 
						||
| 
								 | 
							
								NULL
							 | 
						||
| 
								 | 
							
								select max(7) from t1m;
							 | 
						||
| 
								 | 
							
								max(7)
							 | 
						||
| 
								 | 
							
								NULL
							 | 
						||
| 
								 | 
							
								select max(7) from DUAL;
							 | 
						||
| 
								 | 
							
								max(7)
							 | 
						||
| 
								 | 
							
								7
							 | 
						||
| 
								 | 
							
								explain select max(7) from t2m join t1m;
							 | 
						||
| 
								 | 
							
								id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
							 | 
						||
| 
								 | 
							
								1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Select tables optimized away
							 | 
						||
| 
								 | 
							
								select max(7) from t2m join t1m;
							 | 
						||
| 
								 | 
							
								max(7)
							 | 
						||
| 
								 | 
							
								NULL
							 | 
						||
| 
								 | 
							
								select 1, min(a) from t1m where a=99;
							 | 
						||
| 
								 | 
							
								1	min(a)
							 | 
						||
| 
								 | 
							
								1	NULL
							 | 
						||
| 
								 | 
							
								select 1, min(a) from t1m where 1=99;
							 | 
						||
| 
								 | 
							
								1	min(a)
							 | 
						||
| 
								 | 
							
								1	NULL
							 | 
						||
| 
								 | 
							
								select 1, min(1) from t1m where a=99;
							 | 
						||
| 
								 | 
							
								1	min(1)
							 | 
						||
| 
								 | 
							
								1	NULL
							 | 
						||
| 
								 | 
							
								select 1, min(1) from t1m where 1=99;
							 | 
						||
| 
								 | 
							
								1	min(1)
							 | 
						||
| 
								 | 
							
								1	NULL
							 | 
						||
| 
								 | 
							
								select 1, max(a) from t1m where a=99;
							 | 
						||
| 
								 | 
							
								1	max(a)
							 | 
						||
| 
								 | 
							
								1	NULL
							 | 
						||
| 
								 | 
							
								select 1, max(a) from t1m where 1=99;
							 | 
						||
| 
								 | 
							
								1	max(a)
							 | 
						||
| 
								 | 
							
								1	NULL
							 | 
						||
| 
								 | 
							
								select 1, max(1) from t1m where a=99;
							 | 
						||
| 
								 | 
							
								1	max(1)
							 | 
						||
| 
								 | 
							
								1	NULL
							 | 
						||
| 
								 | 
							
								select 1, max(1) from t1m where 1=99;
							 | 
						||
| 
								 | 
							
								1	max(1)
							 | 
						||
| 
								 | 
							
								1	NULL
							 | 
						||
| 
								 | 
							
								select min(a) from t1i;
							 | 
						||
| 
								 | 
							
								min(a)
							 | 
						||
| 
								 | 
							
								NULL
							 | 
						||
| 
								 | 
							
								select min(7) from t1i;
							 | 
						||
| 
								 | 
							
								min(7)
							 | 
						||
| 
								 | 
							
								NULL
							 | 
						||
| 
								 | 
							
								select min(7) from DUAL;
							 | 
						||
| 
								 | 
							
								min(7)
							 | 
						||
| 
								 | 
							
								7
							 | 
						||
| 
								 | 
							
								explain select min(7) from t2i join t1i;
							 | 
						||
| 
								 | 
							
								id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
							 | 
						||
| 
								 | 
							
								1	SIMPLE	t2i	ALL	NULL	NULL	NULL	NULL	1	
							 | 
						||
| 
								 | 
							
								1	SIMPLE	t1i	ALL	NULL	NULL	NULL	NULL	1	Using join buffer
							 | 
						||
| 
								 | 
							
								select min(7) from t2i join t1i;
							 | 
						||
| 
								 | 
							
								min(7)
							 | 
						||
| 
								 | 
							
								NULL
							 | 
						||
| 
								 | 
							
								select max(a) from t1i;
							 | 
						||
| 
								 | 
							
								max(a)
							 | 
						||
| 
								 | 
							
								NULL
							 | 
						||
| 
								 | 
							
								select max(7) from t1i;
							 | 
						||
| 
								 | 
							
								max(7)
							 | 
						||
| 
								 | 
							
								NULL
							 | 
						||
| 
								 | 
							
								select max(7) from DUAL;
							 | 
						||
| 
								 | 
							
								max(7)
							 | 
						||
| 
								 | 
							
								7
							 | 
						||
| 
								 | 
							
								explain select max(7) from t2i join t1i;
							 | 
						||
| 
								 | 
							
								id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
							 | 
						||
| 
								 | 
							
								1	SIMPLE	t2i	ALL	NULL	NULL	NULL	NULL	1	
							 | 
						||
| 
								 | 
							
								1	SIMPLE	t1i	ALL	NULL	NULL	NULL	NULL	1	Using join buffer
							 | 
						||
| 
								 | 
							
								select max(7) from t2i join t1i;
							 | 
						||
| 
								 | 
							
								max(7)
							 | 
						||
| 
								 | 
							
								NULL
							 | 
						||
| 
								 | 
							
								select 1, min(a) from t1i where a=99;
							 | 
						||
| 
								 | 
							
								1	min(a)
							 | 
						||
| 
								 | 
							
								1	NULL
							 | 
						||
| 
								 | 
							
								select 1, min(a) from t1i where 1=99;
							 | 
						||
| 
								 | 
							
								1	min(a)
							 | 
						||
| 
								 | 
							
								1	NULL
							 | 
						||
| 
								 | 
							
								select 1, min(1) from t1i where a=99;
							 | 
						||
| 
								 | 
							
								1	min(1)
							 | 
						||
| 
								 | 
							
								1	NULL
							 | 
						||
| 
								 | 
							
								select 1, min(1) from t1i where 1=99;
							 | 
						||
| 
								 | 
							
								1	min(1)
							 | 
						||
| 
								 | 
							
								1	NULL
							 | 
						||
| 
								 | 
							
								select 1, max(a) from t1i where a=99;
							 | 
						||
| 
								 | 
							
								1	max(a)
							 | 
						||
| 
								 | 
							
								1	NULL
							 | 
						||
| 
								 | 
							
								select 1, max(a) from t1i where 1=99;
							 | 
						||
| 
								 | 
							
								1	max(a)
							 | 
						||
| 
								 | 
							
								1	NULL
							 | 
						||
| 
								 | 
							
								select 1, max(1) from t1i where a=99;
							 | 
						||
| 
								 | 
							
								1	max(1)
							 | 
						||
| 
								 | 
							
								1	NULL
							 | 
						||
| 
								 | 
							
								select 1, max(1) from t1i where 1=99;
							 | 
						||
| 
								 | 
							
								1	max(1)
							 | 
						||
| 
								 | 
							
								1	NULL
							 | 
						||
| 
								 | 
							
								explain select count(*), min(7), max(7) from t1m, t1i;
							 | 
						||
| 
								 | 
							
								id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
							 | 
						||
| 
								 | 
							
								1	SIMPLE	t1m	system	NULL	NULL	NULL	NULL	0	const row not found
							 | 
						||
| 
								 | 
							
								1	SIMPLE	t1i	ALL	NULL	NULL	NULL	NULL	1	
							 | 
						||
| 
								 | 
							
								select count(*), min(7), max(7) from t1m, t1i;
							 | 
						||
| 
								 | 
							
								count(*)	min(7)	max(7)
							 | 
						||
| 
								 | 
							
								0	NULL	NULL
							 | 
						||
| 
								 | 
							
								explain select count(*), min(7), max(7) from t1m, t2i;
							 | 
						||
| 
								 | 
							
								id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
							 | 
						||
| 
								 | 
							
								1	SIMPLE	t1m	system	NULL	NULL	NULL	NULL	0	const row not found
							 | 
						||
| 
								 | 
							
								1	SIMPLE	t2i	ALL	NULL	NULL	NULL	NULL	1	
							 | 
						||
| 
								 | 
							
								select count(*), min(7), max(7) from t1m, t2i;
							 | 
						||
| 
								 | 
							
								count(*)	min(7)	max(7)
							 | 
						||
| 
								 | 
							
								0	NULL	NULL
							 | 
						||
| 
								 | 
							
								explain select count(*), min(7), max(7) from t2m, t1i;
							 | 
						||
| 
								 | 
							
								id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
							 | 
						||
| 
								 | 
							
								1	SIMPLE	t2m	system	NULL	NULL	NULL	NULL	1	
							 | 
						||
| 
								 | 
							
								1	SIMPLE	t1i	ALL	NULL	NULL	NULL	NULL	1	
							 | 
						||
| 
								 | 
							
								select count(*), min(7), max(7) from t2m, t1i;
							 | 
						||
| 
								 | 
							
								count(*)	min(7)	max(7)
							 | 
						||
| 
								 | 
							
								0	NULL	NULL
							 | 
						||
| 
								 | 
							
								drop table t1m, t1i, t2m, t2i;
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Bug#12713907: STRANGE OPTIMIZE & WRONG RESULT UNDER ORDER BY 
							 | 
						||
| 
								 | 
							
								# COUNT(*) LIMIT.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1 (
							 | 
						||
| 
								 | 
							
								id BIGINT(20) ,
							 | 
						||
| 
								 | 
							
								member_id_to INT(11) ,
							 | 
						||
| 
								 | 
							
								r_date DATE ,
							 | 
						||
| 
								 | 
							
								PRIMARY KEY (id,r_date),
							 | 
						||
| 
								 | 
							
								KEY r_date_idx (r_date),
							 | 
						||
| 
								 | 
							
								KEY t1_idx01 (member_id_to)
							 | 
						||
| 
								 | 
							
								) ENGINE=InnoDB;
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 VALUES
							 | 
						||
| 
								 | 
							
								(107924526,518491,'2011-05-01'),
							 | 
						||
| 
								 | 
							
								(107924527,518491,'2011-05-01'),
							 | 
						||
| 
								 | 
							
								(107924528,518491,'2011-05-01'),
							 | 
						||
| 
								 | 
							
								(107924529,518491,'2011-05-01'),
							 | 
						||
| 
								 | 
							
								(107924530,518491,'2011-05-01'),
							 | 
						||
| 
								 | 
							
								(107924531,518491,'2011-05-01'),
							 | 
						||
| 
								 | 
							
								(107924532,518491,'2011-05-01'),
							 | 
						||
| 
								 | 
							
								(107924534,518491,'2011-06-21'),
							 | 
						||
| 
								 | 
							
								(107924535,518491,'2011-06-21'),
							 | 
						||
| 
								 | 
							
								(107924536,518491,'2011-06-21'),
							 | 
						||
| 
								 | 
							
								(107924537,518491,'2011-06-21'),
							 | 
						||
| 
								 | 
							
								(107924538,518491,'2011-06-21'),
							 | 
						||
| 
								 | 
							
								(107924542,1601319,'2011-06-21'),
							 | 
						||
| 
								 | 
							
								(107924543,1601319,'2011-06-21'),
							 | 
						||
| 
								 | 
							
								(107924544,1601319,'2011-06-21'),
							 | 
						||
| 
								 | 
							
								(107924545,1601319,'2011-06-21'),
							 | 
						||
| 
								 | 
							
								(107924546,1601319,'2011-06-21'),
							 | 
						||
| 
								 | 
							
								(107924547,1601319,'2011-06-21'),
							 | 
						||
| 
								 | 
							
								(107924548,1601319,'2011-06-21'),
							 | 
						||
| 
								 | 
							
								(107924549,1601319,'2011-06-21'),
							 | 
						||
| 
								 | 
							
								(107924550,1601319,'2011-06-21');
							 | 
						||
| 
								 | 
							
								SELECT member_id_to, COUNT(*) FROM t1 WHERE r_date =
							 | 
						||
| 
								 | 
							
								'2011-06-21' GROUP BY member_id_to ORDER BY 2 LIMIT 1;
							 | 
						||
| 
								 | 
							
								member_id_to	COUNT(*)
							 | 
						||
| 
								 | 
							
								518491	5
							 | 
						||
| 
								 | 
							
								DROP TABLE t1;
							 | 
						||
| 
								 | 
							
								# End of test  BUG#12713907
							 |