summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2020-08-18 19:07:19 +0000
committerGerrit Code Review <gerrit@bbpush.zzzcomputing.com>2020-08-18 19:07:19 +0000
commit0901190bb440580f0664fe3f6310173762b908e0 (patch)
tree21249415569d6f8583a631e46f64ff991b0ec137 /lib/sqlalchemy/sql
parent2ec2db14d018e286e8c8eb629374a3e5c3fa3760 (diff)
parent8bc793c4dbc876722dfaad0ca731938c70b54b6c (diff)
downloadsqlalchemy-0901190bb440580f0664fe3f6310173762b908e0.tar.gz
Merge "Deliver straight BinaryExpr w/ no negate for any() / all()"
Diffstat (limited to 'lib/sqlalchemy/sql')
-rw-r--r--lib/sqlalchemy/sql/sqltypes.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/sqlalchemy/sql/sqltypes.py b/lib/sqlalchemy/sql/sqltypes.py
index 14ddedaec..fd85d6d30 100644
--- a/lib/sqlalchemy/sql/sqltypes.py
+++ b/lib/sqlalchemy/sql/sqltypes.py
@@ -2699,9 +2699,13 @@ class ARRAY(SchemaEventTarget, Indexable, Concatenable, TypeEngine):
"""
elements = util.preloaded.sql_elements
operator = operator if operator else operators.eq
- return operator(
+
+ # send plain BinaryExpression so that negate remains at None,
+ # leading to NOT expr for negation.
+ return elements.BinaryExpression(
coercions.expect(roles.ExpressionElementRole, other),
elements.CollectionAggregate._create_any(self.expr),
+ operator,
)
@util.preload_module("sqlalchemy.sql.elements")
@@ -2735,9 +2739,13 @@ class ARRAY(SchemaEventTarget, Indexable, Concatenable, TypeEngine):
"""
elements = util.preloaded.sql_elements
operator = operator if operator else operators.eq
- return operator(
+
+ # send plain BinaryExpression so that negate remains at None,
+ # leading to NOT expr for negation.
+ return elements.BinaryExpression(
coercions.expect(roles.ExpressionElementRole, other),
elements.CollectionAggregate._create_all(self.expr),
+ operator,
)
comparator_factory = Comparator