Coverage for packages/sql-smith/src/sql_smith/builder/like_builder.py: 71%
21 statements
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
1from sql_smith.functions import criteria
2from sql_smith.partial import LikeBegins, LikeContains, LikeEnds
5class LikeBuilder:
6 def __init__(self, statement: "StatementInterface"):
7 self._statement = statement
9 def begins(self, value: str) -> "CriteriaInterface":
10 return self.__like(LikeBegins(value))
12 def not_begins(self, value: str) -> "CriteriaInterface":
13 return self.__not_like(LikeBegins(value))
15 def contains(self, value: str) -> "CriteriaInterface":
16 return self.__like(LikeContains(value))
18 def not_contains(self, value: str) -> "CriteriaInterface":
19 return self.__not_like(LikeContains(value))
21 def ends(self, value: str) -> "CriteriaInterface":
22 return self.__like(LikeEnds(value))
24 def not_ends(self, value: str) -> "CriteriaInterface":
25 return self.__not_like(LikeEnds(value))
27 def __like(self, value: "StatementInterface") -> "CriteriaInterface":
28 return criteria("{} LIKE {}", self._statement, value)
30 def __not_like(self, value: "StatementInterface") -> "CriteriaInterface":
31 return criteria("{} NOT LIKE {}", self._statement, value)