@@ -28,16 +28,20 @@ def execute(
2828 if parameters is None :
2929 self ._result = self ._psqlpy_connection .fetch (query )
3030 else :
31- # Convert parameters to psqlpy format if needed
3231 if isinstance (parameters , (list , tuple )):
33- # Convert positional parameters to named parameters
34- # This is a simplified conversion - in practice, you might need more
35- # sophisticated handling
36- param_dict = {f"param_{ i } " : val for i , val in enumerate (parameters )}
37- query = self ._convert_positional_to_named (query , len (parameters ))
38- self ._result = self ._psqlpy_connection .fetch (query , param_dict )
32+ param_dict = {
33+ f"param_{ i } " : val for i , val in enumerate (parameters )
34+ }
35+ query = self ._convert_positional_to_named (
36+ query , len (parameters )
37+ )
38+ self ._result = self ._psqlpy_connection .fetch (
39+ query , param_dict
40+ )
3941 else :
40- self ._result = self ._psqlpy_connection .fetch (query , parameters )
42+ self ._result = self ._psqlpy_connection .fetch (
43+ query , parameters
44+ )
4145
4246 # Process the result
4347 if self ._result :
@@ -66,11 +70,11 @@ def execute(
6670 except Exception as e :
6771 raise self ._convert_exception (e )
6872
69- def executemany (self , query : str , parameters_list : List [Union [dict , list , tuple ]]):
73+ def executemany (
74+ self , query : str , parameters_list : List [Union [dict , list , tuple ]]
75+ ):
7076 """Execute a query multiple times with different parameters"""
7177 try :
72- # For executemany, we'll execute each set of parameters individually
73- # In a more sophisticated implementation, you might use psqlpy's batch execution
7478 total_rowcount = 0
7579 for parameters in parameters_list :
7680 self .execute (query , parameters )
@@ -133,10 +137,10 @@ def close(self):
133137 self .rowcount = - 1
134138 self .description = None
135139
136- def _convert_positional_to_named (self , query : str , param_count : int ) -> str :
137- """Convert positional parameters (?) to named parameters (%(param_N)s)"""
138- # This is a simplified implementation
139- # In practice, you'd need more sophisticated SQL parsing
140+ def _convert_positional_to_named (
141+ self , query : str , param_count : int
142+ ) -> str :
143+ "Convert positional parameters (?) to named parameters (%(param_N)s)"
140144 result = query
141145 for i in range (param_count ):
142146 result = result .replace ("?" , f"%(param_{ i } )s" , 1 )
0 commit comments