Coverage for packages/sql-smith/src/sql_smith/partial/parameter/parameter.py: 100%

16 statements  

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

1from sql_smith.interfaces import StatementInterface 

2from sql_smith.partial.parameter import BoolParameter, NullParameter 

3 

4 

5class Parameter(StatementInterface): 

6 def __init__(self, value: str | int | float): 

7 self._params = (value,) 

8 

9 @classmethod 

10 def create(cls, value) -> StatementInterface: 

11 if value is None: 

12 return NullParameter() 

13 if isinstance(value, bool): 

14 return BoolParameter(value) 

15 

16 return Parameter(value) 

17 

18 def sql(self, engine: "EngineInterface") -> str: 

19 return engine.export_parameter(engine.get_parameter_placeholder()) 

20 

21 def params(self, engine: "EngineInterface") -> tuple: 

22 return self._params