diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-10-25 20:01:25 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-25 20:01:25 +0200 |
| commit | 6d41f5e5edc54fec9f71540fbddb1197a862b9cc (patch) | |
| tree | 0befd2038bb2ee690b3d8c00244ec5ceebfe8cf9 | |
| parent | c0fc1b5302f5d9d82e2255fb5758321fbac34949 (diff) | |
Fixed DatabaseFeatures.supports_select_(intersection/difference) on MariaDB and MySQL 8.0.31+.
| -rw-r--r-- | django/db/backends/mysql/features.py | 11 |
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) |
