summaryrefslogtreecommitdiff
path: root/django/db
diff options
context:
space:
mode:
authorHannes Ljungberg <hannes@5monkeys.se>2020-12-23 11:08:42 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-12-23 11:16:13 +0100
commitd23cb83c99bc77c23e2fb5bff378d2f2092d7b29 (patch)
tree90f07a39de035cb15e12574026a19c51d5ed2a7a /django/db
parent3bca95cca277a1e205c10d4fd3ea8527c6fcc34a (diff)
Refs #26167 -- Made DatabaseSchemaEditor._create_index_sql()'s fields argument optional and kwarg-only.
Diffstat (limited to 'django/db')
-rw-r--r--django/db/backends/base/schema.py10
-rw-r--r--django/db/backends/mysql/schema.py4
-rw-r--r--django/db/backends/postgresql/schema.py22
-rw-r--r--django/db/models/indexes.py7
4 files changed, 28 insertions, 15 deletions
diff --git a/django/db/backends/base/schema.py b/django/db/backends/base/schema.py
index 9e5ceb9ec2..2f05ae5d96 100644
--- a/django/db/backends/base/schema.py
+++ b/django/db/backends/base/schema.py
@@ -407,7 +407,7 @@ class BaseDatabaseSchemaEditor:
# Created indexes
for field_names in news.difference(olds):
fields = [model._meta.get_field(field) for field in field_names]
- self.execute(self._create_index_sql(model, fields, suffix="_idx"))
+ self.execute(self._create_index_sql(model, fields=fields, suffix='_idx'))
def _delete_composed_index(self, model, fields, constraint_kwargs, sql):
meta_constraint_names = {constraint.name for constraint in model._meta.constraints}
@@ -778,7 +778,7 @@ class BaseDatabaseSchemaEditor:
# False | True | True | False
# True | True | True | False
if (not old_field.db_index or old_field.unique) and new_field.db_index and not new_field.unique:
- self.execute(self._create_index_sql(model, [new_field]))
+ self.execute(self._create_index_sql(model, fields=[new_field]))
# Type alteration on primary key? Then we need to alter the column
# referring to us.
rels_to_update = []
@@ -990,7 +990,7 @@ class BaseDatabaseSchemaEditor:
columns=Columns(model._meta.db_table, columns, self.quote_name),
)
- def _create_index_sql(self, model, fields, *, name=None, suffix='', using='',
+ def _create_index_sql(self, model, *, fields=None, name=None, suffix='', using='',
db_tablespace=None, col_suffixes=(), sql=None, opclasses=(),
condition=None, include=None):
"""
@@ -1043,7 +1043,7 @@ class BaseDatabaseSchemaEditor:
for field_names in model._meta.index_together:
fields = [model._meta.get_field(field) for field in field_names]
- output.append(self._create_index_sql(model, fields, suffix="_idx"))
+ output.append(self._create_index_sql(model, fields=fields, suffix='_idx'))
for index in model._meta.indexes:
output.append(index.create_sql(model, self))
@@ -1055,7 +1055,7 @@ class BaseDatabaseSchemaEditor:
"""
output = []
if self._field_should_be_indexed(model, field):
- output.append(self._create_index_sql(model, [field]))
+ output.append(self._create_index_sql(model, fields=[field]))
return output
def _field_should_be_altered(self, old_field, new_field):
diff --git a/django/db/backends/mysql/schema.py b/django/db/backends/mysql/schema.py
index 728f2f6c64..b7268e2b23 100644
--- a/django/db/backends/mysql/schema.py
+++ b/django/db/backends/mysql/schema.py
@@ -126,7 +126,9 @@ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor):
if first_field.get_internal_type() == 'ForeignKey':
constraint_names = self._constraint_names(model, [first_field.column], index=True)
if not constraint_names:
- self.execute(self._create_index_sql(model, [first_field], suffix=""))
+ self.execute(
+ self._create_index_sql(model, fields=[first_field], suffix='')
+ )
return super()._delete_composed_index(model, fields, *args)
def _set_field_new_type_null_status(self, field, new_type):
diff --git a/django/db/backends/postgresql/schema.py b/django/db/backends/postgresql/schema.py
index b2442f80b7..13dd99adb0 100644
--- a/django/db/backends/postgresql/schema.py
+++ b/django/db/backends/postgresql/schema.py
@@ -83,9 +83,19 @@ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor):
if '[' in db_type:
return None
if db_type.startswith('varchar'):
- return self._create_index_sql(model, [field], suffix='_like', opclasses=['varchar_pattern_ops'])
+ return self._create_index_sql(
+ model,
+ fields=[field],
+ suffix='_like',
+ opclasses=['varchar_pattern_ops'],
+ )
elif db_type.startswith('text'):
- return self._create_index_sql(model, [field], suffix='_like', opclasses=['text_pattern_ops'])
+ return self._create_index_sql(
+ model,
+ fields=[field],
+ suffix='_like',
+ opclasses=['text_pattern_ops'],
+ )
return None
def _alter_column_type_sql(self, model, old_field, new_field, new_type):
@@ -215,13 +225,13 @@ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor):
return super()._delete_index_sql(model, name, sql)
def _create_index_sql(
- self, model, fields, *, name=None, suffix='', using='',
+ self, model, *, fields=None, name=None, suffix='', using='',
db_tablespace=None, col_suffixes=(), sql=None, opclasses=(),
condition=None, concurrently=False, include=None,
):
sql = self.sql_create_index if not concurrently else self.sql_create_index_concurrently
return super()._create_index_sql(
- model, fields, name=name, suffix=suffix, using=using, db_tablespace=db_tablespace,
- col_suffixes=col_suffixes, sql=sql, opclasses=opclasses, condition=condition,
- include=include,
+ model, fields=fields, name=name, suffix=suffix, using=using,
+ db_tablespace=db_tablespace, col_suffixes=col_suffixes, sql=sql,
+ opclasses=opclasses, condition=condition, include=include,
)
diff --git a/django/db/models/indexes.py b/django/db/models/indexes.py
index f0f6cdab15..c5fb5789fe 100644
--- a/django/db/models/indexes.py
+++ b/django/db/models/indexes.py
@@ -66,9 +66,10 @@ class Index:
col_suffixes = [order[1] for order in self.fields_orders]
condition = self._get_condition_sql(model, schema_editor)
return schema_editor._create_index_sql(
- model, fields, name=self.name, using=using, db_tablespace=self.db_tablespace,
- col_suffixes=col_suffixes, opclasses=self.opclasses, condition=condition,
- include=include, **kwargs,
+ model, fields=fields, name=self.name, using=using,
+ db_tablespace=self.db_tablespace, col_suffixes=col_suffixes,
+ opclasses=self.opclasses, condition=condition, include=include,
+ **kwargs,
)
def remove_sql(self, model, schema_editor, **kwargs):