Enum datafusion_expr::ColumnarValue
source · pub enum ColumnarValue {
Array(ArrayRef),
Scalar(ScalarValue),
}Expand description
Represents the result of evaluating an expression: either a single
ScalarValue or an ArrayRef.
While a ColumnarValue can always be converted into an array
for convenience, it is often much more performant to provide an
optimized path for scalar values.
Variants§
Implementations§
source§impl ColumnarValue
impl ColumnarValue
pub fn data_type(&self) -> DataType
sourcepub fn into_array(self, num_rows: usize) -> Result<ArrayRef>
pub fn into_array(self, num_rows: usize) -> Result<ArrayRef>
Convert a columnar value into an ArrayRef. Self::Scalar is
converted by repeating the same scalar multiple times.
§Errors
Errors if self is a Scalar that fails to be converted into an array of size
sourcepub fn create_null_array(num_rows: usize) -> Self
pub fn create_null_array(num_rows: usize) -> Self
null columnar values are implemented as a null array in order to pass batch num_rows
sourcepub fn values_to_arrays(args: &[ColumnarValue]) -> Result<Vec<ArrayRef>>
pub fn values_to_arrays(args: &[ColumnarValue]) -> Result<Vec<ArrayRef>>
Converts ColumnarValues to ArrayRefs with the same length.
§Performance Note
This function expands any ScalarValue to an array. This expansion
permits using a single function in terms of arrays, but it can be
inefficient compared to handling the scalar value directly.
Thus, it is recommended to provide specialized implementations for scalar values if performance is a concern.
§Errors
If there are multiple array arguments that have different lengths
Trait Implementations§
source§impl Clone for ColumnarValue
impl Clone for ColumnarValue
source§fn clone(&self) -> ColumnarValue
fn clone(&self) -> ColumnarValue
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more