diff options
Diffstat (limited to 'django/db/models/sql')
| -rw-r--r-- | django/db/models/sql/compiler.py | 8 | ||||
| -rw-r--r-- | django/db/models/sql/query.py | 1 |
2 files changed, 7 insertions, 2 deletions
diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py index 97288c83d7..d1009847e7 100644 --- a/django/db/models/sql/compiler.py +++ b/django/db/models/sql/compiler.py @@ -266,8 +266,12 @@ class SQLCompiler: try: sql, params = self.compile(col) except EmptyResultSet: - # Select a predicate that's always False. - sql, params = '0', () + empty_result_set_value = getattr(col, 'empty_result_set_value', NotImplemented) + if empty_result_set_value is NotImplemented: + # Select a predicate that's always False. + sql, params = '0', () + else: + sql, params = self.compile(Value(empty_result_set_value)) else: sql, params = col.select_format(self, sql, params) ret.append((col, (sql, params), alias)) diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py index d1c0c333f5..6436b25bae 100644 --- a/django/db/models/sql/query.py +++ b/django/db/models/sql/query.py @@ -143,6 +143,7 @@ class Query(BaseExpression): """A single SQL query.""" alias_prefix = 'T' + empty_result_set_value = None subq_aliases = frozenset([alias_prefix]) compiler = 'SQLCompiler' |
