]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
also clarified the changelog regarding Cls.scalar != 'value'
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 8 Jun 2013 17:39:20 +0000 (13:39 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 8 Jun 2013 17:39:20 +0000 (13:39 -0400)
doc/build/changelog/changelog_09.rst
test/ext/test_associationproxy.py

index 0ae1a23223e55a863def766192a9be49177306a8..10921476b06b52207fe7a44859067b54a6f57f88 100644 (file)
         inverse operation ``Cls.scalar != None`` *would* return ``Cls``
         rows for which ``Cls.associated`` was non-present.
 
-        Additionally, added a special use case where you
+        The case for ``Cls.scalar != 'somevalue'`` is also modified
+        to act more like a direct SQL comparison; only rows for
+        which ``Cls.associated`` is present and ``Associated.scalar``
+        is non-NULL and not equal to ``'somevalue'`` are returned.
+        Previously, this would be a simple ``NOT EXISTS``.
+
+        Also added a special use case where you
         can call ``Cls.scalar.has()`` with no arguments,
         when ``Cls.scalar`` is a column-based value - this returns whether or
         not ``Cls.associated`` has any rows present, regardless of whether
index 724f1b215a15213242d5ef8958ff2f388c7cee15..4cfb58481c133e839ba45ca6c8e3dd609fa4659e 100644 (file)
@@ -1306,6 +1306,17 @@ class ComparatorTest(fixtures.MappedTest, AssertsCompiledSQL):
                 )
         )
 
+    def test_filter_ne_value_nul(self):
+        User = self.classes.User
+        Singular = self.classes.Singular
+
+        self._equivalent(
+            self.session.query(User).filter(User.singular_value != "singular4"),
+            self.session.query(User).filter(
+                        User.singular.has(Singular.value != "singular4"),
+                )
+        )
+
     def test_filter_eq_value_nul(self):
         User = self.classes.User
         Singular = self.classes.Singular
@@ -1377,17 +1388,6 @@ class ComparatorTest(fixtures.MappedTest, AssertsCompiledSQL):
             User.singular_value.has, singular_value="singular4"
         )
 
-    def test_filter_ne_value_nul(self):
-        User = self.classes.User
-        Singular = self.classes.Singular
-
-        self._equivalent(
-            self.session.query(User).filter(User.singular_value != "singular4"),
-            self.session.query(User).filter(
-                        User.singular.has(Singular.value != "singular4"),
-                )
-        )
-
     def test_filter_scalar_contains_fails_nul_nul(self):
         Keyword = self.classes.Keyword