mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
c0f31dc9f3
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.1 KiB
Text
46 lines
1.1 KiB
Text
# 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, 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;
|
|
select * from t1 where id <=>id;
|
|
select * from t1 where value <=> value;
|
|
select * from t1 where id <=> value or value<=>id;
|
|
drop table t1,t2;
|
|
|
|
#
|
|
# Bug #12612: quoted bigint unsigned value and the use of "in" in where clause
|
|
#
|
|
create table t1 (a bigint unsigned);
|
|
insert into t1 values (4828532208463511553);
|
|
select * from t1 where a = '4828532208463511553';
|
|
select * from t1 where a in ('4828532208463511553');
|
|
drop table t1;
|
|
|
|
--echo #End of 4.1 tests
|