You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ji...@apache.org on 2022/02/06 13:52:58 UTC
[arrow-datafusion] 02/06: format
This is an automated email from the ASF dual-hosted git repository.
jiayuliu pushed a commit to branch move-accum
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git
commit 974c13afcf245e7f903b09d1d6124eebd63ab303
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<()> {