You've already forked mariadb-columnstore-engine
							
							
				mirror of
				https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
				synced 2025-11-03 17:13:17 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			649 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			649 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
set default_storage_engine=columnstore;
 | 
						|
drop database if exists test_mcol4617;
 | 
						|
create database test_mcol4617;
 | 
						|
use test_mcol4617;
 | 
						|
create table cs1 (a int);
 | 
						|
insert into cs1 values (1), (2), (3), (4), (null);
 | 
						|
create table cs2 (b int, c int);
 | 
						|
insert into cs2 values (1, 100), (1, 101), (2, 200),
 | 
						|
(3, 300), (3, 301), (3, 302), (null, null);
 | 
						|
select * from cs1 where a in (select b from cs2);
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
select * from cs1 where a in (select c from cs2);
 | 
						|
a
 | 
						|
select * from cs1 where (a+a) in (select (b+b) from cs2);
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
select * from cs1 where (a+1) in (select b from cs2);
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
select * from cs1 where hex(a*10) in (select hex(b*10) from cs2);
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
select * from cs1 where a in (select b from cs2 where cs1.a=cs2.c-299);
 | 
						|
a
 | 
						|
3
 | 
						|
select * from cs1 where a is not null and a in (select b from cs2);
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
select * from cs1 where a in (select b from cs2) and a is null;
 | 
						|
a
 | 
						|
select * from cs1 where a in (select 2 from cs2) and a in (select b from cs2);
 | 
						|
a
 | 
						|
2
 | 
						|
select * from cs1 where a in (1,3) and a in (select b from cs2);
 | 
						|
a
 | 
						|
1
 | 
						|
3
 | 
						|
select * from cs1 where a in (select b from cs2 where b in (select a from cs1));
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
select * from cs1 where a in (select b from cs2 where b in (select a from cs1 where a in (2,3)));
 | 
						|
a
 | 
						|
2
 | 
						|
3
 | 
						|
select * from cs1 where a in (select b from cs2 where b in (select a from cs1 where a not in (2,3)));
 | 
						|
a
 | 
						|
1
 | 
						|
select * from cs1 where a in (select b from cs2 where b=3);
 | 
						|
a
 | 
						|
3
 | 
						|
select * from cs1 where a in (select b from cs2 where b=3 or c=200);
 | 
						|
a
 | 
						|
2
 | 
						|
3
 | 
						|
select * from cs1 where a in (select b from cs2 where b is not null);
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
select * from cs1 where a in (select b from cs2 group by b);
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
select * from cs1 where a in (select count(*) from cs2 group by b);
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
select * from cs1 where a in (select count(*) from cs2 group by b having count(*) < 3);
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
select * from cs1 where a in (select count(*) from cs2 where b <> 2 group by b having count(*) < 3);
 | 
						|
a
 | 
						|
2
 | 
						|
select * from cs1 where a in (select count(c) over (partition by b) from cs2);
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
select * from cs1 where a in (select count(*) over (partition by b) from cs2 where b is null);
 | 
						|
a
 | 
						|
1
 | 
						|
select * from cs1 where a in (select count(*) over (partition by b) from cs2 where b <> 2);
 | 
						|
a
 | 
						|
2
 | 
						|
3
 | 
						|
select * from cs1 where a in (select t1.b from cs2 t1, cs2 t2 where t1.b=t2.b);
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
select * from cs1 where a in (select t1.b from cs2 t1, cs2 t2 where t1.b=t2.b and t1.b <> 3);
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
select * from cs1 where a in (select t1.b from cs2 t1 join cs2 t2 on t1.b=t2.b and t1.c=t2.c);
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
select * from cs1 join cs2 on cs1.a=cs2.b and cs1.a in (select b from cs2) order by cs1.a, cs2.b, cs2.c;
 | 
						|
a	b	c
 | 
						|
1	1	100
 | 
						|
1	1	101
 | 
						|
2	2	200
 | 
						|
3	3	300
 | 
						|
3	3	301
 | 
						|
3	3	302
 | 
						|
select * from cs1 join cs2 on cs1.a=cs2.b and cs1.a in (select b from cs2) and cs1.a=1 order by cs1.a, cs2.b, cs2.c;
 | 
						|
