Coverage for packages/sql-smith/src/sql_smith/builder/criteria_builder.py: 93%

28 statements  

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

1from sql_smith.functions import criteria, listing 

2 

3 

4class CriteriaBuilder: 

5 def __init__(self, statement: "StatementInterface"): 

6 self._statement = statement 

7 

8 def between(self, start, end) -> "CriteriaInterface": 

9 return criteria("{} BETWEEN {} AND {}", self._statement, start, end) 

10 

11 def not_between(self, start, end) -> "CriteriaInterface": 

12 return criteria("{} NOT BETWEEN {} AND {}", self._statement, start, end) 

13 

14 def in_(self, *args) -> "CriteriaInterface": 

15 return criteria("{} IN ({})", self._statement, listing(args)) 

16 

17 def not_in(self, *args) -> "CriteriaInterface": 

18 return criteria("{} NOT IN ({})", self._statement, listing(args)) 

19 

20 def eq(self, value) -> "CriteriaInterface": 

21 return criteria("{} = {}", self._statement, value) 

22 

23 def not_eq(self, value) -> "CriteriaInterface": 

24 return criteria("{} != {}", self._statement, value) 

25 

26 def gt(self, value) -> "CriteriaInterface": 

27 return criteria("{} > {}", self._statement, value) 

28 

29 def gte(self, value) -> "CriteriaInterface": 

30 return criteria("{} >= {}", self._statement, value) 

31 

32 def lt(self, value) -> "CriteriaInterface": 

33 return criteria("{} < {}", self._statement, value) 

34 

35 def lte(self, value) -> "CriteriaInterface": 

36 return criteria("{} <= {}", self._statement, value) 

37 

38 def is_null(self) -> "CriteriaInterface": 

39 return criteria("{} IS NULL", self._statement) 

40 

41 def is_not_null(self) -> "CriteriaInterface": 

42 return criteria("{} IS NOT NULL", self._statement)