From ed1bcf05158acf4bf4e0189d477b6c762bd0133e Mon Sep 17 00:00:00 2001 From: Sergey Fedoseev Date: Fri, 18 Dec 2015 00:16:43 +0500 Subject: [PATCH] Refs #25894 -- Fixed evaluation of zero-length slices of QuerySet.values() on Oracle. --- django/db/backends/oracle/compiler.py | 3 --- django/db/models/sql/compiler.py | 2 -- django/db/models/sql/query.py | 3 +++ 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/django/db/backends/oracle/compiler.py b/django/db/backends/oracle/compiler.py index 1044a5feb7..7073dc34e8 100644 --- a/django/db/backends/oracle/compiler.py +++ b/django/db/backends/oracle/compiler.py @@ -12,9 +12,6 @@ class SQLCompiler(compiler.SQLCompiler): If 'with_limits' is False, any limit/offset information is not included in the query. """ - if with_limits and self.query.low_mark == self.query.high_mark: - return '', () - # The `do_offset` flag indicates whether we need to construct # the SQL needed to use limit/offset with Oracle. do_offset = with_limits and (self.query.high_mark is not None diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py index a018517b89..47a85bb9a4 100644 --- a/django/db/models/sql/compiler.py +++ b/django/db/models/sql/compiler.py @@ -367,8 +367,6 @@ class SQLCompiler(object): refcounts_before = self.query.alias_refcount.copy() try: extra_select, order_by, group_by = self.pre_sql_setup() - if with_limits and self.query.low_mark == self.query.high_mark: - return '', () distinct_fields = self.get_distinct() # This must come after 'select', 'ordering', and 'distinct' -- see diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py index 0686bf8875..f9df41392b 100644 --- a/django/db/models/sql/query.py +++ b/django/db/models/sql/query.py @@ -1550,6 +1550,9 @@ class Query(object): else: self.low_mark = self.low_mark + low + if self.low_mark == self.high_mark: + self.set_empty() + def clear_limits(self): """ Clears any existing limits.