diff options
Diffstat (limited to 'sqlglot/dataframe/sql/functions.py')
-rw-r--r-- | sqlglot/dataframe/sql/functions.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/sqlglot/dataframe/sql/functions.py b/sqlglot/dataframe/sql/functions.py index f77b4f8..993d869 100644 --- a/sqlglot/dataframe/sql/functions.py +++ b/sqlglot/dataframe/sql/functions.py @@ -577,11 +577,15 @@ def make_date(year: ColumnOrName, month: ColumnOrName, day: ColumnOrName) -> Col def date_add(col: ColumnOrName, days: t.Union[ColumnOrName, int]) -> Column: - return Column.invoke_expression_over_column(col, expression.DateAdd, expression=days) + return Column.invoke_expression_over_column( + col, expression.DateAdd, expression=days, unit=expression.Var(this="day") + ) def date_sub(col: ColumnOrName, days: t.Union[ColumnOrName, int]) -> Column: - return Column.invoke_expression_over_column(col, expression.DateSub, expression=days) + return Column.invoke_expression_over_column( + col, expression.DateSub, expression=days, unit=expression.Var(this="day") + ) def date_diff(end: ColumnOrName, start: ColumnOrName) -> Column: @@ -695,18 +699,17 @@ def crc32(col: ColumnOrName) -> Column: def md5(col: ColumnOrName) -> Column: column = col if isinstance(col, Column) else lit(col) - return Column.invoke_anonymous_function(column, "MD5") + return Column.invoke_expression_over_column(column, expression.MD5) def sha1(col: ColumnOrName) -> Column: column = col if isinstance(col, Column) else lit(col) - return Column.invoke_anonymous_function(column, "SHA1") + return Column.invoke_expression_over_column(column, expression.SHA) def sha2(col: ColumnOrName, numBits: int) -> Column: column = col if isinstance(col, Column) else lit(col) - num_bits = lit(numBits) - return Column.invoke_anonymous_function(column, "SHA2", num_bits) + return Column.invoke_expression_over_column(column, expression.SHA2, length=lit(numBits)) def hash(*cols: ColumnOrName) -> Column: |