summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2021-09-22 11:57:54 +0200
committerGitHub <noreply@github.com>2021-09-22 11:57:54 +0200
commit221b2f85febcf68629fc3a4007dc7edb5a305b91 (patch)
treedc9c8a156758abb9f468ea31ccc627a584ebb208 /django
parent2f144323756fc6f8517e357c540f3570356d9eba (diff)
Fixed #33129 -- Dropped support for MariaDB 10.2.
Diffstat (limited to 'django')
-rw-r--r--django/contrib/gis/db/backends/mysql/introspection.py8
-rw-r--r--django/contrib/gis/db/backends/mysql/operations.py2
-rw-r--r--django/contrib/gis/db/backends/mysql/schema.py4
-rw-r--r--django/db/backends/mysql/base.py4
-rw-r--r--django/db/backends/mysql/features.py8
-rw-r--r--django/db/backends/mysql/schema.py5
6 files changed, 14 insertions, 17 deletions
diff --git a/django/contrib/gis/db/backends/mysql/introspection.py b/django/contrib/gis/db/backends/mysql/introspection.py
index 3dc4ae6488..7c1fb1ed84 100644
--- a/django/contrib/gis/db/backends/mysql/introspection.py
+++ b/django/contrib/gis/db/backends/mysql/introspection.py
@@ -29,10 +29,10 @@ class MySQLIntrospection(DatabaseIntrospection):
return field_type, field_params
def supports_spatial_index(self, cursor, table_name):
- # Supported with MyISAM/Aria, or InnoDB on MySQL 5.7.5+/MariaDB 10.2.2+
+ # Supported with MyISAM/Aria, or InnoDB on MySQL 5.7.5+/MariaDB.
storage_engine = self.get_storage_engine(cursor, table_name)
if storage_engine == 'InnoDB':
- return self.connection.mysql_version >= (
- (10, 2, 2) if self.connection.mysql_is_mariadb else (5, 7, 5)
- )
+ if self.connection.mysql_is_mariadb:
+ True
+ return self.connection.mysql_version >= (5, 7, 5)
return storage_engine in ('MyISAM', 'Aria')
diff --git a/django/contrib/gis/db/backends/mysql/operations.py b/django/contrib/gis/db/backends/mysql/operations.py
index 3ca609f6c4..87ab371aa3 100644
--- a/django/contrib/gis/db/backends/mysql/operations.py
+++ b/django/contrib/gis/db/backends/mysql/operations.py
@@ -70,8 +70,6 @@ class MySQLOperations(BaseSpatialOperations, DatabaseOperations):
if self.connection.mysql_is_mariadb:
unsupported.remove('PointOnSurface')
unsupported.update({'GeoHash', 'IsValid'})
- if self.connection.mysql_version < (10, 2, 4):
- unsupported.add('AsGeoJSON')
elif self.connection.mysql_version < (5, 7, 5):
unsupported.update({'AsGeoJSON', 'GeoHash', 'IsValid'})
return unsupported
diff --git a/django/contrib/gis/db/backends/mysql/schema.py b/django/contrib/gis/db/backends/mysql/schema.py
index 679b2bcb8e..01c66c8083 100644
--- a/django/contrib/gis/db/backends/mysql/schema.py
+++ b/django/contrib/gis/db/backends/mysql/schema.py
@@ -16,8 +16,8 @@ class MySQLGISSchemaEditor(DatabaseSchemaEditor):
self.geometry_sql = []
def skip_default(self, field):
- # Geometry fields are stored as BLOB/TEXT, for which MySQL < 8.0.13 and
- # MariaDB < 10.2.1 don't support defaults.
+ # Geometry fields are stored as BLOB/TEXT, for which MySQL < 8.0.13
+ # doesn't support defaults.
if isinstance(field, GeometryField) and not self._supports_limited_data_type_defaults:
return True
return super().skip_default(field)
diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py
index 8b28a60485..d31594d584 100644
--- a/django/db/backends/mysql/base.py
+++ b/django/db/backends/mysql/base.py
@@ -132,8 +132,8 @@ class DatabaseWrapper(BaseDatabaseWrapper):
}
# For these data types:
- # - MySQL < 8.0.13 and MariaDB < 10.2.1 don't accept default values and
- # implicitly treat them as nullable
+ # - MySQL < 8.0.13 doesn't accept default values and implicitly treats them
+ # as nullable
# - all versions of MySQL and MariaDB don't support full width database
# indexes
_limited_data_types = (
diff --git a/django/db/backends/mysql/features.py b/django/db/backends/mysql/features.py
index b51025e358..3b1b23a585 100644
--- a/django/db/backends/mysql/features.py
+++ b/django/db/backends/mysql/features.py
@@ -184,7 +184,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
@cached_property
def supports_column_check_constraints(self):
if self.connection.mysql_is_mariadb:
- return self.connection.mysql_version >= (10, 2, 1)
+ return True
return self.connection.mysql_version >= (8, 0, 16)
supports_table_check_constraints = property(operator.attrgetter('supports_column_check_constraints'))
@@ -193,7 +193,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
def can_introspect_check_constraints(self):
if self.connection.mysql_is_mariadb:
version = self.connection.mysql_version
- return (version >= (10, 2, 22) and version < (10, 3)) or version >= (10, 3, 10)
+ return version >= (10, 3, 10)
return self.connection.mysql_version >= (8, 0, 16)
@cached_property
@@ -205,7 +205,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
@cached_property
def has_select_for_update_nowait(self):
if self.connection.mysql_is_mariadb:
- return self.connection.mysql_version >= (10, 3, 0)
+ return True
return self.connection.mysql_version >= (8, 0, 1)
@cached_property
@@ -244,7 +244,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
@cached_property
def supports_json_field(self):
if self.connection.mysql_is_mariadb:
- return self.connection.mysql_version >= (10, 2, 7)
+ return True
return self.connection.mysql_version >= (5, 7, 8)
@cached_property
diff --git a/django/db/backends/mysql/schema.py b/django/db/backends/mysql/schema.py
index 6402bc7145..b45d3b8d98 100644
--- a/django/db/backends/mysql/schema.py
+++ b/django/db/backends/mysql/schema.py
@@ -77,10 +77,9 @@ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor):
@property
def _supports_limited_data_type_defaults(self):
- # MariaDB >= 10.2.1 and MySQL >= 8.0.13 supports defaults for BLOB
- # and TEXT.
+ # MariaDB and MySQL >= 8.0.13 support defaults for BLOB and TEXT.
if self.connection.mysql_is_mariadb:
- return self.connection.mysql_version >= (10, 2, 1)
+ return True
return self.connection.mysql_version >= (8, 0, 13)
def _column_default_sql(self, field):