diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2017-03-20 16:21:01 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-03-20 11:21:56 -0400 |
| commit | 40b843488a1c4f2fab8e3ab895718a867cc00133 (patch) | |
| tree | e1cb5e4fc7c1d33821e2edb352cf70f48c0628b2 | |
| parent | 0b93a992e50ebe455e46d261cb6a741bba1ad76e (diff) | |
[1.11.x] Refs #27935 -- Fixed BrinIndex.max_name_length if a project's default database isn't PostgreSQL.
Thanks Florian Apolloner for the report.
Backport of 2867b7eb4b8477710f11707d4b975db10e5f91a7 from master
| -rw-r--r-- | django/contrib/postgres/indexes.py | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/django/contrib/postgres/indexes.py b/django/contrib/postgres/indexes.py index 785f1d8020..750adc26d4 100644 --- a/django/contrib/postgres/indexes.py +++ b/django/contrib/postgres/indexes.py @@ -1,14 +1,17 @@ from __future__ import unicode_literals -from django.db import connection from django.db.models import Index -from django.utils.functional import cached_property __all__ = ['BrinIndex', 'GinIndex'] class BrinIndex(Index): suffix = 'brin' + # Allow an index name longer than 30 characters since the suffix is 4 + # characters (usual limit is 3). Since this index can only be used on + # PostgreSQL, the 30 character limit for cross-database compatibility isn't + # applicable. + max_name_length = 31 def __init__(self, fields=[], name=None, pages_per_range=None): if pages_per_range is not None and pages_per_range <= 0: @@ -38,14 +41,6 @@ class BrinIndex(Index): schema_editor.quote_value(self.pages_per_range)) + parameters['extra'] return parameters - @cached_property - def max_name_length(self): - # Allow an index name longer than 30 characters since the suffix - # is 4 characters (usual limit is 3). Since this index can only be - # used on PostgreSQL, the 30 character limit for cross-database - # compatibility isn't applicable. - return connection.ops.max_name_length() - class GinIndex(Index): suffix = 'gin' |
