mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	The earlier pushed fix for the bug was incomplete. It did not remove the main cause of the problem: the function remove_eq_conds() removed always true multiple equalities from any conjunct, but did not adjust the list of them stored in Item_cond_and::cond_equal.current_level. Simplified the test case for the bug and moved it to another test file. The fix triggered changes in EXPLAIN EXTENDED for some queries.
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| drop table if exists t1,t2;
 | |
| select 0<=>0,0.0<=>0.0,0E0=0E0,"A"<=>"A",NULL<=>NULL;
 | |
| 0<=>0	0.0<=>0.0	0E0=0E0	"A"<=>"A"	NULL<=>NULL
 | |
| 1	1	1	1	1
 | |
| select 1<=>0,0<=>NULL,NULL<=>0;
 | |
| 1<=>0	0<=>NULL	NULL<=>0
 | |
| 0	0	0
 | |
| select 1.0<=>0.0,0.0<=>NULL,NULL<=>0.0;
 | |
| 1.0<=>0.0	0.0<=>NULL	NULL<=>0.0
 | |
| 0	0	0
 | |
| select "A"<=>"B","A"<=>NULL,NULL<=>"A";
 | |
| "A"<=>"B"	"A"<=>NULL	NULL<=>"A"
 | |
| 0	0	0
 | |
| select 0<=>0.0, 0.0<=>0E0, 0E0<=>"0", 10.0<=>1E1, 10<=>10.0, 10<=>1E1;
 | |
| 0<=>0.0	0.0<=>0E0	0E0<=>"0"	10.0<=>1E1	10<=>10.0	10<=>1E1
 | |
| 1	1	1	1	1	1
 | |
| select 1.0<=>0E1,10<=>NULL,NULL<=>0.0, NULL<=>0E0;
 | |
| 1.0<=>0E1	10<=>NULL	NULL<=>0.0	NULL<=>0E0
 | |
| 0	0	0	0
 | |
| create table t1 (id int, value int);
 | |
| create table t2 (id int, value int);
 | |
| insert into t1 values (1,null);
 | |
| insert into t2 values (1,null);
 | |
| select t1.*, t2.*, t1.value<=>t2.value from t1, t2 where t1.id=t2.id and t1.id=1;
 | |
| id	value	id	value	t1.value<=>t2.value
 | |
| 1	NULL	1	NULL	1
 | |
| select * from t1 where id <=>id;
 | |
| id	value
 | |
| 1	NULL
 | |
| select * from t1 where value <=> value;
 | |
| id	value
 | |
| 1	NULL
 | |
| select * from t1 where id <=> value or value<=>id;
 | |
| id	value
 | |
| drop table t1,t2;
 | |
| create table t1 (a bigint unsigned);
 | |
| insert into t1 values (4828532208463511553);
 | |
| select * from t1 where a = '4828532208463511553';
 | |
| a
 | |
| 4828532208463511553
 | |
| select * from t1 where a in ('4828532208463511553');
 | |
| a
 | |
| 4828532208463511553
 | |
| drop table t1;
 | |
| #End of 4.1 tests
 |