2019-08-05 19:23:02 +00:00
|
|
|
SET any_join_get_any_from_right_table = 1;
|
|
|
|
|
2019-04-18 18:48:04 +00:00
|
|
|
DROP TABLE IF EXISTS test.filtered_table1;
|
|
|
|
DROP TABLE IF EXISTS test.filtered_table2;
|
|
|
|
DROP TABLE IF EXISTS test.filtered_table3;
|
2019-03-29 20:31:06 +00:00
|
|
|
|
|
|
|
-- Filter: a = 1, values: (1, 0), (1, 1)
|
2019-04-18 18:48:04 +00:00
|
|
|
CREATE TABLE test.filtered_table1 (a UInt8, b UInt8) ENGINE MergeTree ORDER BY a;
|
|
|
|
INSERT INTO test.filtered_table1 values (0, 0), (0, 1), (1, 0), (1, 1);
|
2019-03-29 20:31:06 +00:00
|
|
|
|
|
|
|
-- Filter: a + b < 1 or c - d > 5, values: (0, 0, 0, 0), (0, 0, 6, 0)
|
2019-04-18 18:48:04 +00:00
|
|
|
CREATE TABLE test.filtered_table2 (a UInt8, b UInt8, c UInt8, d UInt8) ENGINE MergeTree ORDER BY a;
|
|
|
|
INSERT INTO test.filtered_table2 values (0, 0, 0, 0), (1, 2, 3, 4), (4, 3, 2, 1), (0, 0, 6, 0);
|
2019-03-29 20:31:06 +00:00
|
|
|
|
|
|
|
-- Filter: c = 1, values: (0, 1), (1, 0)
|
2019-04-18 18:48:04 +00:00
|
|
|
CREATE TABLE test.filtered_table3 (a UInt8, b UInt8, c UInt16 ALIAS a + b) ENGINE MergeTree ORDER BY a;
|
|
|
|
INSERT INTO test.filtered_table3 values (0, 0), (0, 1), (1, 0), (1, 1);
|
2019-03-29 20:31:06 +00:00
|
|
|
|
|
|
|
SELECT '-- PREWHERE should fail';
|
2019-04-18 18:48:04 +00:00
|
|
|
SELECT * FROM test.filtered_table1 PREWHERE 1; -- { serverError 182 }
|
|
|
|
SELECT * FROM test.filtered_table2 PREWHERE 1; -- { serverError 182 }
|
|
|
|
SELECT * FROM test.filtered_table3 PREWHERE 1; -- { serverError 182 }
|
|
|
|
|
|
|
|
SELECT * FROM test.filtered_table1;
|
|
|
|
SELECT * FROM test.filtered_table2;
|
|
|
|
SELECT * FROM test.filtered_table3;
|
|
|
|
|
|
|
|
SELECT a FROM test.filtered_table1;
|
|
|
|
SELECT b FROM test.filtered_table1;
|
|
|
|
SELECT a FROM test.filtered_table1 WHERE a = 1;
|
|
|
|
SELECT a = 1 FROM test.filtered_table1;
|
|
|
|
|
|
|
|
SELECT a FROM test.filtered_table3;
|
|
|
|
SELECT b FROM test.filtered_table3;
|
|
|
|
SELECT c FROM test.filtered_table3;
|
|
|
|
SELECT a + b FROM test.filtered_table3;
|
|
|
|
SELECT a FROM test.filtered_table3 WHERE c = 1;
|
|
|
|
SELECT c = 1 FROM test.filtered_table3;
|
|
|
|
SELECT a + b = 1 FROM test.filtered_table3;
|
|
|
|
|
|
|
|
SELECT * FROM test.filtered_table1 as t1 ANY LEFT JOIN test.filtered_table1 as t2 ON t1.a = t2.b;
|
|
|
|
SELECT * FROM test.filtered_table1 as t2 ANY RIGHT JOIN test.filtered_table1 as t1 ON t2.b = t1.a;
|
|
|
|
|
|
|
|
DROP TABLE test.filtered_table1;
|
|
|
|
DROP TABLE test.filtered_table2;
|
|
|
|
DROP TABLE test.filtered_table3;
|