@@ -126,6 +126,17 @@ def _call_get_execute_args(
126126 statement = "" .join (statement_parts )
127127 return (statement , bind_values )
128128
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+
129140 def _prepare (
130141 self , statement : str , tag : str = None , cache_statement : bool = True
131142 ) -> None :
@@ -142,7 +153,10 @@ def _prepare_for_execute(
142153 """
143154 self ._verify_open ()
144155 self ._impl ._prepare_for_execute (
145- self , statement , parameters , keyword_parameters
156+ self ,
157+ self ._normalize_statement (statement ),
158+ parameters ,
159+ keyword_parameters ,
146160 )
147161
148162 def _verify_fetch (self ) -> None :
@@ -891,7 +905,7 @@ def executemany(
891905 """
892906 self ._verify_open ()
893907 num_execs = self ._impl ._prepare_for_executemany (
894- self , statement , parameters
908+ self , self . _normalize_statement ( statement ) , parameters
895909 )
896910 self ._impl .suspend_on_success = suspend_on_success
897911 if num_execs > 0 :
@@ -1227,7 +1241,7 @@ async def executemany(
12271241 """
12281242 self ._verify_open ()
12291243 num_execs = self ._impl ._prepare_for_executemany (
1230- self , statement , parameters
1244+ self , self . _normalize_statement ( statement ) , parameters
12311245 )
12321246 self ._impl .suspend_on_success = suspend_on_success
12331247 if num_execs > 0 :
0 commit comments