1
0
mirror of https://github.com/django/django.git synced 2025-10-29 16:46:11 +00:00

Fixed #15823 - incorrect join condition when combining Q objects

Thanks to dcwatson for the excellent report and patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16159 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Luke Plant
2011-05-05 20:26:26 +00:00
parent 970ae01620
commit db5807bdb1
3 changed files with 41 additions and 1 deletions

View File

@@ -457,7 +457,11 @@ class Query(object):
# An unused alias.
continue
promote = (rhs.alias_map[alias][JOIN_TYPE] == self.LOUTER)
new_alias = self.join(rhs.rev_join_map[alias],
lhs, table, lhs_col, col = rhs.rev_join_map[alias]
# If the left side of the join was already relabeled, use the
# updated alias.
lhs = change_map.get(lhs, lhs)
new_alias = self.join((lhs, table, lhs_col, col),
(conjunction and not first), used, promote, not conjunction)
used.add(new_alias)
change_map[alias] = new_alias