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 8f648dbf6c506..10cb5da8c241e 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 @@ -653,7 +653,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 b07705697bed4..aad38f1615fe4 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 @@ -165,7 +165,7 @@ impl DeserializeDataTransform { let probe_column = probe_block_entry.to_column(); // 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 ff3853e066a64..6d021ac856d31 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 } }