@@ -1441,13 +1441,9 @@ def executemany(
14411441                        return  self 
14421442                bind_size  =  len (seqparams ) *  row_size 
14431443                bind_stage  =  None 
1444-                 if  (
1445-                     bind_size 
1446-                     >=  self .connection ._session_parameters [
1447-                         "CLIENT_STAGE_ARRAY_BINDING_THRESHOLD" 
1448-                     ]
1449-                     >  0 
1450-                 ):
1444+                 binding_threshold  =  self .connection ._session_parameters ["CLIENT_STAGE_ARRAY_BINDING_THRESHOLD" ]
1445+                 assert  isinstance (binding_threshold , int )
1446+                 if  bind_size  >=  binding_threshold  >  0 :
14511447                    # bind stage optimization 
14521448                    try :
14531449                        rows  =  self .connection ._write_params_to_byte_rows (seqparams )
@@ -1468,7 +1464,8 @@ def executemany(
14681464                return  self 
14691465
14701466        self .reset ()
1471-         if  "num_statements"  not  in kwargs :
1467+         num_statements  =  kwargs .get ("num_statements" )
1468+         if  num_statements  is  None :
14721469            # fall back to old driver behavior when the user does not provide the parameter to enable 
14731470            #  multi-statement optimizations for executemany 
14741471            for  param  in  seqparams :
@@ -1489,9 +1486,7 @@ def executemany(
14891486                query  =  command  *  len (seqparams )
14901487                params  =  [param  for  parameters  in  seqparams  for  param  in  parameters ]
14911488
1492-             kwargs ["num_statements" ]: int  =  kwargs .get ("num_statements" ) *  len (
1493-                 seqparams 
1494-             )
1489+             kwargs ["num_statements" ]: int  =  num_statements  *  len (seqparams )
14951490
14961491            self .execute (query , params , _do_reset = False , ** kwargs )
14971492
0 commit comments