--disable_query_log set @@session.explicit_defaults_for_timestamp=off; --enable_query_log # Initialise --disable_warnings drop table if exists t1,t2; --enable_warnings # ## ## Testing of the <=> operator ## # ## ## First some simple tests ## # select 0<=>0,0.0<=>0.0,0E0=0E0,'A'<=>'A',NULL<=>NULL; select 1<=>0,0<=>NULL,NULL<=>0; select 1.0<=>0.0,0.0<=>NULL,NULL<=>0.0; select 'A'<=>'B','A'<=>NULL,NULL<=>'A'; select 0<=>0.0, 0.0<=>0E0, 0E0<=>'0', 10.0<=>1E1, 10<=>10.0, 10<=>1E1; select 1.0<=>0E1,10<=>NULL,NULL<=>0.0, NULL<=>0E0; # ## ## Test with tables ## # create table t1 (id int primary key, value int); create table t2 (id int primary key, 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; select * from t1 where id =id; select * from t1 where value = value; select * from t1 where id = value or value=id; select * from t1 where value = null; select * from t1 where (value) = (null); --error 1064 select * from t1 where ROW(value) = ROW(null); select * from t1 where (id, value) = (1, null); drop table t1,t2; # ## ## Bug #12612: quoted bigint unsigned value and the use of 'in' in where clause ## create table t1 (a bigint primary key); insert into t1 values (4828532208463511553); select * from t1 where a = '4828532208463511553'; select * from t1 where a = 4828532208463511553; select * from t1 where a in ('4828532208463511553'); select * from t1 where a in (4828532208463511553,1); drop table t1; # ## End of 4.1 tests