#[non_exhaustive]pub enum Cause {
Flatten,
Compare,
Scalar,
Logic,
Cast,
Aggregate,
Select,
}Expand description
What made a call take the slow path.
Not exhaustive, because the whole reason this exists is that the list of forms is going to grow. F1 adds bit packed, run length and FSST columns, and each of them arrives with its own set of kernels that do not handle it yet.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Flatten
A compact column was copied out into a plain one.
Compare
A comparison read a value at a time.
Scalar
A scalar function read a value at a time.
Logic
Three valued logic read a value at a time.
Cast
A conversion read a value at a time.
Aggregate
An aggregate read a value at a time.
Select
Turning a vector of flags into the rows it keeps read a value at a time.
Implementations§
Source§impl Cause
impl Cause
Sourcepub const fn slot(self) -> usize
pub const fn slot(self) -> usize
Where this cause sits in an array with one slot per cause.
Public because a tally is not the only thing that wants one slot per cause. The operator counters keep an atomic per cause and index it with this, which beats a map on a path that is taken once per chunk.