Author: ikelly
Date: 2010-09-16 14:56:39 -0500 (Thu, 16 Sep 2010)
New Revision: 13860

Modified:
   django/branches/releases/1.2.X/tests/regressiontests/queries/models.py
Log:
[1.2.X] Fixed #14244: Allow lists of more than 1000 items to be used with the 
'in' lookup in Oracle, by breaking them up into groups of 1000 items and ORing 
them together. Thanks to rlynch for the report and initial patch. Backport of 
[13859] from trunk.

Modified: django/branches/releases/1.2.X/tests/regressiontests/queries/models.py
===================================================================
--- django/branches/releases/1.2.X/tests/regressiontests/queries/models.py      
2010-09-16 19:53:41 UTC (rev 13859)
+++ django/branches/releases/1.2.X/tests/regressiontests/queries/models.py      
2010-09-16 19:56:39 UTC (rev 13860)
@@ -1339,3 +1339,23 @@
 []
 
 """
+
+# Sqlite 3 does not support passing in more than 1000 parameters except by
+# changing a parameter at compilation time.
+if settings.DATABASES[DEFAULT_DB_ALIAS]['ENGINE'] != 
"django.db.backends.sqlite3":
+    __test__["API_TESTS"] += """
+Bug #14244: Test that the "in" lookup works with lists of 1000 items or more.
+>>> Number.objects.all().delete()
+>>> numbers = range(2500)
+>>> for num in numbers:
+...     _ = Number.objects.create(num=num)
+>>> Number.objects.filter(num__in=numbers[:1000]).count()
+1000
+>>> Number.objects.filter(num__in=numbers[:1001]).count()
+1001
+>>> Number.objects.filter(num__in=numbers[:2000]).count()
+2000
+>>> Number.objects.filter(num__in=numbers).count()
+2500
+
+"""

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to