summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/contrib/postgres/constraints.py2
-rw-r--r--tests/postgres_tests/test_constraints.py20
2 files changed, 21 insertions, 1 deletions
diff --git a/django/contrib/postgres/constraints.py b/django/contrib/postgres/constraints.py
index 90441a51ce..13a90e4b7f 100644
--- a/django/contrib/postgres/constraints.py
+++ b/django/contrib/postgres/constraints.py
@@ -148,7 +148,7 @@ class ExclusionConstraint(CheckPostgresInstalledMixin, BaseConstraint):
if isinstance(other, self.__class__):
return (
self.name == other.name
- and self.index_type == other.index_type
+ and self.index_type.lower() == other.index_type.lower()
and self.expressions == other.expressions
and self.condition == other.condition
and self.deferrable == other.deferrable
diff --git a/tests/postgres_tests/test_constraints.py b/tests/postgres_tests/test_constraints.py
index bcc2b5f97d..331b23980d 100644
--- a/tests/postgres_tests/test_constraints.py
+++ b/tests/postgres_tests/test_constraints.py
@@ -535,6 +535,24 @@ class ExclusionConstraintTests(PostgreSQLTestCase):
],
include=["cancelled"],
)
+ constraint_8 = ExclusionConstraint(
+ index_type="gist",
+ name="exclude_overlapping",
+ expressions=[
+ ("datespan", RangeOperators.OVERLAPS),
+ ("room", RangeOperators.EQUAL),
+ ],
+ include=["cancelled"],
+ )
+ constraint_9 = ExclusionConstraint(
+ index_type="GIST",
+ name="exclude_overlapping",
+ expressions=[
+ ("datespan", RangeOperators.OVERLAPS),
+ ("room", RangeOperators.EQUAL),
+ ],
+ include=["cancelled"],
+ )
constraint_10 = ExclusionConstraint(
name="exclude_overlapping",
expressions=[
@@ -572,6 +590,8 @@ class ExclusionConstraintTests(PostgreSQLTestCase):
self.assertNotEqual(constraint_2, constraint_3)
self.assertNotEqual(constraint_2, constraint_4)
self.assertNotEqual(constraint_2, constraint_7)
+ self.assertEqual(constraint_7, constraint_8)
+ self.assertEqual(constraint_7, constraint_9)
self.assertNotEqual(constraint_4, constraint_5)
self.assertNotEqual(constraint_5, constraint_6)
self.assertNotEqual(constraint_1, object())