diff --git a/src/query/storages/fuse/src/operations/read/native_data_source_deserializer.rs b/src/query/storages/fuse/src/operations/read/native_data_source_deserializer.rs index d4f525c5a8981..151b26b9378db 100644 --- a/src/query/storages/fuse/src/operations/read/native_data_source_deserializer.rs +++ b/src/query/storages/fuse/src/operations/read/native_data_source_deserializer.rs @@ -652,7 +652,7 @@ impl NativeDeserializeDataTransform { let mut bitmap = MutableBitmap::from_len_zeroed(probe_block.num_rows()); let probe_column = probe_block.get_last_column().clone(); // Apply the filter to the probe column. - ExprBloomFilter::new(filter.clone()).apply(probe_column, &mut bitmap)?; + ExprBloomFilter::new(filter).apply(probe_column, &mut bitmap)?; let unset_bits = bitmap.null_count(); if unset_bits == bitmap.len() { diff --git a/src/query/storages/fuse/src/operations/read/parquet_data_source_deserializer.rs b/src/query/storages/fuse/src/operations/read/parquet_data_source_deserializer.rs index 1add3998f2b4c..c7b16471bd52f 100644 --- a/src/query/storages/fuse/src/operations/read/parquet_data_source_deserializer.rs +++ b/src/query/storages/fuse/src/operations/read/parquet_data_source_deserializer.rs @@ -167,7 +167,7 @@ impl DeserializeDataTransform { .convert_to_full_column(&probe_block_entry.data_type, data_block.num_rows()); // Apply bloom filter - ExprBloomFilter::new(filter.clone()).apply(probe_column, &mut bitmap)?; + ExprBloomFilter::new(filter).apply(probe_column, &mut bitmap)?; bitmaps.push(bitmap); } if !bitmaps.is_empty() { diff --git a/src/query/storages/fuse/src/pruning/expr_bloom_filter.rs b/src/query/storages/fuse/src/pruning/expr_bloom_filter.rs index 161e52d8e1a01..c32de93de81e8 100644 --- a/src/query/storages/fuse/src/pruning/expr_bloom_filter.rs +++ b/src/query/storages/fuse/src/pruning/expr_bloom_filter.rs @@ -27,13 +27,13 @@ use xorf::BinaryFuse16; use xorf::Filter; /// Bloom filter for runtime filtering of data rows. -pub struct ExprBloomFilter { - filter: BinaryFuse16, +pub struct ExprBloomFilter<'a> { + filter: &'a BinaryFuse16, } -impl ExprBloomFilter { +impl<'a> ExprBloomFilter<'a> { /// Create a new bloom filter. - pub fn new(filter: BinaryFuse16) -> Self { + pub fn new(filter: &'a BinaryFuse16) -> ExprBloomFilter<'a> { Self { filter } }