summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2022-10-25 20:01:25 +0200
committerGitHub <noreply@github.com>2022-10-25 20:01:25 +0200
commit6d41f5e5edc54fec9f71540fbddb1197a862b9cc (patch)
tree0befd2038bb2ee690b3d8c00244ec5ceebfe8cf9
parentc0fc1b5302f5d9d82e2255fb5758321fbac34949 (diff)
Fixed DatabaseFeatures.supports_select_(intersection/difference) on MariaDB and MySQL 8.0.31+.
-rw-r--r--django/db/backends/mysql/features.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/django/db/backends/mysql/features.py b/django/db/backends/mysql/features.py
index d5641215ca..f2e4e1f1f4 100644
--- a/django/db/backends/mysql/features.py
+++ b/django/db/backends/mysql/features.py
@@ -20,8 +20,6 @@ class DatabaseFeatures(BaseDatabaseFeatures):
atomic_transactions = False
can_clone_databases = True
supports_temporal_subtraction = True
- supports_select_intersection = False
- supports_select_difference = False
supports_slicing_ordering_in_compound = True
supports_index_on_text_field = False
supports_update_conflicts = True
@@ -323,6 +321,15 @@ class DatabaseFeatures(BaseDatabaseFeatures):
)
@cached_property
+ def supports_select_intersection(self):
+ is_mariadb = self.connection.mysql_is_mariadb
+ return is_mariadb or self.connection.mysql_version >= (8, 0, 31)
+
+ supports_select_difference = property(
+ operator.attrgetter("supports_select_intersection")
+ )
+
+ @cached_property
def can_rename_index(self):
if self.connection.mysql_is_mariadb:
return self.connection.mysql_version >= (10, 5, 2)