mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-23 16:12:01 +00:00
97f2a2213e
* Move some code outside dbms/src folder * Fix paths
146 lines
7.0 KiB
SQL
146 lines
7.0 KiB
SQL
DROP TABLE IF EXISTS l;
|
|
DROP TABLE IF EXISTS r;
|
|
DROP TABLE IF EXISTS nl;
|
|
DROP TABLE IF EXISTS nr;
|
|
DROP TABLE IF EXISTS l_lc;
|
|
DROP TABLE IF EXISTS r_lc;
|
|
|
|
CREATE TABLE l (x UInt32, lc String) ENGINE = Memory;
|
|
CREATE TABLE r (x UInt32, lc String) ENGINE = Memory;
|
|
CREATE TABLE nl (x Nullable(UInt32), lc Nullable(String)) ENGINE = Memory;
|
|
CREATE TABLE nr (x Nullable(UInt32), lc Nullable(String)) ENGINE = Memory;
|
|
CREATE TABLE l_lc (x UInt32, lc LowCardinality(String)) ENGINE = Memory;
|
|
CREATE TABLE r_lc (x UInt32, lc LowCardinality(String)) ENGINE = Memory;
|
|
|
|
INSERT INTO r VALUES (0, 'str');
|
|
INSERT INTO nr VALUES (0, 'str');
|
|
INSERT INTO r_lc VALUES (0, 'str');
|
|
|
|
--
|
|
|
|
SELECT lc, toTypeName(lc) FROM l_lc AS l RIGHT JOIN r_lc AS r USING (x);
|
|
SELECT lc, toTypeName(lc) FROM l_lc AS l RIGHT JOIN r_lc AS r USING (lc);
|
|
SELECT lc, toTypeName(lc) FROM l_lc AS l FULL JOIN r_lc AS r USING (x);
|
|
SELECT lc, toTypeName(lc) FROM l_lc AS l FULL JOIN r_lc AS r USING (lc);
|
|
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(r.lc) FROM l_lc AS l RIGHT JOIN r_lc AS r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(r.lc) FROM l_lc AS l RIGHT JOIN r_lc AS r USING (lc);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(r.lc) FROM l_lc AS l FULL JOIN r_lc AS r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(r.lc) FROM l_lc AS l FULL JOIN r_lc AS r USING (lc);
|
|
|
|
--
|
|
|
|
SELECT lc, toTypeName(lc) FROM l_lc AS l RIGHT JOIN r USING (x);
|
|
SELECT lc, toTypeName(lc) FROM l_lc AS l RIGHT JOIN r USING (lc);
|
|
SELECT lc, toTypeName(lc) FROM l_lc AS l FULL JOIN r USING (x);
|
|
SELECT lc, toTypeName(lc) FROM l_lc AS l FULL JOIN r USING (lc);
|
|
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(materialize(r.lc)) FROM l_lc AS l RIGHT JOIN r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(materialize(r.lc)) FROM l_lc AS l RIGHT JOIN r USING (lc);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(materialize(r.lc)) FROM l_lc AS l FULL JOIN r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(materialize(r.lc)) FROM l_lc AS l FULL JOIN r USING (lc);
|
|
|
|
--
|
|
|
|
SELECT lc, toTypeName(lc) FROM l RIGHT JOIN r USING (x);
|
|
SELECT lc, toTypeName(lc) FROM l RIGHT JOIN r USING (lc);
|
|
SELECT lc, toTypeName(lc) FROM l FULL JOIN r USING (x);
|
|
SELECT lc, toTypeName(lc) FROM l FULL JOIN r USING (lc);
|
|
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(materialize(r.lc)) FROM l RIGHT JOIN r_lc AS r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(materialize(r.lc)) FROM l RIGHT JOIN r_lc AS r USING (lc);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(materialize(r.lc)) FROM l FULL JOIN r_lc AS r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(materialize(r.lc)) FROM l FULL JOIN r_lc AS r USING (lc);
|
|
|
|
--
|
|
|
|
SELECT lc, toTypeName(lc) FROM l_lc RIGHT JOIN nr USING (x);
|
|
SELECT lc, toTypeName(lc) FROM l_lc RIGHT JOIN nr USING (lc);
|
|
SELECT lc, toTypeName(lc) FROM l_lc FULL JOIN nr USING (x);
|
|
SELECT lc, toTypeName(lc) FROM l_lc FULL JOIN nr USING (lc);
|
|
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(materialize(r.lc)) FROM l_lc AS l RIGHT JOIN nr AS r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(materialize(r.lc)) FROM l_lc AS l RIGHT JOIN nr AS r USING (lc);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(materialize(r.lc)) FROM l_lc AS l FULL JOIN nr AS r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(materialize(r.lc)) FROM l_lc AS l FULL JOIN nr AS r USING (lc);
|
|
|
|
--
|
|
|
|
SELECT lc, toTypeName(lc) FROM nl RIGHT JOIN r_lc USING (x);
|
|
SELECT lc, toTypeName(lc) FROM nl RIGHT JOIN r_lc USING (lc);
|
|
SELECT lc, toTypeName(lc) FROM nl FULL JOIN r_lc USING (x);
|
|
SELECT lc, toTypeName(lc) FROM nl FULL JOIN r_lc USING (lc);
|
|
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(materialize(r.lc)) FROM nl AS l RIGHT JOIN r_lc AS r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(materialize(r.lc)) FROM nl AS l RIGHT JOIN r_lc AS r USING (lc);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(materialize(r.lc)) FROM nl AS l FULL JOIN r_lc AS r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc), toTypeName(materialize(r.lc)) FROM nl AS l FULL JOIN r_lc AS r USING (lc);
|
|
|
|
-- TODO: LC nullability
|
|
SET join_use_nulls = 1;
|
|
|
|
SELECT lc, toTypeName(lc) FROM l_lc AS l RIGHT JOIN r_lc AS r USING (x);
|
|
SELECT lc, toTypeName(lc) FROM l_lc AS l RIGHT JOIN r_lc AS r USING (lc);
|
|
SELECT lc, toTypeName(lc) FROM l_lc AS l FULL JOIN r_lc AS r USING (x);
|
|
SELECT lc, toTypeName(lc) FROM l_lc AS l FULL JOIN r_lc AS r USING (lc);
|
|
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM l_lc AS l RIGHT JOIN r_lc AS r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM l_lc AS l RIGHT JOIN r_lc AS r USING (lc);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM l_lc AS l FULL JOIN r_lc AS r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM l_lc AS l FULL JOIN r_lc AS r USING (lc);
|
|
|
|
--
|
|
|
|
SELECT lc, toTypeName(lc) FROM l_lc AS l RIGHT JOIN r USING (x);
|
|
SELECT lc, toTypeName(lc) FROM l_lc AS l RIGHT JOIN r USING (lc);
|
|
SELECT lc, toTypeName(lc) FROM l_lc AS l FULL JOIN r USING (x);
|
|
SELECT lc, toTypeName(lc) FROM l_lc AS l FULL JOIN r USING (lc);
|
|
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM l_lc AS l RIGHT JOIN r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM l_lc AS l RIGHT JOIN r USING (lc);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM l_lc AS l FULL JOIN r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM l_lc AS l FULL JOIN r USING (lc);
|
|
|
|
--
|
|
|
|
SELECT lc, toTypeName(lc) FROM l RIGHT JOIN r USING (x);
|
|
SELECT lc, toTypeName(lc) FROM l RIGHT JOIN r USING (lc);
|
|
SELECT lc, toTypeName(lc) FROM l FULL JOIN r USING (x);
|
|
SELECT lc, toTypeName(lc) FROM l FULL JOIN r USING (lc);
|
|
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM l RIGHT JOIN r_lc AS r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM l RIGHT JOIN r_lc AS r USING (lc);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM l FULL JOIN r_lc AS r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM l FULL JOIN r_lc AS r USING (lc);
|
|
|
|
--
|
|
|
|
SELECT lc, toTypeName(lc) FROM l_lc RIGHT JOIN nr USING (x);
|
|
SELECT lc, toTypeName(lc) FROM l_lc RIGHT JOIN nr USING (lc);
|
|
SELECT lc, toTypeName(lc) FROM l_lc FULL JOIN nr USING (x);
|
|
SELECT lc, toTypeName(lc) FROM l_lc FULL JOIN nr USING (lc);
|
|
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM l_lc AS l RIGHT JOIN nr AS r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM l_lc AS l RIGHT JOIN nr AS r USING (lc);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM l_lc AS l FULL JOIN nr AS r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM l_lc AS l FULL JOIN nr AS r USING (lc);
|
|
|
|
--
|
|
|
|
SELECT lc, toTypeName(lc) FROM nl RIGHT JOIN r_lc USING (x);
|
|
SELECT lc, toTypeName(lc) FROM nl RIGHT JOIN r_lc USING (lc);
|
|
SELECT lc, toTypeName(lc) FROM nl FULL JOIN r_lc USING (x);
|
|
SELECT lc, toTypeName(lc) FROM nl FULL JOIN r_lc USING (lc);
|
|
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM nl AS l RIGHT JOIN r_lc AS r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM nl AS l RIGHT JOIN r_lc AS r USING (lc);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM nl AS l FULL JOIN r_lc AS r USING (x);
|
|
SELECT l.lc, r.lc, toTypeName(l.lc) FROM nl AS l FULL JOIN r_lc AS r USING (lc);
|
|
|
|
DROP TABLE l;
|
|
DROP TABLE r;
|
|
DROP TABLE nl;
|
|
DROP TABLE nr;
|
|
DROP TABLE l_lc;
|
|
DROP TABLE r_lc;
|