@@ -1445,13 +1445,9 @@ def executemany(
14451445 return self
14461446 bind_size = len (seqparams ) * row_size
14471447 bind_stage = None
1448- if (
1449- bind_size
1450- >= self .connection ._session_parameters [
1451- "CLIENT_STAGE_ARRAY_BINDING_THRESHOLD"
1452- ]
1453- > 0
1454- ):
1448+ binding_threshold = self .connection ._session_parameters ["CLIENT_STAGE_ARRAY_BINDING_THRESHOLD" ]
1449+ assert isinstance (binding_threshold , int )
1450+ if bind_size >= binding_threshold > 0 :
14551451 # bind stage optimization
14561452 try :
14571453 rows = self .connection ._write_params_to_byte_rows (seqparams )
@@ -1472,7 +1468,8 @@ def executemany(
14721468 return self
14731469
14741470 self .reset ()
1475- if "num_statements" not in kwargs :
1471+ num_statements = kwargs .get ("num_statements" )
1472+ if num_statements is None :
14761473 # fall back to old driver behavior when the user does not provide the parameter to enable
14771474 # multi-statement optimizations for executemany
14781475 for param in seqparams :
@@ -1493,9 +1490,7 @@ def executemany(
14931490 query = command * len (seqparams )
14941491 params = [param for parameters in seqparams for param in parameters ]
14951492
1496- kwargs ["num_statements" ]: int = kwargs .get ("num_statements" ) * len (
1497- seqparams
1498- )
1493+ kwargs ["num_statements" ]: int = num_statements * len (seqparams )
14991494
15001495 self .execute (query , params , _do_reset = False , ** kwargs )
15011496
0 commit comments