diff options
Diffstat (limited to 'django/db/models/sql')
| -rw-r--r-- | django/db/models/sql/query.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py index f682c71d07..ef69d7657f 100644 --- a/django/db/models/sql/query.py +++ b/django/db/models/sql/query.py @@ -1616,10 +1616,16 @@ class Query(object): # The MULTI case. if self.ordering_aliases: - return order_modified_iter(cursor, len(self.ordering_aliases), + result = order_modified_iter(cursor, len(self.ordering_aliases), self.connection.features.empty_fetchmany_value) - return iter((lambda: cursor.fetchmany(GET_ITERATOR_CHUNK_SIZE)), + result = iter((lambda: cursor.fetchmany(GET_ITERATOR_CHUNK_SIZE)), self.connection.features.empty_fetchmany_value) + if not self.connection.features.can_use_chunked_reads: + # If we are using non-chunked reads, we return the same data + # structure as normally, but ensure it is all read into memory + # before going any further. + return list(result) + return result # Use the backend's custom Query class if it defines one. Otherwise, use the # default. |
