Opened 8 months ago
Last modified 8 months ago
#35369 closed Bug
MySQL .union().aggregate() raises Unknown Column — at Version 1
Reported by: | DS/Charlie | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 5.0 |
Severity: | Normal | Keywords: | union, aggregate, mysql |
Cc: | DS/Charlie | Triage Stage: | Unreviewed |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
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, all=False) """ ( 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` ) """ 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'") """
Django 4.2.11 and 5.0.4
mysqlclient 2.2.4
all in a clean virtualenv on python 3.12.2
Note:
See TracTickets
for help on using tickets.