mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-21 01:00:48 +00:00
Fixed referencing invalid offset in bloom_filter with array.
This commit is contained in:
parent
89039abf69
commit
0b79811d8e
@ -86,6 +86,7 @@ struct BloomFilterHash
|
||||
|
||||
const auto & offsets = array_col->getOffsets();
|
||||
limit = offsets[pos + limit - 1] - offsets[pos - 1]; /// PaddedPODArray allows access on index -1.
|
||||
pos = offsets[pos - 1];
|
||||
|
||||
if (limit == 0)
|
||||
{
|
||||
|
@ -175,3 +175,6 @@
|
||||
1
|
||||
1
|
||||
1
|
||||
5000
|
||||
5000
|
||||
5000
|
||||
|
@ -246,3 +246,21 @@ SELECT COUNT() FROM test.bloom_filter_array_lc_null_types_test WHERE has(str, '1
|
||||
SELECT COUNT() FROM test.bloom_filter_array_lc_null_types_test WHERE has(fixed_string, toFixedString('100', 5));
|
||||
|
||||
DROP TABLE IF EXISTS test.bloom_filter_array_lc_null_types_test;
|
||||
|
||||
DROP TABLE IF EXISTS test.bloom_filter_array_offsets_lc_str;
|
||||
CREATE TABLE test.bloom_filter_array_offsets_lc_str (order_key int, str Array(LowCardinality((String))), INDEX idx str TYPE bloom_filter(1.01) GRANULARITY 1024) ENGINE = MergeTree() ORDER BY order_key SETTINGS index_granularity = 1024;
|
||||
INSERT INTO test.bloom_filter_array_offsets_lc_str SELECT number AS i, if(i%2, ['value'], []) FROM system.numbers LIMIT 10000;
|
||||
SELECT count() FROM test.bloom_filter_array_offsets_lc_str WHERE has(str, 'value');
|
||||
DROP TABLE IF EXISTS test.bloom_filter_array_offsets_lc_str;
|
||||
|
||||
DROP TABLE IF EXISTS test.bloom_filter_array_offsets_str;
|
||||
CREATE TABLE test.bloom_filter_array_offsets_str (order_key int, str Array(String), INDEX idx str TYPE bloom_filter(1.01) GRANULARITY 1024) ENGINE = MergeTree() ORDER BY order_key SETTINGS index_granularity = 1024;
|
||||
INSERT INTO test.bloom_filter_array_offsets_str SELECT number AS i, if(i%2, ['value'], []) FROM system.numbers LIMIT 10000;
|
||||
SELECT count() FROM test.bloom_filter_array_offsets_str WHERE has(str, 'value');
|
||||
DROP TABLE IF EXISTS test.bloom_filter_array_offsets_str;
|
||||
|
||||
DROP TABLE IF EXISTS test.bloom_filter_array_offsets_i;
|
||||
CREATE TABLE test.bloom_filter_array_offsets_i (order_key int, i Array(int), INDEX idx i TYPE bloom_filter(1.01) GRANULARITY 1024) ENGINE = MergeTree() ORDER BY order_key SETTINGS index_granularity = 1024;
|
||||
INSERT INTO test.bloom_filter_array_offsets_i SELECT number AS i, if(i%2, [99999], []) FROM system.numbers LIMIT 10000;
|
||||
SELECT count() FROM test.bloom_filter_array_offsets_i WHERE has(i, 99999);
|
||||
DROP TABLE IF EXISTS test.bloom_filter_array_offsets_i;
|
||||
|
Loading…
Reference in New Issue
Block a user