pub struct BlockStats {
pub min: f64,
pub max: f64,
pub null_count: u32,
pub row_count: u32,
pub str_min: Option<String>,
pub str_max: Option<String>,
pub bloom: Option<Vec<u8>>,
}Expand description
Per-block statistics for a single column. Enables predicate pushdown:
skip blocks where WHERE price > 100 and block’s max_price < 100.
Fields§
§min: f64Minimum value in this block (encoded as f64 for uniformity; i64 values are cast losslessly, strings use NaN).
max: f64Maximum value in this block.
null_count: u32Number of null values in this block.
row_count: u32Number of rows in this block (≤ BLOCK_SIZE, last block may be smaller).
str_min: Option<String>Lexicographic minimum for string columns (truncated to 32 bytes).
None for numeric, bool, binary, vector, and other non-string columns.
str_max: Option<String>Lexicographic maximum for string columns (truncated to 32 bytes).
None for non-string columns.
bloom: Option<Vec<u8>>Bloom filter bytes for equality-predicate skipping on string columns
(256 bytes = 2048 bits, 3 FNV-variant hash functions).
None when there are no non-null string values in the block.
Implementations§
Source§impl BlockStats
impl BlockStats
Trait Implementations§
Source§impl Clone for BlockStats
impl Clone for BlockStats
Source§fn clone(&self) -> BlockStats
fn clone(&self) -> BlockStats
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BlockStats
impl Debug for BlockStats
Source§impl<'de> Deserialize<'de> for BlockStats
impl<'de> Deserialize<'de> for BlockStats
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for BlockStats
impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for BlockStats
Source§impl Serialize for BlockStats
impl Serialize for BlockStats
Auto Trait Implementations§
impl Freeze for BlockStats
impl RefUnwindSafe for BlockStats
impl Send for BlockStats
impl Sync for BlockStats
impl Unpin for BlockStats
impl UnsafeUnpin for BlockStats
impl UnwindSafe for BlockStats
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.