summaryrefslogtreecommitdiff
path: root/django/db/backends/sqlite3
diff options
context:
space:
mode:
authorSarah Boyce <42296566+sarahboyce@users.noreply.github.com>2025-01-27 10:28:21 +0100
committerSarah Boyce <42296566+sarahboyce@users.noreply.github.com>2025-01-29 09:11:54 +0000
commit5a2c1bc07d126ce32efaa157e712a8f3a7457b74 (patch)
treec022d548bbb2f325083575c3c4c229ddae9569d7 /django/db/backends/sqlite3
parent0671a461c44ba4cf97e84b6c88413bed332df314 (diff)
Fixed #36118 -- Accounted for multiple primary keys in bulk_update max_batch_size.
Co-authored-by: Simon Charette <charette.s@gmail.com>
Diffstat (limited to 'django/db/backends/sqlite3')
-rw-r--r--django/db/backends/sqlite3/operations.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/django/db/backends/sqlite3/operations.py b/django/db/backends/sqlite3/operations.py
index 0078cc077a..08de246d70 100644
--- a/django/db/backends/sqlite3/operations.py
+++ b/django/db/backends/sqlite3/operations.py
@@ -36,6 +36,16 @@ class DatabaseOperations(BaseDatabaseOperations):
If there's only a single field to insert, the limit is 500
(SQLITE_MAX_COMPOUND_SELECT).
"""
+ fields = list(
+ chain.from_iterable(
+ (
+ field.fields
+ if isinstance(field, models.CompositePrimaryKey)
+ else [field]
+ )
+ for field in fields
+ )
+ )
if len(fields) == 1:
return 500
elif len(fields) > 1: