Coverage for packages/sql-smith/src/sql_smith/capability/has_order_by.py: 77%

13 statements  

« prev     ^ index     » next       coverage.py v7.11.0, created at 2024-01-01 00:00 +0000

1from sql_smith.functions import listing, order 

2 

3 

4class HasOrderByMixin: 

5 def order_by(self, column: str | None = None, direction: str | None = None): 

6 if column: 

7 self._order_by.append(order(column, direction)) 

8 return self 

9 

10 self._order_by = [] 

11 return self 

12 

13 @property 

14 def has_order(self) -> bool: 

15 return len(self._order_by) > 0 

16 

17 def _apply_order_by(self, query: "ExpressionInterface") -> "ExpressionInterface": 

18 return ( 

19 query.append("ORDER BY {}", listing(self._order_by)) 

20 if len(self._order_by) > 0 

21 else query 

22 )