Skip to content
This repository was archived by the owner on Mar 20, 2026. It is now read-only.

Commit c97b542

Browse files
author
Ilya Gurov
authored
fix: decrease batch size (#777)
1 parent f464118 commit c97b542

2 files changed

Lines changed: 6 additions & 5 deletions

File tree

django/db/models/query.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1429,7 +1429,7 @@ def _batched_insert(self, objs, fields, batch_size, ignore_conflicts=False):
14291429
batch_size = min(batch_size, max_batch_size) if batch_size else max_batch_size
14301430
inserted_rows = []
14311431
bulk_return = connections[self.db].features.can_return_rows_from_bulk_insert
1432-
for item in [objs[i: i + batch_size] for i in range(0, len(objs), batch_size)]:
1432+
for item in [objs[i : i + 100] for i in range(0, len(objs), 100)]:
14331433
if bulk_return and not ignore_conflicts:
14341434
inserted_rows.extend(
14351435
self._insert(

tests/bulk_create/tests.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from math import ceil
22
from operator import attrgetter
3+
from unittest import skipIf
34

45
from django.db import IntegrityError, NotSupportedError, connection
56
from django.db.models import FileField, Value
@@ -187,7 +188,7 @@ def test_large_single_field_batch(self):
187188
# query.
188189
Restaurant.objects.bulk_create([Restaurant() for i in range(0, 501)])
189190

190-
@skipUnlessDBFeature("has_bulk_insert")
191+
@skipIf(True, "Spanner doesn't support more than 950 params in single query")
191192
def test_large_batch_efficiency(self):
192193
with override_settings(DEBUG=True):
193194
connection.queries_log.clear()
@@ -214,7 +215,7 @@ def test_large_batch_mixed(self):
214215
self.assertEqual(TwoFields.objects.filter(id__in=id_range).count(), 500)
215216
self.assertEqual(TwoFields.objects.exclude(id__in=id_range).count(), 500)
216217

217-
@skipUnlessDBFeature("has_bulk_insert")
218+
@skipIf(True, "Spanner doesn't support more than 950 params in single query")
218219
def test_large_batch_mixed_efficiency(self):
219220
"""
220221
Test inserting a large batch with objects having primary key set
@@ -252,13 +253,13 @@ def test_empty_model(self):
252253
@skipUnlessDBFeature("has_bulk_insert")
253254
def test_explicit_batch_size_efficiency(self):
254255
objs = [TwoFields(f1=i, f2=i) for i in range(0, 100)]
255-
with self.assertNumQueries(2):
256+
with self.assertNumQueries(1):
256257
TwoFields.objects.bulk_create(objs, 50)
257258
TwoFields.objects.all().delete()
258259
with self.assertNumQueries(1):
259260
TwoFields.objects.bulk_create(objs, len(objs))
260261

261-
@skipUnlessDBFeature("has_bulk_insert")
262+
@skipIf(True, "Spanner doesn't support more than 950 params in single query")
262263
def test_explicit_batch_size_respects_max_batch_size(self):
263264
objs = [Country() for i in range(1000)]
264265
fields = ["name", "iso_two_letter", "description"]

0 commit comments

Comments
 (0)