@@ -1443,13 +1443,9 @@ def executemany(
14431443                        return  self 
14441444                bind_size  =  len (seqparams ) *  row_size 
14451445                bind_stage  =  None 
1446-                 if  (
1447-                     bind_size 
1448-                     >=  self .connection ._session_parameters [
1449-                         "CLIENT_STAGE_ARRAY_BINDING_THRESHOLD" 
1450-                     ]
1451-                     >  0 
1452-                 ):
1446+                 binding_threshold  =  self .connection ._session_parameters ["CLIENT_STAGE_ARRAY_BINDING_THRESHOLD" ]
1447+                 assert  isinstance (binding_threshold , int )
1448+                 if  bind_size  >=  binding_threshold  >  0 :
14531449                    # bind stage optimization 
14541450                    try :
14551451                        rows  =  self .connection ._write_params_to_byte_rows (seqparams )
@@ -1470,7 +1466,8 @@ def executemany(
14701466                return  self 
14711467
14721468        self .reset ()
1473-         if  "num_statements"  not  in kwargs :
1469+         num_statements  =  kwargs .get ("num_statements" )
1470+         if  num_statements  is  None :
14741471            # fall back to old driver behavior when the user does not provide the parameter to enable 
14751472            #  multi-statement optimizations for executemany 
14761473            for  param  in  seqparams :
@@ -1491,9 +1488,7 @@ def executemany(
14911488                query  =  command  *  len (seqparams )
14921489                params  =  [param  for  parameters  in  seqparams  for  param  in  parameters ]
14931490
1494-             kwargs ["num_statements" ]: int  =  kwargs .get ("num_statements" ) *  len (
1495-                 seqparams 
1496-             )
1491+             kwargs ["num_statements" ]: int  =  num_statements  *  len (seqparams )
14971492
14981493            self .execute (query , params , _do_reset = False , ** kwargs )
14991494
0 commit comments