#[non_exhaustive]pub enum Data {
Show 16 variants
Empty,
Bool(Vec<bool>),
Int8(Vec<i8>),
Int16(Vec<i16>),
Int32(Vec<i32>),
Int64(Vec<i64>),
Int128(Vec<i128>),
UInt8(Vec<u8>),
UInt16(Vec<u16>),
UInt32(Vec<u32>),
UInt64(Vec<u64>),
UInt128(Vec<u128>),
Float32(Vec<f32>),
Float64(Vec<f64>),
Interval(Vec<(i32, i32, i64)>),
Varlen(StringColumn),
}Expand description
The values of a flat vector, one Rust vector per physical type.
The variants are physical rather than logical, which is what lets DATE and INTEGER share
storage and share a kernel. What a run of i32 means is the vector’s logical type’s business.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Empty
No values, for the type of an untyped NULL.
Bool(Vec<bool>)
One byte per value.
Int8(Vec<i8>)
8 bit signed.
Int16(Vec<i16>)
16 bit signed.
Int32(Vec<i32>)
32 bit signed.
Int64(Vec<i64>)
64 bit signed.
Int128(Vec<i128>)
128 bit signed.
UInt8(Vec<u8>)
8 bit unsigned.
UInt16(Vec<u16>)
16 bit unsigned.
UInt32(Vec<u32>)
32 bit unsigned.
UInt64(Vec<u64>)
64 bit unsigned.
UInt128(Vec<u128>)
128 bit unsigned.
Float32(Vec<f32>)
IEEE 754 binary32.
Float64(Vec<f64>)
IEEE 754 binary64.
Interval(Vec<(i32, i32, i64)>)
The months, days and microseconds triple.
Varlen(StringColumn)
Strings, as 16 byte views plus the blocks the long ones live in.
Implementations§
Source§impl Data
impl Data
Sourcepub fn signed_at(&self, index: usize) -> Option<i128>
pub fn signed_at(&self, index: usize) -> Option<i128>
An integer at index, widened, for any of the signed integer layouts.
Used by the decimal path, which needs the unscaled value out of whichever width the width and scale picked, and by anything else that would otherwise repeat the same five arms.
Sourcepub fn unsigned_at(&self, index: usize) -> Option<u128>
pub fn unsigned_at(&self, index: usize) -> Option<u128>
An unsigned integer at index, widened.