alamb commented on code in PR #11787: URL: https://github.com/apache/datafusion/pull/11787#discussion_r1702324937
########## datafusion/functions/src/string/starts_with.rs: ########## @@ -81,18 +106,73 @@ impl ScalarUDFImpl for StartsWithFunc { } fn return_type(&self, _arg_types: &[DataType]) -> Result<DataType> { - use DataType::*; - - Ok(Boolean) + Ok(DataType::Boolean) } fn invoke(&self, args: &[ColumnarValue]) -> Result<ColumnarValue> { match args[0].data_type() { DataType::Utf8 => make_scalar_function(starts_with::<i32>, vec![])(args), - DataType::LargeUtf8 => { - return make_scalar_function(starts_with::<i64>, vec![])(args); - } - _ => internal_err!("Unsupported data type"), + DataType::LargeUtf8 => make_scalar_function(starts_with::<i64>, vec![])(args), + DataType::Utf8View => make_scalar_function(starts_with::<i32>, vec![])(args), + _ => internal_err!("Unsupported data types for starts_with")?, } } } + +#[cfg(test)] +mod tests { + use crate::utils::test::test_function; + use arrow::array::{Array, BooleanArray}; + use arrow::datatypes::DataType::Boolean; + use datafusion_common::{Result, ScalarValue}; + use datafusion_expr::{ColumnarValue, ScalarUDFImpl}; + + use super::*; + + #[test] + fn test_functions() -> Result<()> { + // Generate test cases for starts_with + let test_cases = vec![ Review Comment: Deal! I filed https://github.com/apache/datafusion/issues/11790 What I recommend doing is starting with a single ticket and making it a complete template / description with the idea being that that someone that is not familar DataFusion or Utf8View can work on it Then when we file tickets for the rest of the functions we can reuse the same description over again. This 1. Reduces the barrier to contribution 2. I have found people love working on the code when there is a clear description I took a shot at updating https://github.com/apache/datafusion/issues/11786 with background for use a template. Let me know what you think -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For additional commands, e-mail: github-h...@datafusion.apache.org