diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2018-08-29 10:00:15 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2018-08-29 10:03:36 +0200 |
| commit | e7acd99113dfedee1bfcdadd2f81db96ab01e95d (patch) | |
| tree | e03260835d32d176f06857c87e6d903bc137ea99 /django/db/models/sql | |
| parent | c4559d0b39087e82a546c16e7412a7c097787bf0 (diff) | |
[2.1.x] Fixed #29694 -- Fixed column mismatch crash with QuerySet.values() or values_list() after combining querysets with extra() with union(), difference(), or intersection().
Regression in 0b66c3b442875627fa6daef4ac1e90900d74290b.
Backport of 39461a83c33f0cfe719d3b139413d1f5d1e75d5e from master
Diffstat (limited to 'django/db/models/sql')
| -rw-r--r-- | django/db/models/sql/compiler.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py index 8b0fd1da46..27b8cc343b 100644 --- a/django/db/models/sql/compiler.py +++ b/django/db/models/sql/compiler.py @@ -411,7 +411,11 @@ class SQLCompiler: # must have the same columns list. Set the selects defined on # the query on all combined queries, if not already set. if not compiler.query.values_select and self.query.values_select: - compiler.query.set_values((*self.query.values_select, *self.query.annotation_select)) + compiler.query.set_values(( + *self.query.extra_select, + *self.query.values_select, + *self.query.annotation_select, + )) parts += (compiler.as_sql(),) except EmptyResultSet: # Omit the empty queryset with UNION and with DIFFERENCE if the |
