Is your feature request related to a problem or challenge? Please describe what you are trying to do.
Currently, we de-structure every ScalarValue variant
|
pub fn python_value(&self, py: Python) -> PyResult<PyObject> { |
|
match &self.expr { |
|
Expr::Literal(scalar_value) => match scalar_value { |
|
ScalarValue::Null => Err(py_datafusion_err( |
|
datafusion_common::DataFusionError::NotImplemented( |
|
"ScalarValue::Null".to_string(), |
|
), |
|
)), |
|
ScalarValue::Boolean(v) => Ok(v.into_py(py)), |
|
ScalarValue::Float32(v) => Ok(v.into_py(py)), |
|
ScalarValue::Float64(v) => Ok(v.into_py(py)), |
|
ScalarValue::Decimal128(v, _, _) => Ok(v.into_py(py)), |
But ScalarValue already implements IntoPy:
https://github.com/apache/datafusion/blob/b7d2aea1dd4bb4a3abe3163dae936d7bfa5b32c9/datafusion/common/src/pyarrow.rs#L72-L76
If we want to avoid that unwrap, we could use the ToPyArrow trait:
https://github.com/apache/datafusion/blob/b7d2aea1dd4bb4a3abe3163dae936d7bfa5b32c9/datafusion/common/src/pyarrow.rs#L55-L64
Additional context
Are there other constraints the ScalarValue variants that datafusion-python can support other than what datafusion can convert?
Is your feature request related to a problem or challenge? Please describe what you are trying to do.
Currently, we de-structure every
ScalarValuevariantdatafusion-python/src/expr.rs
Lines 308 to 319 in 860283a
But
ScalarValuealready implementsIntoPy:https://github.com/apache/datafusion/blob/b7d2aea1dd4bb4a3abe3163dae936d7bfa5b32c9/datafusion/common/src/pyarrow.rs#L72-L76
If we want to avoid that
unwrap, we could use theToPyArrowtrait:https://github.com/apache/datafusion/blob/b7d2aea1dd4bb4a3abe3163dae936d7bfa5b32c9/datafusion/common/src/pyarrow.rs#L55-L64
Additional context
Are there other constraints the
ScalarValuevariants thatdatafusion-pythoncan support other than whatdatafusioncan convert?