@@ -566,7 +566,7 @@ def order(
566
566
column : str ,
567
567
* ,
568
568
desc : bool = False ,
569
- nullsfirst : bool = False ,
569
+ nullsfirst : Optional [ bool ] = None ,
570
570
foreign_table : Optional [str ] = None ,
571
571
) -> Self :
572
572
"""Sort the returned rows in some specific order.
@@ -579,20 +579,18 @@ def order(
579
579
.. versionchanged:: 0.10.3
580
580
Allow ordering results for foreign tables with the foreign_table parameter.
581
581
"""
582
-
583
- new_order_parameter = (
584
- f"{ foreign_table + '(' if foreign_table else '' } { column } { ')' if foreign_table else '' } "
585
- f"{ '.desc' if desc else '' } { '.nullsfirst' if nullsfirst else '' } "
586
- )
587
-
588
- existing_order_parameter = self .params .get ("order" )
589
- if existing_order_parameter :
590
- self .params = self .params .remove ("order" )
591
- new_order_parameter = f"{ existing_order_parameter } ,{ new_order_parameter } "
592
-
593
- self .params = self .params .add (
594
- "order" ,
595
- new_order_parameter ,
582
+ key = f"{ foreign_table } .order" if foreign_table else "order"
583
+ existing_order = self .params .get (key )
584
+
585
+ self .params = self .params .set (
586
+ key ,
587
+ f"{ existing_order + ',' if existing_order else '' } "
588
+ + f"{ column } .{ 'desc' if desc else 'asc' } "
589
+ + (
590
+ f".{ 'nullsfirst' if nullsfirst else 'nullslast' } "
591
+ if nullsfirst is not None
592
+ else ""
593
+ ),
596
594
)
597
595
return self
598
596
0 commit comments