diff options
| -rw-r--r-- | django/contrib/postgres/constraints.py | 2 | ||||
| -rw-r--r-- | tests/postgres_tests/test_constraints.py | 20 |
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()) |
