summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/operators.py
diff options
context:
space:
mode:
authorJohn Passaro <john.a.passaro@gmail.com>2016-09-19 15:43:46 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2016-09-19 17:17:07 -0400
commit2c4119d1eb9e231676bf4facedf46849970b8253 (patch)
treeafadbb6920ecf219965713dc27b0202e83ec3989 /lib/sqlalchemy/sql/operators.py
parent881369b949cff44e0017fdc28d9722ef3c26171a (diff)
downloadsqlalchemy-2c4119d1eb9e231676bf4facedf46849970b8253.tar.gz
Exclude eq and ne from associative operators
The "eq" and "ne" operators are no longer part of the list of "associative" operators, while they remain considered to be "commutative". This allows an expression like ``(x == y) == z`` to be maintained at the SQL level with parenthesis. Pull request courtesy John Passaro. Fixes: #3799 Change-Id: I3759d8987b35649d7418b6524316c9e70c857e68 Pull-request: https://github.com/zzzeek/sqlalchemy/pull/308
Diffstat (limited to 'lib/sqlalchemy/sql/operators.py')
-rw-r--r--lib/sqlalchemy/sql/operators.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/sqlalchemy/sql/operators.py b/lib/sqlalchemy/sql/operators.py
index bf470710d..142606680 100644
--- a/lib/sqlalchemy/sql/operators.py
+++ b/lib/sqlalchemy/sql/operators.py
@@ -917,7 +917,7 @@ def mirror(op):
return _mirror.get(op, op)
-_associative = _commutative.union([concat_op, and_, or_])
+_associative = _commutative.union([concat_op, and_, or_]).difference([eq, ne])
_natural_self_precedent = _associative.union([
getitem, json_getitem_op, json_path_getitem_op])