﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
12252	Queryset unions are sometimes incorrect.	Ben	Ben	"Queryset unions are in this case incorrect.  It appears that an 'inner join' is
not being converted into an 'outer join' when it should be.  See the example below.

{{{
import unittest
from django.db import models

class ObjectA(models.Model):
    name = models.CharField(max_length=50)

class ObjectB(models.Model):
    name = models.CharField(max_length=50)
    objecta = models.ForeignKey(ObjectA)
    number = models.PositiveSmallIntegerField()

class TestStuff(unittest.TestCase):

    def test_stuff(self):
        names = ['one', 'two', 'three', 'four', 'five', 'six', 'seven']
        obs = [ObjectA(name=name) for name in names]
        for o in obs:
            o.save()
        b_infos = [('fish', 5, obs[0]), ('turtle', 9, obs[0]),
                   ('fish', 6, obs[3])]
        ob_bs = [ObjectB(name=name, objecta=objecta, number=number)
                 for name, number, objecta in b_infos]
        for o in ob_bs:
            o.save()
        all_query = ObjectA.objects.all()
        filter1_query = ObjectA.objects.filter(objectb__name='fish')
        filter2_query = ObjectA.objects.filter(objectb__name='fish',
                                               objectb__number=6)
        # The tests with filter1_query pass for me.
	self.assertEqual(set(all_query | filter1_query),
                         set(all_query) | set(filter1_query))
	self.assertEqual(set(filter1_query | all_query),
                         set(all_query) | set(filter1_query))
        # The second test with filter2_query fails for me.
        self.assertEqual(set(all_query | filter2_query),
                         set(all_query) | set(filter2_query))
        self.assertEqual(set(filter2_query | all_query),
                         set(all_query) | set(filter2_query))
}}}"		closed	Database layer (models, ORM)	dev		fixed			Ready for checkin	1	0	0	0	0	0