a	b	c
 | 
						|
1	1	100
 | 
						|
1	1	101
 | 
						|
select * from cs1 join cs2 on cs1.a=cs2.b and cs1.a in (select t1.b from cs2 t1 join cs2 t2 on t1.b=t2.b and t1.b=1) order by cs1.a, cs2.b, cs2.c;
 | 
						|
a	b	c
 | 
						|
1	1	100
 | 
						|
1	1	101
 | 
						|
select * from cs1 where a not in (select b from cs2);
 | 
						|
a
 | 
						|
select * from cs1 where a not in (select c from cs2);
 | 
						|
a
 | 
						|
select * from cs1 where (a+a) not in (select (b+b) from cs2);
 | 
						|
a
 | 
						|
select * from cs1 where (a+1) not in (select b from cs2);
 | 
						|
a
 | 
						|
select * from cs1 where a is not null and a not in (select b from cs2);
 | 
						|
a
 | 
						|
select * from cs1 where a not in (select b from cs2) and a is null;
 | 
						|
a
 | 
						|
select * from cs1 where a not in (select 2 from cs2) and a not in (select b from cs2);
 | 
						|
a
 | 
						|
select * from cs1 where a in (1,3) and a not in (select b from cs2);
 | 
						|
a
 | 
						|
select * from cs1 where a not in (select b from cs2 where b not in (select a from cs1));
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
4
 | 
						|
NULL
 | 
						|
select * from cs1 where a not in (select b from cs2 where b=3 or c=200);
 | 
						|
a
 | 
						|
1
 | 
						|
4
 | 
						|
select * from cs1 where a not in (select b from cs2 where b is not null);
 | 
						|
a
 | 
						|
4
 | 
						|
select * from cs1 where a not in (select b from cs2 group by b);
 | 
						|
a
 | 
						|
select * from cs1 where a not in (select count(*) from cs2 group by b);
 | 
						|
a
 | 
						|
4
 | 
						|
select * from cs1 where a not in (select count(*) from cs2 group by b having count(*) < 3);
 | 
						|
a
 | 
						|
3
 | 
						|
4
 | 
						|
select * from cs1 where a not in (select count(*) from cs2 where b <> 2 group by b having count(*) < 3);
 | 
						|
a
 | 
						|
1
 | 
						|
3
 | 
						|
4
 | 
						|
select * from cs1 where a not in (select count(c) over (partition by b) from cs2);
 | 
						|
a
 | 
						|
4
 | 
						|
select * from cs1 where a not in (select count(*) over (partition by b) from cs2 where b <> 2);
 | 
						|
a
 | 
						|
1
 | 
						|
4
 | 
						|
select * from cs1 where a not in (select t1.b from cs2 t1, cs2 t2 where t1.b=t2.b);
 | 
						|
a
 | 
						|
4
 | 
						|
select * from cs1 where a not in (select t1.b from cs2 t1, cs2 t2 where t1.b=t2.b and t1.b <> 3);
 | 
						|
a
 | 
						|
3
 | 
						|
4
 | 
						|
select * from cs1 where a not in (select t1.b from cs2 t1 join cs2 t2 on t1.b=t2.b and t1.c=t2.c);
 | 
						|
a
 | 
						|
4
 | 
						|
select * from cs1 join cs2 on cs1.a=cs2.b and cs1.a not in (select b from cs2);
 | 
						|
a	b	c
 | 
						|
select * from cs1 join cs2 on cs1.a=cs2.b and cs1.a not in (select b from cs2) and cs1.a=1;
 | 
						|
a	b	c
 | 
						|
select * from cs1 join cs2 on cs1.a=cs2.b and cs1.a not in (select t1.b from cs2 t1 join cs2 t2 on t1.b=t2.b and t1.b=1);
 | 
						|
a	b	c
 | 
						|
2	2	200
 | 
						|
3	3	300
 | 
						|
3	3	301
 | 
						|
3	3	302
 | 
						|
select * from cs1 where a not in (select b from cs2 where b is not null);
 | 
						|
a
 | 
						|
