From 5cabf833940466c8798524320682032e90559ea5 Mon Sep 17 00:00:00 2001 From: Tim Saucer Date: Wed, 24 Jul 2024 08:52:33 -0400 Subject: [PATCH 1/2] Small bugfix. When arguments are None, we should use count_star --- python/datafusion/functions.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/python/datafusion/functions.py b/python/datafusion/functions.py index 46d2a2f04..0fe1e7b3a 100644 --- a/python/datafusion/functions.py +++ b/python/datafusion/functions.py @@ -1294,6 +1294,8 @@ def corr(value1: Expr, value2: Expr, distinct: bool = False) -> Expr: def count(args: Expr | list[Expr] | None = None, distinct: bool = False) -> Expr: """Returns the number of rows that match the given arguments.""" + if args is None: + return Expr(f.count_star()) if isinstance(args, list): args = [arg.expr for arg in args] elif isinstance(args, Expr): From 1a068e0c0377deb264945f848a7cbd5d4622768e Mon Sep 17 00:00:00 2001 From: Tim Saucer Date: Thu, 25 Jul 2024 10:29:23 -0400 Subject: [PATCH 2/2] When no arguments are given to count, set argument to lit(1) so that it is similar to count_star but still enables you to select distinct=True. --- python/datafusion/functions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/datafusion/functions.py b/python/datafusion/functions.py index 0fe1e7b3a..9352db427 100644 --- a/python/datafusion/functions.py +++ b/python/datafusion/functions.py @@ -1295,7 +1295,7 @@ def corr(value1: Expr, value2: Expr, distinct: bool = False) -> Expr: def count(args: Expr | list[Expr] | None = None, distinct: bool = False) -> Expr: """Returns the number of rows that match the given arguments.""" if args is None: - return Expr(f.count_star()) + return count(Expr.literal(1), distinct=distinct) if isinstance(args, list): args = [arg.expr for arg in args] elif isinstance(args, Expr):