From b863c5ffde0bafa5eaa9f262103eaeb71877787c Mon Sep 17 00:00:00 2001 From: David Sanders Date: Mon, 13 Nov 2023 00:45:52 +1100 Subject: Fixed #34967 -- Fixed queryset crash when grouping by constants on SQLite < 3.39. On SQLite < 3.39, this forces a GROUP BY clause with a HAVING clause when no grouping is specified. Co-authored-by: Simon Charette --- django/db/backends/sqlite3/operations.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'django/db/backends/sqlite3') diff --git a/django/db/backends/sqlite3/operations.py b/django/db/backends/sqlite3/operations.py index 85ad804348..dfc9857b84 100644 --- a/django/db/backends/sqlite3/operations.py +++ b/django/db/backends/sqlite3/operations.py @@ -14,6 +14,8 @@ from django.utils import timezone from django.utils.dateparse import parse_date, parse_datetime, parse_time from django.utils.functional import cached_property +from .base import Database + class DatabaseOperations(BaseDatabaseOperations): cast_char_field_without_max_length = "text" @@ -439,3 +441,6 @@ class DatabaseOperations(BaseDatabaseOperations): update_fields, unique_fields, ) + + def force_group_by(self): + return ["GROUP BY TRUE"] if Database.sqlite_version_info < (3, 39) else [] -- cgit v1.3