mirror of
https://github.com/django/django.git
synced 2025-08-03 18:38:50 +00:00
Fixed #27935 -- Fixed crash with BrinIndex name > 30 characters.
This commit is contained in:
parent
93eca976c1
commit
82bb4e684f
3 changed files with 30 additions and 7 deletions
|
@ -3,7 +3,7 @@ from django.db import connection
|
|||
from django.test import skipUnlessDBFeature
|
||||
|
||||
from . import PostgreSQLTestCase
|
||||
from .models import CharFieldModel, IntegerArrayModel
|
||||
from .models import CharFieldModel, DateTimeArrayModel, IntegerArrayModel
|
||||
|
||||
|
||||
@skipUnlessDBFeature('has_brin_index_support')
|
||||
|
@ -23,6 +23,17 @@ class BrinIndexTests(PostgreSQLTestCase):
|
|||
index_with_page_range = BrinIndex(fields=['title'], pages_per_range=16)
|
||||
self.assertNotEqual(index, index_with_page_range)
|
||||
|
||||
def test_name_auto_generation(self):
|
||||
"""
|
||||
A name longer than 30 characters (since len(BrinIndex.suffix) is 4
|
||||
rather than usual limit of 3) is okay for PostgreSQL. For this test,
|
||||
the name of the field ('datetimes') must be at least 7 characters to
|
||||
generate a name longer than 30 characters.
|
||||
"""
|
||||
index = BrinIndex(fields=['datetimes'])
|
||||
index.set_name_with_model(DateTimeArrayModel)
|
||||
self.assertEqual(index.name, 'postgres_te_datetim_abf104_brin')
|
||||
|
||||
def test_deconstruction(self):
|
||||
index = BrinIndex(fields=['title'], name='test_title_brin')
|
||||
path, args, kwargs = index.deconstruct()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue