diff --git a/narwhals/_duckdb/dataframe.py b/narwhals/_duckdb/dataframe.py index 2790d75c2f..33cfc19d2a 100644 --- a/narwhals/_duckdb/dataframe.py +++ b/narwhals/_duckdb/dataframe.py @@ -317,9 +317,9 @@ def sort( result = self._native_frame.order( ",".join( ( - f"{col} {desc} nulls last" + f'"{col}" {desc} nulls last' if nulls_last - else f"{col} {desc} nulls first" + else f'"{col}" {desc} nulls first' for col, desc in zip(flat_by, descending_str) ) ) diff --git a/tests/frame/sort_test.py b/tests/frame/sort_test.py index 5147c6f562..1ce3414c8e 100644 --- a/tests/frame/sort_test.py +++ b/tests/frame/sort_test.py @@ -8,18 +8,18 @@ def test_sort(constructor: Constructor) -> None: - data = {"a": [1, 3, 2], "b": [4, 4, 6], "z": [7.0, 8, 9]} + data = {"an tan": [1, 3, 2], "b": [4, 4, 6], "z": [7.0, 8, 9]} df = nw.from_native(constructor(data)) - result = df.sort("a", "b") + result = df.sort("an tan", "b") expected = { - "a": [1, 2, 3], + "an tan": [1, 2, 3], "b": [4, 6, 4], "z": [7.0, 9.0, 8.0], } assert_equal_data(result, expected) - result = df.sort("a", "b", descending=[True, False]) + result = df.sort("an tan", "b", descending=[True, False]) expected = { - "a": [3, 2, 1], + "an tan": [3, 2, 1], "b": [4, 6, 4], "z": [8.0, 9.0, 7.0], } @@ -29,14 +29,14 @@ def test_sort(constructor: Constructor) -> None: @pytest.mark.parametrize( ("nulls_last", "expected"), [ - (True, {"a": [0, 2, 0, -1], "b": [3, 2, 1, None]}), - (False, {"a": [-1, 0, 2, 0], "b": [None, 3, 2, 1]}), + (True, {"antan desc": [0, 2, 0, -1], "b": [3, 2, 1, None]}), + (False, {"antan desc": [-1, 0, 2, 0], "b": [None, 3, 2, 1]}), ], ) def test_sort_nulls( constructor: Constructor, *, nulls_last: bool, expected: dict[str, float] ) -> None: - data = {"a": [0, 0, 2, -1], "b": [1, 3, 2, None]} + data = {"antan desc": [0, 0, 2, -1], "b": [1, 3, 2, None]} df = nw.from_native(constructor(data)) result = df.sort("b", descending=True, nulls_last=nulls_last) assert_equal_data(result, expected)