]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Handle corner cases discovered by more comprehensive tests
authorLele Gaifax <lele@metapensiero.it>
Thu, 10 Nov 2022 07:24:52 +0000 (08:24 +0100)
committerLele Gaifax <lele@metapensiero.it>
Thu, 10 Nov 2022 07:24:52 +0000 (08:24 +0100)
lib/sqlalchemy/dialects/postgresql/ranges.py

index d12b4dffe62a92d239bf69ba8d67b6287c6f6f54..f5bb72da34e1acacf1bb2f1584ad96569ff74305 100644 (file)
@@ -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 == "["