diff --git a/dbms/tests/queries/0_stateless/00837_minmax_index.reference b/dbms/tests/queries/0_stateless/00837_minmax_index.reference index 046f6502f65..9e90695b7df 100644 --- a/dbms/tests/queries/0_stateless/00837_minmax_index.reference +++ b/dbms/tests/queries/0_stateless/00837_minmax_index.reference @@ -1,8 +1,4 @@ 0 5 4.7 6.50 cba b 2014-01-04 -0 5 4.7 6.50 cba b 2014-03-11 -2 5 4.7 6.50 cba b 2014-06-11 -2 5 4.7 6.50 cba b 2015-01-01 -0 5 4.7 6.50 cba b 2014-01-04 -0 5 4.7 6.50 cba b 2014-03-11 -2 5 4.7 6.50 cba b 2014-06-11 -2 5 4.7 6.50 cba b 2015-01-01 +1 5 4.7 6.50 cba b 2014-03-11 +12 5 4.7 6.50 cba b 2014-06-11 +13 5 4.7 6.50 cba b 2015-01-01 diff --git a/dbms/tests/queries/0_stateless/00837_minmax_index.sql b/dbms/tests/queries/0_stateless/00837_minmax_index.sql index 39271dc18e6..bfe074a2d22 100644 --- a/dbms/tests/queries/0_stateless/00837_minmax_index.sql +++ b/dbms/tests/queries/0_stateless/00837_minmax_index.sql @@ -9,7 +9,7 @@ CREATE TABLE test.minmax_idx s String, e Enum8('a' = 1, 'b' = 2, 'c' = 3), dt Date, - INDEX idx_all (i32, i32 + f64, d, s, e, dt) TYPE minmax GRANULARITY 4, + INDEX idx_all (i32, i32 + f64, d, s, e, dt) TYPE minmax GRANULARITY 1, INDEX idx_all2 (i32, i32 + f64, d, s, e, dt) TYPE minmax GRANULARITY 2, INDEX idx_2 (u64 + toYear(dt), substring(s, 2, 4)) TYPE minmax GRANULARITY 3 ) ENGINE = MergeTree() @@ -18,24 +18,26 @@ SETTINGS index_granularity = 2; /* many small inserts => table will make merges */ -INSERT INTO test.minmax_idx VALUES (1, 2, 4.5, 2.5, 'abc', 'a', '2014-01-01'); +INSERT INTO test.minmax_idx VALUES (2, 2, 4.5, 2.5, 'abc', 'a', '2014-01-01'); INSERT INTO test.minmax_idx VALUES (0, 5, 4.7, 6.5, 'cba', 'b', '2014-01-04'); -INSERT INTO test.minmax_idx VALUES (1, 5, 6.9, 1.57, 'bac', 'c', '2017-01-01'); -INSERT INTO test.minmax_idx VALUES (1, 2, 4.5, 2.5, 'abc', 'a', '2016-01-01'); -INSERT INTO test.minmax_idx VALUES (2, 5, 4.7, 6.5, 'cba', 'b', '2015-01-01'); -INSERT INTO test.minmax_idx VALUES (1, 5, 6.9, 1.57, 'bac', 'c', '2014-11-11'); +INSERT INTO test.minmax_idx VALUES (3, 5, 6.9, 1.57, 'bac', 'c', '2017-01-01'); +INSERT INTO test.minmax_idx VALUES (4, 2, 4.5, 2.5, 'abc', 'a', '2016-01-01'); +INSERT INTO test.minmax_idx VALUES (13, 5, 4.7, 6.5, 'cba', 'b', '2015-01-01'); +INSERT INTO test.minmax_idx VALUES (5, 5, 6.9, 1.57, 'bac', 'c', '2014-11-11'); -INSERT INTO test.minmax_idx VALUES (1, 2, 4.5, 2.5, 'abc', 'a', '2014-02-11'); -INSERT INTO test.minmax_idx VALUES (0, 5, 4.7, 6.5, 'cba', 'b', '2014-03-11'); -INSERT INTO test.minmax_idx VALUES (1, 5, 6.9, 1.57, 'bac', 'c', '2014-04-11'); -INSERT INTO test.minmax_idx VALUES (1, 2, 4.5, 2.5, 'abc', 'a', '2014-05-11'); -INSERT INTO test.minmax_idx VALUES (2, 5, 4.7, 6.5, 'cba', 'b', '2014-06-11'); -INSERT INTO test.minmax_idx VALUES (1, 5, 6.9, 1.57, 'bac', 'c', '2014-07-11'); +INSERT INTO test.minmax_idx VALUES (6, 2, 4.5, 2.5, 'abc', 'a', '2014-02-11'); +INSERT INTO test.minmax_idx VALUES (1, 5, 4.7, 6.5, 'cba', 'b', '2014-03-11'); +INSERT INTO test.minmax_idx VALUES (7, 5, 6.9, 1.57, 'bac', 'c', '2014-04-11'); +INSERT INTO test.minmax_idx VALUES (8, 2, 4.5, 2.5, 'abc', 'a', '2014-05-11'); +INSERT INTO test.minmax_idx VALUES (12, 5, 4.7, 6.5, 'cba', 'b', '2014-06-11'); +INSERT INTO test.minmax_idx VALUES (9, 5, 6.9, 1.57, 'bac', 'c', '2014-07-11'); + +OPTIMIZE TABLE test.minmax_idx; /* simple select */ SELECT * FROM test.minmax_idx WHERE i32 = 5 AND i32 + f64 < 12 AND 3 < d AND d < 7 AND (s = 'bac' OR s = 'cba') ORDER BY dt; /* select with hole made by primary key */ -SELECT * FROM test.minmax_idx WHERE u64 != 1 AND e = 'b' ORDER BY dt; +SELECT * FROM test.minmax_idx WHERE (u64 < 2 OR u64 > 10) AND e != 'b' ORDER BY dt; DROP TABLE test.minmax_idx; \ No newline at end of file diff --git a/dbms/tests/queries/0_stateless/00837_minmax_index_replicated_zookeeper.reference b/dbms/tests/queries/0_stateless/00837_minmax_index_replicated_zookeeper.reference index 3b0b10a96f1..f5df12ad297 100644 --- a/dbms/tests/queries/0_stateless/00837_minmax_index_replicated_zookeeper.reference +++ b/dbms/tests/queries/0_stateless/00837_minmax_index_replicated_zookeeper.reference @@ -1,16 +1,8 @@ 0 5 4.7 6.50 cba b 2014-01-04 -0 5 4.7 6.50 cba b 2014-03-11 -2 5 4.7 6.50 cba b 2014-06-11 -2 5 4.7 6.50 cba b 2015-01-01 +1 5 4.7 6.50 cba b 2014-03-11 +12 5 4.7 6.50 cba b 2014-06-11 +13 5 4.7 6.50 cba b 2015-01-01 0 5 4.7 6.50 cba b 2014-01-04 -0 5 4.7 6.50 cba b 2014-03-11 -2 5 4.7 6.50 cba b 2014-06-11 -2 5 4.7 6.50 cba b 2015-01-01 -0 5 4.7 6.50 cba b 2014-01-04 -0 5 4.7 6.50 cba b 2014-03-11 -2 5 4.7 6.50 cba b 2014-06-11 -2 5 4.7 6.50 cba b 2015-01-01 -0 5 4.7 6.50 cba b 2014-01-04 -0 5 4.7 6.50 cba b 2014-03-11 -2 5 4.7 6.50 cba b 2014-06-11 -2 5 4.7 6.50 cba b 2015-01-01 +1 5 4.7 6.50 cba b 2014-03-11 +12 5 4.7 6.50 cba b 2014-06-11 +13 5 4.7 6.50 cba b 2015-01-01 diff --git a/dbms/tests/queries/0_stateless/00837_minmax_index_replicated_zookeeper.sql b/dbms/tests/queries/0_stateless/00837_minmax_index_replicated_zookeeper.sql index f46cceb4096..8d0d5ce80ff 100644 --- a/dbms/tests/queries/0_stateless/00837_minmax_index_replicated_zookeeper.sql +++ b/dbms/tests/queries/0_stateless/00837_minmax_index_replicated_zookeeper.sql @@ -11,7 +11,7 @@ CREATE TABLE test.minmax_idx1 e Enum8('a' = 1, 'b' = 2, 'c' = 3), dt Date, INDEX - idx_all (i32, i32 + f64, d, s, e, dt) TYPE minmax GRANULARITY 2, + idx_all (i32, i32 + f64, d, s, e, dt) TYPE minmax GRANULARITY 1, INDEX idx_2 (u64 + toYear(dt), substring(s, 2, 4)) TYPE minmax GRANULARITY 3 ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/minmax', 'r1') @@ -28,7 +28,7 @@ CREATE TABLE test.minmax_idx2 e Enum8('a' = 1, 'b' = 2, 'c' = 3), dt Date, INDEX - idx_all (i32, i32 + f64, d, s, e, dt) TYPE minmax GRANULARITY 2, + idx_all (i32, i32 + f64, d, s, e, dt) TYPE minmax GRANULARITY 1, INDEX idx_2 (u64 + toYear(dt), substring(s, 2, 4)) TYPE minmax GRANULARITY 3 ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/minmax', 'r2') @@ -37,33 +37,36 @@ SETTINGS index_granularity = 2; /* many small inserts => table will make merges */ -INSERT INTO test.minmax_idx1 VALUES (1, 2, 4.5, 2.5, 'abc', 'a', '2014-01-01'); +INSERT INTO test.minmax_idx1 VALUES (2, 2, 4.5, 2.5, 'abc', 'a', '2014-01-01'); INSERT INTO test.minmax_idx1 VALUES (0, 5, 4.7, 6.5, 'cba', 'b', '2014-01-04'); -INSERT INTO test.minmax_idx2 VALUES (1, 5, 6.9, 1.57, 'bac', 'c', '2017-01-01'); -INSERT INTO test.minmax_idx2 VALUES (1, 2, 4.5, 2.5, 'abc', 'a', '2016-01-01'); -INSERT INTO test.minmax_idx2 VALUES (2, 5, 4.7, 6.5, 'cba', 'b', '2015-01-01'); -INSERT INTO test.minmax_idx1 VALUES (1, 5, 6.9, 1.57, 'bac', 'c', '2014-11-11'); +INSERT INTO test.minmax_idx2 VALUES (3, 5, 6.9, 1.57, 'bac', 'c', '2017-01-01'); +INSERT INTO test.minmax_idx2 VALUES (4, 2, 4.5, 2.5, 'abc', 'a', '2016-01-01'); +INSERT INTO test.minmax_idx2 VALUES (13, 5, 4.7, 6.5, 'cba', 'b', '2015-01-01'); +INSERT INTO test.minmax_idx1 VALUES (5, 5, 6.9, 1.57, 'bac', 'c', '2014-11-11'); SYSTEM SYNC REPLICA test.minmax_idx1; SYSTEM SYNC REPLICA test.minmax_idx2; -INSERT INTO test.minmax_idx1 VALUES (1, 2, 4.5, 2.5, 'abc', 'a', '2014-02-11'); -INSERT INTO test.minmax_idx1 VALUES (0, 5, 4.7, 6.5, 'cba', 'b', '2014-03-11'); -INSERT INTO test.minmax_idx1 VALUES (1, 5, 6.9, 1.57, 'bac', 'c', '2014-04-11'); -INSERT INTO test.minmax_idx1 VALUES (1, 2, 4.5, 2.5, 'abc', 'a', '2014-05-11'); -INSERT INTO test.minmax_idx2 VALUES (2, 5, 4.7, 6.5, 'cba', 'b', '2014-06-11'); -INSERT INTO test.minmax_idx2 VALUES (1, 5, 6.9, 1.57, 'bac', 'c', '2014-07-11'); +INSERT INTO test.minmax_idx1 VALUES (6, 2, 4.5, 2.5, 'abc', 'a', '2014-02-11'); +INSERT INTO test.minmax_idx1 VALUES (1, 5, 4.7, 6.5, 'cba', 'b', '2014-03-11'); +INSERT INTO test.minmax_idx1 VALUES (7, 5, 6.9, 1.57, 'bac', 'c', '2014-04-11'); +INSERT INTO test.minmax_idx1 VALUES (8, 2, 4.5, 2.5, 'abc', 'a', '2014-05-11'); +INSERT INTO test.minmax_idx2 VALUES (12, 5, 4.7, 6.5, 'cba', 'b', '2014-06-11'); +INSERT INTO test.minmax_idx2 VALUES (9, 5, 6.9, 1.57, 'bac', 'c', '2014-07-11'); SYSTEM SYNC REPLICA test.minmax_idx1; SYSTEM SYNC REPLICA test.minmax_idx2; +OPTIMIZE TABLE test.minmax_idx1; +OPTIMIZE TABLE test.minmax_idx2; + /* simple select */ SELECT * FROM test.minmax_idx1 WHERE i32 = 5 AND i32 + f64 < 12 AND 3 < d AND d < 7 AND (s = 'bac' OR s = 'cba') ORDER BY dt; SELECT * FROM test.minmax_idx2 WHERE i32 = 5 AND i32 + f64 < 12 AND 3 < d AND d < 7 AND (s = 'bac' OR s = 'cba') ORDER BY dt; /* select with hole made by primary key */ -SELECT * FROM test.minmax_idx1 WHERE u64 != 1 AND e = 'b' ORDER BY dt; -SELECT * FROM test.minmax_idx2 WHERE u64 != 1 AND e = 'b' ORDER BY dt; +SELECT * FROM test.minmax_idx1 WHERE (u64 < 2 OR u64 > 10) AND e != 'b' ORDER BY dt; +SELECT * FROM test.minmax_idx2 WHERE (u64 < 2 OR u64 > 10) AND e != 'b' ORDER BY dt; DROP TABLE test.minmax_idx1; DROP TABLE test.minmax_idx2; \ No newline at end of file