| Server IP : 88.99.149.37 / Your IP : 216.73.216.141 Web Server : nginx/1.31.2 System : Linux server-88-99-149-37 6.12.0-124.56.5.el10_1.x86_64 #1 SMP PREEMPT_DYNAMIC Fri May 15 06:12:08 EDT 2026 x86_64 User : muralimurth ( 1015) PHP Version : 8.4.23 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/local/mysql/mysql-test/main/ |
Upload File : |
set @tmp_subselect_nulls=@@optimizer_switch; set optimizer_switch='semijoin=off'; create table x1(k int primary key, d1 int, d2 int); create table x2(k int primary key, d1 int, d2 int); insert into x1 values (10, 10, 10), (20, 20, 20), (21, 20, null), (30, null, 30), (40, 40, 40); insert into x2 values (10, 10, 10), (20, 20, 20), (21, 20, null), (30, null, 30); select * from x1 where (d1, d2) in (select d1, d2 from x2); k d1 d2 10 10 10 20 20 20 select * from x1 where (d1, d2) in (select d1, d2 from x2) is true; k d1 d2 10 10 10 20 20 20 select * from x1 where (d1, d2) in (select d1, d2 from x2) is false; k d1 d2 40 40 40 select * from x1 where (d1, d2) in (select d1, d2 from x2) is unknown; k d1 d2 21 20 NULL 30 NULL 30 select * from x1 where d1 in (select d1 from x2 where x1.d2=x2.d2); k d1 d2 10 10 10 20 20 20 select * from x1 where d1 in (select d1 from x2 where x1.d2=x2.d2) is true; k d1 d2 10 10 10 20 20 20 select * from x1 where d1 in (select d1 from x2 where x1.d2=x2.d2) is false; k d1 d2 21 20 NULL 40 40 40 select * from x1 where d1 in (select d1 from x2 where x1.d2=x2.d2) is unknown; k d1 d2 30 NULL 30 select * from x1 where 1 in (select 1 from x2 where x1.d1=x2.d1 and x1.d2=x2.d2); k d1 d2 10 10 10 20 20 20 select * from x1 where 1 in (select 1 from x2 where x1.d1=x2.d1 and x1.d2=x2.d2) is true; k d1 d2 10 10 10 20 20 20 select * from x1 where 1 in (select 1 from x2 where x1.d1=x2.d1 and x1.d2=x2.d2) is false; k d1 d2 21 20 NULL 30 NULL 30 40 40 40 select * from x1 where 1 in (select 1 from x2 where x1.d1=x2.d1 and x1.d2=x2.d2) is unknown; k d1 d2 select * from x1 where exists (select * from x2 where x1.d1=x2.d1 and x1.d2=x2.d2); k d1 d2 10 10 10 20 20 20 set optimizer_switch= @tmp_subselect_nulls; drop table x1; drop table x2; # # MDEV-7339 Server crashes in Item_func_trig_cond::val_int # select (select 1, 2) in (select 3, 4); (select 1, 2) in (select 3, 4) 0 select (select NULL, NULL) in (select 3, 4); (select NULL, NULL) in (select 3, 4) NULL # # End of 5.5 tests # # # MDEV-32555 wrong result with an index and a partially null-rejecting condition # create table t1 (a int primary key); insert t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9); create table t2 ( b int not null, c int default null, d int not null, e int not null, unique key (d,b,c) ); insert t2 values (1,null,1,1),(1,null,2,2),(1,null,3,3),(1,null,4,4),(2,null,1,2),(3,null,1,3),(4,null,2,2),(4,null,1,4); select ( select sum(t2_.e) from t2 t2_ where t2_.b = a and t2_.c <=> t2.c and t2_.d = 1 ) x from t2 left join t1 on a = b; x 1 2 3 4 1 4 1 1 drop table t1, t2; # # End of 10.10 tests # # # MDEV-32868 SELECT NULL,NULL IN (SUBQUERY) returns 0 instead of NULL # create table t1 (a int); insert into t1 values (1); create table t2 (a int, b int); insert into t2 values (null, null); # Scalar subquery returning NULLs as left part of IN # All NULLs on left, no match possible -> NULL (subquery has rows) select (select null, null) in (select 1, 2 from t1) from t1; (select null, null) in (select 1, 2 from t1) NULL # One NULL on left, other column matches -> NULL select (select null, 2) in (select 1, 2 from t1) from t1; (select null, 2) in (select 1, 2 from t1) NULL # One NULL on left, other column doesn't match -> FALSE select (select null, 3) in (select 1, 2 from t1) from t1; (select null, 3) in (select 1, 2 from t1) 0 # Table with NULLs as left part select (select * from t2) in (select 1, 2 from t1) from t1; (select * from t2) in (select 1, 2 from t1) NULL # Exact match -> TRUE select (select 1, 2) in (select 1, 2 from t1) from t1; (select 1, 2) in (select 1, 2 from t1) 1 # No match, no NULLs -> FALSE select (select 3, 4) in (select 1, 2 from t1) from t1; (select 3, 4) in (select 1, 2 from t1) 0 # Right side has NULLs create table t3 (a int, b int); insert into t3 values (1, null), (null, 2); # Left matches one column, right has NULL in other -> NULL select (select 1, 2) in (select * from t3) from t1; (select 1, 2) in (select * from t3) NULL # Both sides have NULLs -> NULL select (select null, 2) in (select * from t3) from t1; (select null, 2) in (select * from t3) NULL drop table t1, t2, t3; # # End of 10.11 tests #