﻿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
35369	MySQL .union().aggregate() raises Unknown Column	DS/Charlie	nobody	"{{{

class BugModel(models.Model):
    foo = models.CharField(max_length=255)

class BugTestCase(TestCase):
    def test_bug(self):
        a = BugModel.objects.all()
        b = BugModel.objects.all()

        ab = a.union(b)   # does NOT happen with `a | b`
        """"""
            (
                SELECT `bugapp_bugmodel`.`id` AS `col1`,  `bugapp_bugmodel`.`foo` AS `col2`
                FROM `bugapp_bugmodel`
            ) UNION (
                SELECT `bugapp_bugmodel`.`id` AS `col1`, `bugapp_bugmodel`.`foo` AS `col2`
                FROM `bugapp_bugmodel`
            )
        """"""

        q = ab.aggregate(max=Max(""foo""))
        """"""
        SELECT MAX(`__col1`)
        FROM (
            (
                SELECT  `bugapp_bugmodel`.`id` AS `col1`, `bugapp_bugmodel`.`foo` AS `col2`
                FROM `bugapp_bugmodel`
            ) UNION (
                SELECT `bugapp_bugmodel`.`id` AS `col1`, `bugapp_bugmodel`.`foo` AS `col2`
                FROM `bugapp_bugmodel`
            )
        ) subquery

        
        Traceback (most recent call last):
          File ""/private/tmp/djangobug/venv/lib/python3.12/site-packages/django/db/backends/utils.py"", line 89, in _execute
            return self.cursor.execute(sql, params)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          File ""/private/tmp/djangobug/venv/lib/python3.12/site-packages/django/db/backends/mysql/base.py"", line 75, in execute
            return self.cursor.execute(query, args)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          File ""/private/tmp/djangobug/venv/lib/python3.12/site-packages/MySQLdb/cursors.py"", line 179, in execute
            res = self._query(mogrified_query)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          File ""/private/tmp/djangobug/venv/lib/python3.12/site-packages/MySQLdb/cursors.py"", line 330, in _query
            db.query(q)
          File ""/private/tmp/djangobug/venv/lib/python3.12/site-packages/MySQLdb/connections.py"", line 261, in query
            _mysql.connection.query(self, query)
        MySQLdb.OperationalError: (1054, ""Unknown column '__col1' in 'field list'"")
        """"""

        self.assertIsNone(q['max'])
}}}


Django 4.2.11 and 5.0.4
mysqlclient 2.2.4

all in a clean virtualenv on python 3.12.2
"	Bug	closed	Database layer (models, ORM)	5.0	Normal	duplicate	union,aggregate,mysql	DS/Charlie	Unreviewed	0	0	0	0	0	0
