Skip to content

Commit

Permalink
queryset-refactor: Different database backends return different empty…
Browse files Browse the repository at this point in the history
… sequences

when fetchmany() is exhausted. This change allows for that. Fixed #6807.

Nice debugging from tpherndon.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7283 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
malcolmt committed Mar 18, 2008
1 parent 6b97472 commit 98b5667
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 1 deletion.
1 change: 1 addition & 0 deletions django/db/backends/__init__.py
Expand Up @@ -50,6 +50,7 @@ class BaseDatabaseFeatures(object):
supports_tablespaces = False supports_tablespaces = False
uses_case_insensitive_names = False uses_case_insensitive_names = False
uses_custom_queryset = False uses_custom_queryset = False
empty_fetchmany_value = []


class BaseDatabaseOperations(object): class BaseDatabaseOperations(object):
""" """
Expand Down
1 change: 1 addition & 0 deletions django/db/backends/mysql/base.py
Expand Up @@ -61,6 +61,7 @@
class DatabaseFeatures(BaseDatabaseFeatures): class DatabaseFeatures(BaseDatabaseFeatures):
autoindexes_primary_keys = False autoindexes_primary_keys = False
inline_fk_references = False inline_fk_references = False
empty_fetchmany_value = ()


class DatabaseOperations(BaseDatabaseOperations): class DatabaseOperations(BaseDatabaseOperations):
def date_extract_sql(self, lookup_type, field_name): def date_extract_sql(self, lookup_type, field_name):
Expand Down
1 change: 1 addition & 0 deletions django/db/backends/mysql_old/base.py
Expand Up @@ -66,6 +66,7 @@ def __getattr__(self, attr):
class DatabaseFeatures(BaseDatabaseFeatures): class DatabaseFeatures(BaseDatabaseFeatures):
autoindexes_primary_keys = False autoindexes_primary_keys = False
inline_fk_references = False inline_fk_references = False
empty_fetchmany_value = ()


class DatabaseOperations(BaseDatabaseOperations): class DatabaseOperations(BaseDatabaseOperations):
def date_extract_sql(self, lookup_type, field_name): def date_extract_sql(self, lookup_type, field_name):
Expand Down
3 changes: 2 additions & 1 deletion django/db/models/sql/query.py
Expand Up @@ -1330,7 +1330,8 @@ def execute_sql(self, result_type=MULTI):
if result_type == SINGLE: if result_type == SINGLE:
return cursor.fetchone() return cursor.fetchone()
# The MULTI case. # The MULTI case.
return iter((lambda: cursor.fetchmany(GET_ITERATOR_CHUNK_SIZE)), []) return iter((lambda: cursor.fetchmany(GET_ITERATOR_CHUNK_SIZE)),
self.connection.features.empty_fetchmany_value)


def get_order_dir(field, default='ASC'): def get_order_dir(field, default='ASC'):
""" """
Expand Down

0 comments on commit 98b5667

Please sign in to comment.