pub struct ColumnGroupAffinity {
pub type_groups: HashMap<ColumnType, Vec<ColumnId>>,
pub access_frequency: HashMap<ColumnId, u64>,
pub null_density: HashMap<ColumnId, f64>,
}Expand description
Column group affinity for compression optimization
Groups columns by:
- Type compatibility (all Int64 together for SIMD)
- Access correlation (co-accessed columns together)
- Null density (sparse columns separate)
Fields§
§type_groups: HashMap<ColumnType, Vec<ColumnId>>Columns grouped by type for SIMD optimization
access_frequency: HashMap<ColumnId, u64>Access frequency per column (for hot/cold separation)
null_density: HashMap<ColumnId, f64>Null density per column (0.0 = never null, 1.0 = always null)
Implementations§
Source§impl ColumnGroupAffinity
impl ColumnGroupAffinity
Sourcepub fn record_access(&mut self, column_id: ColumnId)
pub fn record_access(&mut self, column_id: ColumnId)
Record a column access (for access correlation)
Sourcepub fn update_null_density(
&mut self,
column_id: ColumnId,
null_count: u64,
total_count: u64,
)
pub fn update_null_density( &mut self, column_id: ColumnId, null_count: u64, total_count: u64, )
Update null density for a column
Sourcepub fn simd_groups(&self) -> Vec<(ColumnType, Vec<ColumnId>)>
pub fn simd_groups(&self) -> Vec<(ColumnType, Vec<ColumnId>)>
Get columns suitable for SIMD processing (fixed-size, same type)
Trait Implementations§
Source§impl Clone for ColumnGroupAffinity
impl Clone for ColumnGroupAffinity
Source§fn clone(&self) -> ColumnGroupAffinity
fn clone(&self) -> ColumnGroupAffinity
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ColumnGroupAffinity
impl RefUnwindSafe for ColumnGroupAffinity
impl Send for ColumnGroupAffinity
impl Sync for ColumnGroupAffinity
impl Unpin for ColumnGroupAffinity
impl UnwindSafe for ColumnGroupAffinity
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more