This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new 2e5ad7a3cb feat: ScalarValue from String (#8411)
2e5ad7a3cb is described below
commit 2e5ad7a3cb3b3f3e96f931b903eb8bb6639329ff
Author: Wei <[email protected]>
AuthorDate: Wed Dec 6 03:30:43 2023 +0800
feat: ScalarValue from String (#8411)
* feat: scalar from string
* chore: cr comment
---
datafusion/common/src/scalar.rs | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/datafusion/common/src/scalar.rs b/datafusion/common/src/scalar.rs
index ef0edbd9e0..177fe00a6a 100644
--- a/datafusion/common/src/scalar.rs
+++ b/datafusion/common/src/scalar.rs
@@ -3065,6 +3065,12 @@ impl FromStr for ScalarValue {
}
}
+impl From<String> for ScalarValue {
+ fn from(value: String) -> Self {
+ ScalarValue::Utf8(Some(value))
+ }
+}
+
impl From<Vec<(&str, ScalarValue)>> for ScalarValue {
fn from(value: Vec<(&str, ScalarValue)>) -> Self {
let (fields, scalars): (SchemaBuilder, Vec<_>) = value
@@ -4688,6 +4694,16 @@ mod tests {
);
}
+ #[test]
+ fn test_scalar_value_from_string() {
+ let scalar = ScalarValue::from("foo");
+ assert_eq!(scalar, ScalarValue::Utf8(Some("foo".to_string())));
+ let scalar = ScalarValue::from("foo".to_string());
+ assert_eq!(scalar, ScalarValue::Utf8(Some("foo".to_string())));
+ let scalar = ScalarValue::from_str("foo").unwrap();
+ assert_eq!(scalar, ScalarValue::Utf8(Some("foo".to_string())));
+ }
+
#[test]
fn test_scalar_struct() {
let field_a = Arc::new(Field::new("A", DataType::Int32, false));