mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #34701 -- Added support for NULLS [NOT] DISTINCT on PostgreSQL 15+.
This commit is contained in:
committed by
Mariusz Felisiak
parent
98cfb90182
commit
595a2abb58
@@ -2753,6 +2753,52 @@ class ConstraintsTests(TestCase):
|
||||
|
||||
self.assertEqual(Model.check(databases=self.databases), [])
|
||||
|
||||
def test_unique_constraint_nulls_distinct(self):
|
||||
class Model(models.Model):
|
||||
name = models.CharField(max_length=10)
|
||||
|
||||
class Meta:
|
||||
constraints = [
|
||||
models.UniqueConstraint(
|
||||
fields=["name"],
|
||||
name="name_uq_distinct_null",
|
||||
nulls_distinct=True,
|
||||
),
|
||||
]
|
||||
|
||||
warn = Warning(
|
||||
f"{connection.display_name} does not support unique constraints with nulls "
|
||||
"distinct.",
|
||||
hint=(
|
||||
"A constraint won't be created. Silence this warning if you don't care "
|
||||
"about it."
|
||||
),
|
||||
obj=Model,
|
||||
id="models.W047",
|
||||
)
|
||||
expected = (
|
||||
[]
|
||||
if connection.features.supports_nulls_distinct_unique_constraints
|
||||
else [warn]
|
||||
)
|
||||
self.assertEqual(Model.check(databases=self.databases), expected)
|
||||
|
||||
def test_unique_constraint_nulls_distinct_required_db_features(self):
|
||||
class Model(models.Model):
|
||||
name = models.CharField(max_length=10)
|
||||
|
||||
class Meta:
|
||||
constraints = [
|
||||
models.UniqueConstraint(
|
||||
fields=["name"],
|
||||
name="name_uq_distinct_null",
|
||||
nulls_distinct=True,
|
||||
),
|
||||
]
|
||||
required_db_features = {"supports_nulls_distinct_unique_constraints"}
|
||||
|
||||
self.assertEqual(Model.check(databases=self.databases), [])
|
||||
|
||||
@skipUnlessDBFeature("supports_expression_indexes")
|
||||
def test_func_unique_constraint_expression_custom_lookup(self):
|
||||
class Model(models.Model):
|
||||
|
||||
Reference in New Issue
Block a user