@@ -126,6 +126,17 @@ def _call_get_execute_args(
126
126
statement = "" .join (statement_parts )
127
127
return (statement , bind_values )
128
128
129
+ def _normalize_statement (self , statement : Optional [str ]) -> Optional [str ]:
130
+ """
131
+ Normalizes a statement by stripping leading and trailing spaces. If the
132
+ result is an empty string, an error is raised immediately.
133
+ """
134
+ if statement is not None :
135
+ statement = statement .strip ()
136
+ if not statement :
137
+ errors ._raise_err (errors .ERR_EMPTY_STATEMENT )
138
+ return statement
139
+
129
140
def _prepare (
130
141
self , statement : str , tag : str = None , cache_statement : bool = True
131
142
) -> None :
@@ -142,7 +153,10 @@ def _prepare_for_execute(
142
153
"""
143
154
self ._verify_open ()
144
155
self ._impl ._prepare_for_execute (
145
- self , statement , parameters , keyword_parameters
156
+ self ,
157
+ self ._normalize_statement (statement ),
158
+ parameters ,
159
+ keyword_parameters ,
146
160
)
147
161
148
162
def _verify_fetch (self ) -> None :
@@ -891,7 +905,7 @@ def executemany(
891
905
"""
892
906
self ._verify_open ()
893
907
num_execs = self ._impl ._prepare_for_executemany (
894
- self , statement , parameters
908
+ self , self . _normalize_statement ( statement ) , parameters
895
909
)
896
910
self ._impl .suspend_on_success = suspend_on_success
897
911
if num_execs > 0 :
@@ -1227,7 +1241,7 @@ async def executemany(
1227
1241
"""
1228
1242
self ._verify_open ()
1229
1243
num_execs = self ._impl ._prepare_for_executemany (
1230
- self , statement , parameters
1244
+ self , self . _normalize_statement ( statement ) , parameters
1231
1245
)
1232
1246
self ._impl .suspend_on_success = suspend_on_success
1233
1247
if num_execs > 0 :
0 commit comments