Commit c698c559 authored by Claude Paroz's avatar Claude Paroz
Browse files

Created special PostgreSQL text indexes when unique is True

Refs #19441.
parent a890469d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ class DatabaseCreation(BaseDatabaseCreation):

    def sql_indexes_for_field(self, model, f, style):
        output = []
        if f.db_index:
        if f.db_index or f.unique:
            qn = self.connection.ops.quote_name
            db_table = model._meta.db_table
            tablespace = f.db_tablespace or model._meta.db_tablespace
+3 −0
Original line number Diff line number Diff line
@@ -272,6 +272,9 @@ field, a :exc:`django.db.IntegrityError` will be raised by the model's
This option is valid on all field types except :class:`ManyToManyField` and
:class:`FileField`.

Note that when ``unique`` is ``True``, you don't need to specify
:attr:`~Field.db_index`, because ``unique`` implies the creation of an index.

``unique_for_date``
-------------------

+1 −1
Original line number Diff line number Diff line
@@ -17,4 +17,4 @@ if connection.vendor == 'postgresql':
    class IndexedArticle(models.Model):
        headline = models.CharField(max_length=100, db_index=True)
        body = models.TextField(db_index=True)
        slug = models.CharField(max_length=40, unique=True, db_index=True)
        slug = models.CharField(max_length=40, unique=True)