ClickHouse/dbms/tests/queries/0_stateless/00917_multiple_joins_denny_crane.sql
Ivan 118bea2be6
Enable predicate push-down optimization by default. (#4846)
* Enable predicate push-down optimization by default.
* Forbid push-downs for some JOIN cases.
* Fix existing tests
* Forbid optimization if a select query has ARRAY JOIN on any side.
2019-04-18 13:39:25 +03:00

21 lines
749 B
SQL

DROP TABLE IF EXISTS ANIMAL;
CREATE TABLE ANIMAL ( ANIMAL Nullable(String) ) engine = TinyLog;
INSERT INTO ANIMAL (ANIMAL) VALUES ('CAT'), ('FISH'), ('DOG'), ('HORSE'), ('BIRD');
select * from (
select x.b x, count(distinct x.c) ANIMAL
from (
select a.ANIMAL a, 'CAT' b, c.ANIMAL c, d.ANIMAL d
from ANIMAL a join ANIMAL b on a.ANIMAL = b.ANIMAL
left outer join ANIMAL c on (b.ANIMAL = c.ANIMAL)
right outer join (select * from ANIMAL union all select * from ANIMAL
union all select * from ANIMAL) d on (a.ANIMAL = d.ANIMAL)
where d.ANIMAL <> 'CAT' and c.ANIMAL <>'DOG' and b.ANIMAL <> 'FISH') as x
where x.b >= 'CAT'
group by x.b
having ANIMAL >= 0) ANIMAL
where ANIMAL.ANIMAL >= 0;
DROP TABLE ANIMAL;