]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
rework test query to work on MSSQL
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 13 Oct 2022 12:47:37 +0000 (08:47 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 13 Oct 2022 12:47:37 +0000 (08:47 -0400)
Change-Id: I14ea04085703736daf78fe0cf307925c192c5e0e

test/orm/test_dynamic.py

index 505594e7c66079a81670b0ecfa18b721d4bca773..0af61949cd60827b7e8eb9b089380f1b3e0b9370 100644 (file)
@@ -1465,9 +1465,16 @@ class DynamicUOWTest(
         sess.add(u)
         sess.commit()
 
+        from sqlalchemy import case
+
+        # the byzantine syntax here is so the query works on MSSQL
         isnull_stmt = select(
-            addresses.c.user_id == None, func.count("*")
-        ).group_by(addresses.c.user_id == None)
+            case((addresses.c.user_id == None, True), else_=False),
+            func.count("*"),
+        ).group_by(
+            case((addresses.c.user_id == None, True), else_=False),
+            addresses.c.user_id,
+        )
 
         eq_(
             {isnull: count for isnull, count in sess.execute(isnull_stmt)},