Coverage for packages/sql-smith/src/sql_smith/engine/sql_server_engine.py: 67%

12 statements  

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

1from sql_smith.engine import BasicEngine 

2from sql_smith.query.sql_server.delete_query import DeleteQuery 

3from sql_smith.query.sql_server.select_query import SelectQuery 

4 

5 

6class SqlServerEngine(BasicEngine): 

7 """A custom engine for SQL Server SQL dialect.""" 

8 

9 def make_select(self) -> "SelectQuery": 

10 """Creates a custom SQL Server SELECT query. 

11 

12 SQL Server handles OFFSET and LIMIT differently. 

13 """ 

14 return SelectQuery(self) 

15 

16 def make_delete(self) -> "DeleteQuery": 

17 """Creates a custom SQL Server DELETE query. 

18 

19 SQL Server handles LIMIT differently. 

20 """ 

21 return DeleteQuery(self) 

22 

23 def escape_identifier(self, identifier: str) -> str: 

24 """Escapes identifiers with brackets.""" 

25 return "[{}]".format(identifier) 

26 

27 def escape_like(self, parameter: str) -> str: 

28 """Escape like argument. 

29 

30 Also escapes character ranges. 

31 """ 

32 return super().escape_like(parameter).replace("[", r"\[").replace("]", r"\]")