From 20cfd03cae571d66db88bdf40804a26f082bd860 Mon Sep 17 00:00:00 2001 From: Gaurav Sharma Date: Fri, 23 Jan 2026 09:36:04 +0530 Subject: [PATCH] Fix _bulkcopy kwargs passing to mssql_py_core The Rust API expects kwargs as a dict parameter (kwargs=dict), not as Python keyword arguments (**kwargs). Before: pycore_cursor.bulkcopy(table_name, iter(data), **kwargs) After: pycore_cursor.bulkcopy(table_name, iter(data), kwargs=kwargs) --- mssql_python/cursor.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mssql_python/cursor.py b/mssql_python/cursor.py index 84bb650d..1b85a8b2 100644 --- a/mssql_python/cursor.py +++ b/mssql_python/cursor.py @@ -2599,7 +2599,11 @@ def _bulkcopy( pycore_connection = mssql_py_core.PyCoreConnection(pycore_context) pycore_cursor = pycore_connection.cursor() - result = pycore_cursor.bulkcopy(table_name, iter(data), **kwargs) + # Pass kwargs as a dict parameter, not as Python keyword arguments + # The Rust API expects: bulkcopy(table_name, data_source, kwargs=dict) + result = pycore_cursor.bulkcopy( + table_name, iter(data), kwargs=kwargs if kwargs else None + ) return result