4
 | 
						|
select * from cs1 where hex(a*10) not in (select hex(b*10) from cs2 where b is not null);
 | 
						|
a
 | 
						|
4
 | 
						|
select * from cs1 where a is not null and a not in (select b from cs2 where b is not null);
 | 
						|
a
 | 
						|
4
 | 
						|
select * from cs1 where a not in (select b from cs2 where b is not null) and a is null;
 | 
						|
a
 | 
						|
select * from cs1 where a not in (select 2 from cs2) and a not in (select b from cs2 where b is not null);
 | 
						|
a
 | 
						|
4
 | 
						|
select * from cs1 where a in (1,3) and a not in (select b from cs2 where b is not null);
 | 
						|
a
 | 
						|
select * from cs1 where a not in (select b from cs2 where b not in (select a from cs1 where a is not null) and b is not null);
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
4
 | 
						|
NULL
 | 
						|
select * from cs1 where a not in (select b from cs2 where b not in (select a from cs1 where a not in (2,3) and a is not null) and b is not null);
 | 
						|
a
 | 
						|
1
 | 
						|
4
 | 
						|
select * from cs1 where a not in (select b from cs2 where b is not null group by b);
 | 
						|
a
 | 
						|
4
 | 
						|
select * from cs1 where a not in (select count(*) from cs2 where b is not null group by b);
 | 
						|
a
 | 
						|
4
 | 
						|
select * from cs1 where a not in (select count(*) from cs2 where b is not null group by b having count(*) < 3);
 | 
						|
a
 | 
						|
3
 | 
						|
4
 | 
						|
select * from cs1 where a not in (select count(c) over (partition by b) from cs2 where b is not null);
 | 
						|
a
 | 
						|
4
 | 
						|
select * from cs1 where a not in (select t1.b from cs2 t1, cs2 t2 where t1.b=t2.b and t1.b is not null);
 | 
						|
a
 | 
						|
4
 | 
						|
select * from cs1 where a not in (select t1.b from cs2 t1 join cs2 t2 on t1.b=t2.b and t1.c=t2.c where t1.b is not null);
 | 
						|
a
 | 
						|
4
 | 
						|
select * from cs1 join cs2 on cs1.a=cs2.b and cs1.a not in (select b from cs2 where b is not null);
 | 
						|
a	b	c
 | 
						|
select * from cs1 join cs2 on cs1.a=cs2.b and cs1.a not in (select b from cs2 where b is not null) and cs1.a=1;
 | 
						|
a	b	c
 | 
						|
select * from cs1 join cs2 on cs1.a=cs2.b and cs1.a not in (select t1.b from (select b from cs2 where b is not null) t1 join cs2 t2 on t1.b=t2.b and t1.b=1);
 | 
						|
a	b	c
 | 
						|
2	2	200
 | 
						|
3	3	300
 | 
						|
3	3	301
 | 
						|
3	3	302
 | 
						|
select * from cs1 where a in (select b from cs2 where b is null);
 | 
						|
a
 | 
						|
select * from cs1 where a in (select b from cs2 where b is not null);
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
select * from cs1 where a not in (select b from cs2 where b is null);
 | 
						|
a
 | 
						|
drop table cs1;
 | 
						|
create table cs1 (a int, d int);
 | 
						|
insert into cs1 values (1,100), (2,201), (3,302), (4,4000), (null,null);
 | 
						|
select * from cs1 where (a,d) in (select b,c from cs2);
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
3	302
 | 
						|
select * from cs1 where ((a+a),(d+d)) in (select (b+b),(c+c) from cs2);
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
3	302
 | 
						|
select * from cs1 where ((a+1),(d+1)) in (select b,c from cs2);
 | 
						|
a	d
 | 
						|
select * from cs1 where (hex(a*10),hex(d*10)) in (select hex(b*10),hex(c*10) from cs2);
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
3	302
 | 
						|
select * from cs1 where (a,d) in (select b,c from cs2 where cs1.a=cs2.c-299);
 | 
						|
a	d
 | 
						|
3	302
 | 
						|
select * from cs1 where a is not null and (a,d) in (select b,c from cs2);
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
3	302
 | 
						|
