mirror of
https://github.com/django/django.git
synced 2025-07-05 18:29:11 +00:00
[soc2010/query-refactor] Fixed Querysets in MongoDB with a limit of 0.
git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2010/query-refactor@13382 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
33523c9f95
commit
d6993c7dbb
@ -1,6 +1,6 @@
|
|||||||
from pymongo import ASCENDING, DESCENDING
|
from pymongo import ASCENDING, DESCENDING
|
||||||
|
|
||||||
from django.db.models.sql.datastructures import FullResultSet
|
from django.db.models.sql.datastructures import FullResultSet, EmptyResultSet
|
||||||
|
|
||||||
|
|
||||||
# TODO: ...
|
# TODO: ...
|
||||||
@ -87,11 +87,16 @@ class SQLCompiler(object):
|
|||||||
if self.query.low_mark:
|
if self.query.low_mark:
|
||||||
cursor = cursor.skip(self.query.low_mark)
|
cursor = cursor.skip(self.query.low_mark)
|
||||||
if self.query.high_mark is not None:
|
if self.query.high_mark is not None:
|
||||||
|
if self.query.high_mark - self.query.low_mark == 0:
|
||||||
|
raise EmptyResultSet
|
||||||
cursor = cursor.limit(self.query.high_mark - self.query.low_mark)
|
cursor = cursor.limit(self.query.high_mark - self.query.low_mark)
|
||||||
return cursor
|
return cursor
|
||||||
|
|
||||||
def results_iter(self):
|
def results_iter(self):
|
||||||
query = self.build_query()
|
try:
|
||||||
|
query = self.build_query()
|
||||||
|
except EmptyResultSet:
|
||||||
|
return
|
||||||
fields = self.get_fields(aggregates=False)
|
fields = self.get_fields(aggregates=False)
|
||||||
if fields is None:
|
if fields is None:
|
||||||
fields = [
|
fields = [
|
||||||
|
@ -95,8 +95,7 @@ class MongoTestCase(TestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
for i in xrange(5):
|
for i in xrange(5):
|
||||||
# TODO: should be i, but Mongo falls over with limit(0)
|
for j in xrange(i, 5):
|
||||||
for j in xrange(i+1, 5):
|
|
||||||
self.assertQuerysetEqual(
|
self.assertQuerysetEqual(
|
||||||
Artist.objects.all()[i:j],
|
Artist.objects.all()[i:j],
|
||||||
artists[i:j],
|
artists[i:j],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user