This is an automated email from the ASF dual-hosted git repository. jiayuliu pushed a commit to branch datafusion-expr in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git
The following commit(s) were added to refs/heads/datafusion-expr by this push: new 8170b2e format 8170b2e is described below commit 8170b2e967d34dcd3a1a5c662b5d575242347add Author: Jiayu Liu <ji...@hey.com> AuthorDate: Sun Feb 6 13:49:27 2022 +0800 format --- datafusion-expr/src/window_function.rs | 71 ++++++++++++++++++++++++ datafusion/src/physical_plan/window_functions.rs | 67 +--------------------- 2 files changed, 72 insertions(+), 66 deletions(-) diff --git a/datafusion-expr/src/window_function.rs b/datafusion-expr/src/window_function.rs index 2511874..59523d6 100644 --- a/datafusion-expr/src/window_function.rs +++ b/datafusion-expr/src/window_function.rs @@ -131,3 +131,74 @@ impl FromStr for BuiltInWindowFunction { }) } } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_window_function_case_insensitive() -> Result<()> { + let names = vec![ + "row_number", + "rank", + "dense_rank", + "percent_rank", + "cume_dist", + "ntile", + "lag", + "lead", + "first_value", + "last_value", + "nth_value", + "min", + "max", + "count", + "avg", + "sum", + ]; + for name in names { + let fun = WindowFunction::from_str(name)?; + let fun2 = WindowFunction::from_str(name.to_uppercase().as_str())?; + assert_eq!(fun, fun2); + assert_eq!(fun.to_string(), name.to_uppercase()); + } + Ok(()) + } + + #[test] + fn test_window_function_from_str() -> Result<()> { + assert_eq!( + WindowFunction::from_str("max")?, + WindowFunction::AggregateFunction(AggregateFunction::Max) + ); + assert_eq!( + WindowFunction::from_str("min")?, + WindowFunction::AggregateFunction(AggregateFunction::Min) + ); + assert_eq!( + WindowFunction::from_str("avg")?, + WindowFunction::AggregateFunction(AggregateFunction::Avg) + ); + assert_eq!( + WindowFunction::from_str("cume_dist")?, + WindowFunction::BuiltInWindowFunction(BuiltInWindowFunction::CumeDist) + ); + assert_eq!( + WindowFunction::from_str("first_value")?, + WindowFunction::BuiltInWindowFunction(BuiltInWindowFunction::FirstValue) + ); + assert_eq!( + WindowFunction::from_str("LAST_value")?, + WindowFunction::BuiltInWindowFunction(BuiltInWindowFunction::LastValue) + ); + assert_eq!( + WindowFunction::from_str("LAG")?, + WindowFunction::BuiltInWindowFunction(BuiltInWindowFunction::Lag) + ); + assert_eq!( + WindowFunction::from_str("LEAD")?, + WindowFunction::BuiltInWindowFunction(BuiltInWindowFunction::Lead) + ); + Ok(()) + } +} diff --git a/datafusion/src/physical_plan/window_functions.rs b/datafusion/src/physical_plan/window_functions.rs index 1dcac3f..b8cc96a 100644 --- a/datafusion/src/physical_plan/window_functions.rs +++ b/datafusion/src/physical_plan/window_functions.rs @@ -190,72 +190,7 @@ pub(crate) trait BuiltInWindowFunctionExpr: Send + Sync + std::fmt::Debug { #[cfg(test)] mod tests { use super::*; - - #[test] - fn test_window_function_case_insensitive() -> Result<()> { - let names = vec![ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "cume_dist", - "ntile", - "lag", - "lead", - "first_value", - "last_value", - "nth_value", - "min", - "max", - "count", - "avg", - "sum", - ]; - for name in names { - let fun = WindowFunction::from_str(name)?; - let fun2 = WindowFunction::from_str(name.to_uppercase().as_str())?; - assert_eq!(fun, fun2); - assert_eq!(fun.to_string(), name.to_uppercase()); - } - Ok(()) - } - - #[test] - fn test_window_function_from_str() -> Result<()> { - assert_eq!( - WindowFunction::from_str("max")?, - WindowFunction::AggregateFunction(AggregateFunction::Max) - ); - assert_eq!( - WindowFunction::from_str("min")?, - WindowFunction::AggregateFunction(AggregateFunction::Min) - ); - assert_eq!( - WindowFunction::from_str("avg")?, - WindowFunction::AggregateFunction(AggregateFunction::Avg) - ); - assert_eq!( - WindowFunction::from_str("cume_dist")?, - WindowFunction::BuiltInWindowFunction(BuiltInWindowFunction::CumeDist) - ); - assert_eq!( - WindowFunction::from_str("first_value")?, - WindowFunction::BuiltInWindowFunction(BuiltInWindowFunction::FirstValue) - ); - assert_eq!( - WindowFunction::from_str("LAST_value")?, - WindowFunction::BuiltInWindowFunction(BuiltInWindowFunction::LastValue) - ); - assert_eq!( - WindowFunction::from_str("LAG")?, - WindowFunction::BuiltInWindowFunction(BuiltInWindowFunction::Lag) - ); - assert_eq!( - WindowFunction::from_str("LEAD")?, - WindowFunction::BuiltInWindowFunction(BuiltInWindowFunction::Lead) - ); - Ok(()) - } + use std::str::FromStr; #[test] fn test_count_return_type() -> Result<()> {