1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-05-28 13:01:26 +03:00
Denis Khalikov 242bc75166 MCOL-5195 Correlated subquery with equi/non-equi scalar filter and join condition
Disable check for correlated subqueries, basically those types of queries transforms
to join (aggr(table2), table1), table2) and post join scalar filter.
2022-12-23 18:33:01 +03:00

59 lines
1.4 KiB
Plaintext

DROP DATABASE IF EXISTS mcol5195;
CREATE DATABASE mcol5195;
USE mcol5195;
create table t1 (a int, b int) engine=columnstore;
create table t2 (a int, b int) engine=columnstore;
insert into t1 values (1, 2), (1, 3), (1, 4), (2, 5), (2, 6), (2, 7);
insert into t2 values (1, 2), (1, 2), (1, 4), (2, 5), (2, 6), (2, 8);
select * from t1, t2 where t1.a = t2.a and t2.b = (select max(b) from t2 where t1.a = t2.a) order by t2.b;
a b a b
1 4 1 4
1 2 1 4
1 3 1 4
2 7 2 8
2 5 2 8
2 6 2 8
select * from t1, t2 where t1.a = t2.a and t2.b < (select max(b) from t2 where t1.a = t2.a) order by t2.b;
a b a b
1 3 1 2
1 4 1 2
1 2 1 2
1 4 1 2
1 2 1 2
1 3 1 2
2 6 2 5
2 5 2 5
2 7 2 5
2 5 2 6
2 6 2 6
2 7 2 6
select * from t1, t2 where t1.a = t2.a and t2.b > (select max(b) from t2 where t1.a = t2.a) order by t2.b;
a b a b
select * from t1, t2 where t1.a = t2.a and t1.b = (select avg(t2.b) from t2 where t1.a = t2.a group by t2.a) order by t2.b;
a b a b
select * from t1, t2 where t1.a = t2.a and t2.b < (select avg(t2.b) from t2 where t1.a = t2.a group by t2.a) order by t2.b;
a b a b
1 3 1 2
1 4 1 2
1 2 1 2
1 4 1 2
1 2 1 2
1 3 1 2
2 6 2 5
2 5 2 5
2 7 2 5
2 5 2 6
2 6 2 6
2 7 2 6
select * from t1, t2 where t1.a = t2.a and t2.b > (select avg(t2.b) from t2 where t1.a = t2.a group by t2.a) order by t2.b;
a b a b
1 4 1 4
1 2 1 4
1 3 1 4
2 7 2 8
2 5 2 8
2 6 2 8
drop table t1;
drop table t2;
DROP DATABASE mcol5195;