This is an automated email from the ASF dual-hosted git repository.

jayzhan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion.git


The following commit(s) were added to refs/heads/main by this push:
     new e8594267e5 Minor: Extend more style of udaf `expr_fn`, Remove order 
args for`covar_samp` and `covar_pop`  (#10492)
e8594267e5 is described below

commit e8594267e5d560b2ade3c91ff1b2d9b75766f242
Author: Jay Zhan <[email protected]>
AuthorDate: Wed May 15 08:02:24 2024 +0800

    Minor: Extend more style of udaf `expr_fn`, Remove order args 
for`covar_samp` and `covar_pop`  (#10492)
    
    * adjust macro args
    
    Signed-off-by: jayzhan211 <[email protected]>
    
    * adjust macro rule
    
    Signed-off-by: jayzhan211 <[email protected]>
    
    ---------
    
    Signed-off-by: jayzhan211 <[email protected]>
---
 datafusion/functions-aggregate/src/macros.rs       | 43 +++++++++++++++++++---
 .../proto/tests/cases/roundtrip_logical_plan.rs    |  4 +-
 2 files changed, 39 insertions(+), 8 deletions(-)

diff --git a/datafusion/functions-aggregate/src/macros.rs 
b/datafusion/functions-aggregate/src/macros.rs
index 27fc623a18..6c3348d6c1 100644
--- a/datafusion/functions-aggregate/src/macros.rs
+++ b/datafusion/functions-aggregate/src/macros.rs
@@ -15,24 +15,55 @@
 // specific language governing permissions and limitations
 // under the License.
 
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
 macro_rules! make_udaf_expr_and_func {
     ($UDAF:ty, $EXPR_FN:ident, $($arg:ident)*, $DOC:expr, 
$AGGREGATE_UDF_FN:ident) => {
+        // "fluent expr_fn" style function
+        #[doc = $DOC]
+        pub fn $EXPR_FN(
+            $($arg: datafusion_expr::Expr,)*
+        ) -> datafusion_expr::Expr {
+            
datafusion_expr::Expr::AggregateFunction(datafusion_expr::expr::AggregateFunction::new_udf(
+                $AGGREGATE_UDF_FN(),
+                vec![$($arg),*],
+                false,
+                None,
+                None,
+                None,
+            ))
+        }
+        create_func!($UDAF, $AGGREGATE_UDF_FN);
+    };
+    ($UDAF:ty, $EXPR_FN:ident, $($arg:ident)*, $distinct:ident, $DOC:expr, 
$AGGREGATE_UDF_FN:ident) => {
         // "fluent expr_fn" style function
         #[doc = $DOC]
         pub fn $EXPR_FN(
             $($arg: datafusion_expr::Expr,)*
             distinct: bool,
-            filter: Option<Box<datafusion_expr::Expr>>,
-            order_by: Option<Vec<datafusion_expr::Expr>>,
-            null_treatment: Option<sqlparser::ast::NullTreatment>
         ) -> datafusion_expr::Expr {
             
datafusion_expr::Expr::AggregateFunction(datafusion_expr::expr::AggregateFunction::new_udf(
                 $AGGREGATE_UDF_FN(),
                 vec![$($arg),*],
                 distinct,
-                filter,
-                order_by,
-                null_treatment,
+                None,
+                None,
+                None
             ))
         }
         create_func!($UDAF, $AGGREGATE_UDF_FN);
diff --git a/datafusion/proto/tests/cases/roundtrip_logical_plan.rs 
b/datafusion/proto/tests/cases/roundtrip_logical_plan.rs
index ec215937dc..b5b0b4c224 100644
--- a/datafusion/proto/tests/cases/roundtrip_logical_plan.rs
+++ b/datafusion/proto/tests/cases/roundtrip_logical_plan.rs
@@ -622,8 +622,8 @@ async fn roundtrip_expr_api() -> Result<()> {
         ),
         array_replace_all(make_array(vec![lit(1), lit(2), lit(3)]), lit(2), 
lit(4)),
         first_value(vec![lit(1)], false, None, None, None),
-        covar_samp(lit(1.5), lit(2.2), false, None, None, None),
-        covar_pop(lit(1.5), lit(2.2), true, None, None, None),
+        covar_samp(lit(1.5), lit(2.2)),
+        covar_pop(lit(1.5), lit(2.2)),
     ];
 
     // ensure expressions created with the expr api can be round tripped


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to