summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2022-12-01 16:03:58 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2022-12-01 16:10:25 -0500
commite3b905be21f392b17817decff5e1e76f02ccad03 (patch)
treee0ab46e472d7e9b6393326bc4f1921498c1a4978 /doc
parent990663c732e5bde43ed05eba0ade6d96fc7a2b26 (diff)
downloadsqlalchemy-e3b905be21f392b17817decff5e1e76f02ccad03.tar.gz
disable setinputsizes only for true DBAPI executemany
Fixed regression caused by the combination of :ticket:`8177`, re-enable setinputsizes for SQL server unless fast_executemany + DBAPI executemany is used for a statement, along with :ticket:`6047`, implement "insertmanyvalues", which bypasses DBAPI executemany in place of a custom DBAPI execute for INSERT statements. setinputsizes would incorrectly not be used for a multiple parameter-set INSERT statement that used "insertmanyvalues" if fast_executemany were turned on, as the check would incorrectly assume this is a DBAPI executemany call. The "regression" would then be that the "insertmanyvalues" statement format is apparently slightly more sensitive to multiple rows that don't use the same types for each row, so in such a case setinputsizes is especially needed. The fix repairs the fast_executemany check so that it only disables setinputsizes if true DBAPI executemany is to be used. Fixes: #8917 Change-Id: I78895606a99848d4f92ecf38ded92dc5d6d48c6f
Diffstat (limited to 'doc')
-rw-r--r--doc/build/changelog/unreleased_20/8917.rst18
1 files changed, 18 insertions, 0 deletions
diff --git a/doc/build/changelog/unreleased_20/8917.rst b/doc/build/changelog/unreleased_20/8917.rst
new file mode 100644
index 000000000..37bee0d6b
--- /dev/null
+++ b/doc/build/changelog/unreleased_20/8917.rst
@@ -0,0 +1,18 @@
+.. change::
+ :tags: bug, mssql
+ :tickets: 8917
+
+ Fixed regression caused by the combination of :ticket:`8177`, re-enable
+ setinputsizes for SQL server unless fast_executemany + DBAPI executemany is
+ used for a statement, along with :ticket:`6047`, implement
+ "insertmanyvalues", which bypasses DBAPI executemany in place of a custom
+ DBAPI execute for INSERT statements. setinputsizes would incorrectly not be
+ used for a multiple parameter-set INSERT statement that used
+ "insertmanyvalues" if fast_executemany were turned on, as the check would
+ incorrectly assume this is a DBAPI executemany call. The "regression"
+ would then be that the "insertmanyvalues" statement format is apparently
+ slightly more sensitive to multiple rows that don't use the same types
+ for each row, so in such a case setinputsizes is especially needed.
+
+ The fix repairs the fast_executemany check so that it only disables
+ setinputsizes if true DBAPI executemany is to be used.