Test for data skip index over column under aggregation

Affected versions: 19.17.9.60+
This commit is contained in:
Azat Khuzhin 2020-05-22 18:46:31 +03:00
parent a8e8bc4298
commit 24271ec50f
2 changed files with 54 additions and 0 deletions

View File

@ -0,0 +1,20 @@
INSERT
1 0
1 1
1 1
INSERT
1 0
1 1
1 0
1 1
1 2
1 3
1 1
1 1
1 3
OPTIMIZE
1 3
1 3
OPTIMIZE
1 3
1 3

View File

@ -0,0 +1,34 @@
DROP TABLE IF EXISTS data_01285;
SET max_threads=1;
CREATE TABLE data_01285 (
key Int,
value SimpleAggregateFunction(max, Nullable(Int)),
INDEX value_idx assumeNotNull(value) TYPE minmax GRANULARITY 1
)
ENGINE=AggregatingMergeTree()
ORDER BY key;
SELECT 'INSERT';
INSERT INTO data_01285 SELECT 1, number FROM numbers(2);
SELECT * FROM data_01285;
SELECT * FROM data_01285 WHERE assumeNotNull(value) = 1;
SELECT 'INSERT';
INSERT INTO data_01285 SELECT 1, number FROM numbers(4);
SELECT * FROM data_01285;
SELECT * FROM data_01285 WHERE assumeNotNull(value) = 1;
SELECT * FROM data_01285 WHERE assumeNotNull(value) = 3;
SELECT 'OPTIMIZE';
OPTIMIZE TABLE data_01285 FINAL;
SELECT * FROM data_01285;
-- before the fix value_idx contains one range {0, 0}
-- and hence cannot find these record.
SELECT * FROM data_01285 WHERE assumeNotNull(value) = 3;
-- one more time just in case
SELECT 'OPTIMIZE';
OPTIMIZE TABLE data_01285 FINAL;
SELECT * FROM data_01285;
-- and this passes even without fix.
SELECT * FROM data_01285 WHERE assumeNotNull(value) = 3;