Add support for nullif scalar function

This commit is contained in:
Kim Seon Woo
2024-08-20 18:36:06 +02:00
parent 9404a561a9
commit 8bb2a48cb6
5 changed files with 84 additions and 8 deletions

View File

@@ -56,6 +56,7 @@ pub enum ScalarFunc {
Length,
Min,
Max,
Nullif,
Substr,
Substring,
Date,
@@ -83,6 +84,7 @@ impl ToString for ScalarFunc {
ScalarFunc::Length => "length".to_string(),
ScalarFunc::Min => "min".to_string(),
ScalarFunc::Max => "max".to_string(),
ScalarFunc::Nullif => "nullif".to_string(),
ScalarFunc::Substr => "substr".to_string(),
ScalarFunc::Substring => "substring".to_string(),
ScalarFunc::Date => "date".to_string(),
@@ -110,6 +112,7 @@ impl Func {
"max" if arg_count > 1 => Ok(Func::Scalar(ScalarFunc::Max)),
"min" if arg_count == 0 || arg_count == 1 => Ok(Func::Agg(AggFunc::Min)),
"min" if arg_count > 1 => Ok(Func::Scalar(ScalarFunc::Min)),
"nullif" if arg_count == 2 => Ok(Func::Scalar(ScalarFunc::Nullif)),
"string_agg" => Ok(Func::Agg(AggFunc::StringAgg)),
"sum" => Ok(Func::Agg(AggFunc::Sum)),
"total" => Ok(Func::Agg(AggFunc::Total)),