select * from cs1 where (a,d) in (select b,c from cs2) and a is null;
 | 
						|
a	d
 | 
						|
select * from cs1 where (a,d) in (select 2,201 from cs2) and (a,d) in (select b,c from cs2);
 | 
						|
a	d
 | 
						|
select * from cs1 where a in (1,3) and (a,d) in (select b,c from cs2);
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
3	302
 | 
						|
select * from cs1 where (a,d) in (select b,c from cs2 where (b,c) in (select a,d from cs1));
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
3	302
 | 
						|
select * from cs1 where (a,d) in (select b,c from cs2 where (b,c) in (select a,d from cs1 where a in (2,3)));
 | 
						|
a	d
 | 
						|
3	302
 | 
						|
select * from cs1 where (a,d) in (select b,c from cs2 where (b,c) in (select a,d from cs1 where a not in (2,3)));
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
select * from cs1 where (a,d) in (select b,c from cs2 where b=3);
 | 
						|
a	d
 | 
						|
3	302
 | 
						|
select * from cs1 where (a,d) in (select b,c from cs2 where b=3 or c=200);
 | 
						|
a	d
 | 
						|
3	302
 | 
						|
select * from cs1 where (a,d) in (select b,c from cs2 where b is not null);
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
3	302
 | 
						|
select * from cs1 where (a,d) in (select b,c from cs2 group by b,c);
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
3	302
 | 
						|
select * from cs1 where (a,d) in (select count(*),c from cs2 group by c);
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
select * from cs1 where (a,d) in (select count(*),c from cs2 group by c having count(*) < 3);
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
select * from cs1 where (a,d) in (select count(*),c from cs2 where b <> 2 group by c having count(*) < 3);
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
select * from cs1 where (a,d) in (select count(c) over (partition by b), (count(b) over (partition by c))*100 from cs2);
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
select * from cs1 where (a,d) in (select count(*) over (partition by b), (count(*) over (partition by c))*100 from cs2 where b is null);
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
select * from cs1 where (a,d) in (select count(*) over (partition by b), (count(*) over (partition by c))*100 from cs2 where b <> 2);
 | 
						|
a	d
 | 
						|
select * from cs1 where (a,d) in (select t1.b,t1.c from cs2 t1, cs2 t2 where t1.b=t2.b);
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
3	302
 | 
						|
select * from cs1 where (a,d) in (select t1.b,t1.c from cs2 t1, cs2 t2 where t1.b=t2.b and t1.b <> 3);
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
select * from cs1 where (a,d) in (select t1.b,t1.c from cs2 t1 join cs2 t2 on t1.b=t2.b and t1.c=t2.c);
 | 
						|
a	d
 | 
						|
1	100
 | 
						|
3	302
 | 
						|
select * from cs1 join cs2 on cs1.a=cs2.b and (cs1.a,cs1.d) in (select b,c from cs2) order by cs1.a, cs1.d, cs2.b, cs2.c;
 | 
						|
a	d	b	c
 | 
						|
1	100	1	100
 | 
						|
1	100	1	101
 | 
						|
3	302	3	300
 | 
						|
3	302	3	301
 | 
						|
3	302	3	302
 | 
						|
select * from cs1 join cs2 on cs1.a=cs2.b and (cs1.a,cs1.d) in (select b,c from cs2) and cs1.a=1 order by cs1.a, cs1.d, cs2.b, cs2.c;
 | 
						|
a	d	b	c
 | 
						|
1	100	1	100
 | 
						|
1	100	1	101
 | 
						|
select * from cs1 join cs2 on cs1.a=cs2.b and (cs1.a,cs1.d) in (select t1.b,t1.c from cs2 t1 join cs2 t2 on t1.b=t2.b and t1.b=1) order by cs1.a, cs1.d, cs2.b, cs2.c;
 | 
						|
a	d	b	c
 | 
						|
1	100	1	100
 | 
						|
1	100	1	101
 | 
						|
drop table cs1;
 | 
						|
create table cs1 (a int);
 | 
						|
insert into cs1 values (1), (2), (3), (4), (null);
 | 
						|
