From: Lele Gaifax Date: Thu, 10 Nov 2022 07:24:52 +0000 (+0100) Subject: Handle corner cases discovered by more comprehensive tests X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1f930058f9b94d714470ee350baa41d7a6f44b08;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Handle corner cases discovered by more comprehensive tests --- diff --git a/lib/sqlalchemy/dialects/postgresql/ranges.py b/lib/sqlalchemy/dialects/postgresql/ranges.py index d12b4dffe6..f5bb72da34 100644 --- a/lib/sqlalchemy/dialects/postgresql/ranges.py +++ b/lib/sqlalchemy/dialects/postgresql/ranges.py @@ -230,6 +230,8 @@ class Range(Generic[_T]): if self.empty and other.empty: return True + elif self.empty != other.empty: + return False slower = self.lower slower_b = self.bounds[0] @@ -406,6 +408,16 @@ class Range(Generic[_T]): else: return value1 == value2 - step elif res == 0: + # Cover cases like [0,0] -|- [1,] and [0,2) -|- (1,3] + if ( + bound1 == "]" + and bound2 == "[" + or bound1 == ")" + and bound2 == "(" + ): + step = self._get_discrete_step() + if step is not None: + return True return ( bound1 == ")" and bound2 == "["