From 8bc793c4dbc876722dfaad0ca731938c70b54b6c Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 18 Aug 2020 14:17:06 -0400 Subject: Deliver straight BinaryExpr w/ no negate for any() / all() Adjusted the :meth:`_types.ARRAY.Comparator.any` and :meth:`_types.ARRAY.Comparator.all` methods to implement a straight "NOT" operation for negation, rather than negating the comparison operator. Fixes: #5518 Change-Id: I87ee9278c321aafe51a679fcfcbb5fbb11307fda --- test/dialect/postgresql/test_compiler.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'test/dialect/postgresql/test_compiler.py') diff --git a/test/dialect/postgresql/test_compiler.py b/test/dialect/postgresql/test_compiler.py index 20732067d..ce285007f 100644 --- a/test/dialect/postgresql/test_compiler.py +++ b/test/dialect/postgresql/test_compiler.py @@ -1234,6 +1234,27 @@ class CompileTest(fixtures.TestBase, AssertsCompiledSQL): "%(param_1)s = ANY (x)", checkparams={"param_1": 4}, ) + + self.assert_compile( + c.any(5), "%(param_1)s = ANY (x)", checkparams={"param_1": 5}, + ) + + self.assert_compile( + ~c.any(5), + "NOT (%(param_1)s = ANY (x))", + checkparams={"param_1": 5}, + ) + + self.assert_compile( + c.all(5), "%(param_1)s = ALL (x)", checkparams={"param_1": 5}, + ) + + self.assert_compile( + ~c.all(5), + "NOT (%(param_1)s = ALL (x))", + checkparams={"param_1": 5}, + ) + self.assert_compile( c.any(5, operator=operators.ne), "%(param_1)s != ANY (x)", -- cgit v1.2.1