prepare stmt from "select * from cs1 where a in (select b from cs2)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 where a in (select c from cs2)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
prepare stmt from "select * from cs1 where (a+a) in (select (b+b) from cs2)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 where (a+1) in (select b from cs2)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
prepare stmt from "select * from cs1 where hex(a*10) in (select hex(b*10) from cs2)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 where a in (select b from cs2 where cs1.a=cs2.c-299)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 where a is not null and a in (select b from cs2)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 where a in (select b from cs2) and a is null";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
prepare stmt from "select * from cs1 where a in (select 2 from cs2) and a in (select b from cs2)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
2
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
2
 | 
						|
prepare stmt from "select * from cs1 where a in (1,3) and a in (select b from cs2)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 where a in (select b from cs2 where b in (select a from cs1))";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 where a in (select b from cs2 where b in (select a from cs1 where a in (2,3)))";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
2
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
2
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 where a in (select b from cs2 where b in (select a from cs1 where a not in (2,3)))";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
prepare stmt from "select * from cs1 where a in (select b from cs2 where b=3)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 where a in (select b from cs2 where b=3 or c=200)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
2
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
2
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 where a in (select b from cs2 where b is not null)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 where a in (select b from cs2 group by b)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 where a in (select count(*) from cs2 group by b)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 where a in (select count(*) from cs2 group by b having count(*) < 3)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
prepare stmt from "select * from cs1 where a in (select count(*) from cs2 where b <> 2 group by b having count(*) < 3)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
2
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
2
 | 
						|
prepare stmt from "select * from cs1 where a in (select count(c) over (partition by b) from cs2)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 where a in (select count(*) over (partition by b) from cs2 where b is null)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
prepare stmt from "select * from cs1 where a in (select count(*) over (partition by b) from cs2 where b <> 2)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
2
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
2
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 where a in (select t1.b from cs2 t1, cs2 t2 where t1.b=t2.b)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 where a in (select t1.b from cs2 t1, cs2 t2 where t1.b=t2.b and t1.b <> 3)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
prepare stmt from "select * from cs1 where a in (select t1.b from cs2 t1 join cs2 t2 on t1.b=t2.b and t1.c=t2.c)";
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
execute stmt;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
prepare stmt from "select * from cs1 join cs2 on cs1.a=cs2.b and cs1.a in (select b from cs2) order by 1,2,3";
 | 
						|
execute stmt;
 | 
						|
a	b	c
 | 
						|
1	1	100
 | 
						|
1	1	101
 | 
						|
2	2	200
 | 
						|
3	3	300
 | 
						|
3	3	301
 | 
						|
3	3	302
 | 
						|
execute stmt;
 | 
						|
a	b	c
 | 
						|
1	1	100
 | 
						|
1	1	101
 | 
						|
2	2	200
 | 
						|
3	3	300
 | 
						|
3	3	301
 | 
						|
3	3	302
 | 
						|
prepare stmt from "select * from cs1 join cs2 on cs1.a=cs2.b and cs1.a in (select b from cs2) and cs1.a=1 order by 1,2,3";
 | 
						|
execute stmt;
 | 
						|
a	b	c
 | 
						|
1	1	100
 | 
						|
1	1	101
 | 
						|
execute stmt;
 | 
						|
a	b	c
 | 
						|
1	1	100
 | 
						|
1	1	101
 | 
						|
prepare stmt from "select * from cs1 join cs2 on cs1.a=cs2.b and cs1.a in (select t1.b from cs2 t1 join cs2 t2 on t1.b=t2.b and t1.b=1) order by 1,2,3";
 | 
						|
execute stmt;
 | 
						|
a	b	c
 | 
						|
1	1	100
 | 
						|
1	1	101
 | 
						|
execute stmt;
 | 
						|
a	b	c
 | 
						|
1	1	100
 | 
						|
1	1	101
 | 
						|
execute stmt;
 | 
						|
a	b	c
 | 
						|
1	1	100
 | 
						|
1	1	101
 | 
						|
execute stmt;
 | 
						|
a	b	c
 | 
						|
1	1	100
 | 
						|
1	1	101
 | 
						|
drop database test_mcol4617;
 |