403Webshell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/local/mysql/mysql-test/main/subselect_nulls.test
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);

# Test various IN and EXISTS queries with NULL values and UNKNOWN
# Q1 T=(10, 20) U=(21,30) F=(40)
select *
from x1
where (d1, d2) in (select d1, d2
                   from x2);
select *
from x1
where (d1, d2) in (select d1, d2
                   from x2) is true;
select *
from x1
where (d1, d2) in (select d1, d2
                   from x2) is false;
select *
from x1
where (d1, d2) in (select d1, d2
                   from x2) is unknown;

# Q2 T=(10, 20) U=(30) F=(21, 40)
select *
from x1
where d1 in (select d1
             from x2
             where x1.d2=x2.d2);
select *
from x1
where d1 in (select d1
             from x2
             where x1.d2=x2.d2) is true;
select *
from x1
where d1 in (select d1
             from x2
             where x1.d2=x2.d2) is false;
select *
from x1
where d1 in (select d1
             from x2
             where x1.d2=x2.d2) is unknown;

# Q3 T=(10, 20) U=() F=(21, 30, 40)
select *
from x1
where 1 in (select 1
            from x2
            where x1.d1=x2.d1 and x1.d2=x2.d2);
select *
from x1
where 1 in (select 1
            from x2
            where x1.d1=x2.d1 and x1.d2=x2.d2) is true;
select *
from x1
where 1 in (select 1
            from x2
            where x1.d1=x2.d1 and x1.d2=x2.d2) is false;
select *
from x1
where 1 in (select 1
            from x2
            where x1.d1=x2.d1 and x1.d2=x2.d2) is unknown;

# Q4 T=(10, 20) F=(21, 30, 40)
select *
from x1
where exists (select *
              from x2
              where x1.d1=x2.d1 and x1.d2=x2.d2);

set optimizer_switch= @tmp_subselect_nulls;

drop table x1;
drop table x2;

--echo #
--echo # MDEV-7339 Server crashes in Item_func_trig_cond::val_int
--echo #
select (select 1, 2) in (select 3, 4);
select (select NULL, NULL) in (select 3, 4);

--echo #
--echo # End of 5.5 tests
--echo #

--echo #
--echo # MDEV-32555 wrong result with an index and a partially null-rejecting condition
--echo #

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;

drop table t1, t2;

--echo #
--echo # End of 10.10 tests
--echo #

--echo #
--echo # MDEV-32868 SELECT NULL,NULL IN (SUBQUERY) returns 0 instead of NULL
--echo #

create table t1 (a int);
insert into t1 values (1);

create table t2 (a int, b int);
insert into t2 values (null, null);

--echo # Scalar subquery returning NULLs as left part of IN
--echo # All NULLs on left, no match possible -> NULL (subquery has rows)
select (select null, null) in (select 1, 2 from t1) from t1;

--echo # One NULL on left, other column matches -> NULL
select (select null, 2) in (select 1, 2 from t1) from t1;

--echo # One NULL on left, other column doesn't match -> FALSE
select (select null, 3) in (select 1, 2 from t1) from t1;

--echo # Table with NULLs as left part
select (select * from t2) in (select 1, 2 from t1) from t1;

--echo # Exact match -> TRUE
select (select 1, 2) in (select 1, 2 from t1) from t1;

--echo # No match, no NULLs -> FALSE
select (select 3, 4) in (select 1, 2 from t1) from t1;

--echo # Right side has NULLs
create table t3 (a int, b int);
insert into t3 values (1, null), (null, 2);

--echo # Left matches one column, right has NULL in other -> NULL
select (select 1, 2) in (select * from t3) from t1;

--echo # Both sides have NULLs -> NULL
select (select null, 2) in (select * from t3) from t1;

drop table t1, t2, t3;

--echo #
--echo # End of 10.11 tests
--echo #

Youez - 2016 - github.com/yon3zu
LinuXploit