mirror of
https://github.com/django/django.git
synced 2025-08-03 18:38:50 +00:00
Refs #21160 -- Replaced DatabaseFeatures.supports_1000_query_parameters by a DatabaseFeatures.max_query_params.
This commit is contained in:
parent
1b1ea63f6a
commit
f42c7cc87b
4 changed files with 16 additions and 27 deletions
|
@ -2523,32 +2523,17 @@ class ConditionalTests(TestCase):
|
|||
self.assertEqual(sql.find(fragment, pos + 1), -1)
|
||||
self.assertEqual(sql.find("NULL", pos + len(fragment)), pos + len(fragment))
|
||||
|
||||
# Sqlite 3 does not support passing in more than 1000 parameters except by
|
||||
# changing a parameter at compilation time.
|
||||
@skipUnlessDBFeature('supports_1000_query_parameters')
|
||||
def test_ticket14244(self):
|
||||
def test_in_list_limit(self):
|
||||
# The "in" lookup works with lists of 1000 items or more.
|
||||
# The numbers amount is picked to force three different IN batches
|
||||
# for Oracle, yet to be less than 2100 parameter limit for MSSQL.
|
||||
numbers = list(range(2050))
|
||||
Number.objects.all().delete()
|
||||
Number.objects.bulk_create(Number(num=num) for num in numbers)
|
||||
self.assertEqual(
|
||||
Number.objects.filter(num__in=numbers[:1000]).count(),
|
||||
1000
|
||||
)
|
||||
self.assertEqual(
|
||||
Number.objects.filter(num__in=numbers[:1001]).count(),
|
||||
1001
|
||||
)
|
||||
self.assertEqual(
|
||||
Number.objects.filter(num__in=numbers[:2000]).count(),
|
||||
2000
|
||||
)
|
||||
self.assertEqual(
|
||||
Number.objects.filter(num__in=numbers).count(),
|
||||
len(numbers)
|
||||
)
|
||||
max_query_params = connection.features.max_query_params
|
||||
if max_query_params is None or max_query_params >= len(numbers):
|
||||
Number.objects.bulk_create(Number(num=num) for num in numbers)
|
||||
for number in [1000, 1001, 2000, len(numbers)]:
|
||||
with self.subTest(number=number):
|
||||
self.assertEqual(Number.objects.filter(num__in=numbers[:number]).count(), number)
|
||||
|
||||
|
||||
class UnionTests(unittest.TestCase):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue