summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/operators.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2018-07-09 15:47:14 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2018-07-09 21:48:39 -0400
commitf7076ecf361f276f5ddb81f80931e5c88215e8ca (patch)
treef292ec5013c94defbaa4c05cc957cb751e28a412 /lib/sqlalchemy/sql/operators.py
parent9d743870722fc6757404674bd821382798a1ba43 (diff)
downloadsqlalchemy-f7076ecf361f276f5ddb81f80931e5c88215e8ca.tar.gz
support functions "as binary comparison"
Added new feature :meth:`.FunctionElement.as_comparison` which allows a SQL function to act as a binary comparison operation that can work within the ORM. Change-Id: I07018e2065d09775c0406cabdd35fc38cc0da699 Fixes: #3831
Diffstat (limited to 'lib/sqlalchemy/sql/operators.py')
-rw-r--r--lib/sqlalchemy/sql/operators.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/sqlalchemy/sql/operators.py b/lib/sqlalchemy/sql/operators.py
index 11d195455..bda9a0c86 100644
--- a/lib/sqlalchemy/sql/operators.py
+++ b/lib/sqlalchemy/sql/operators.py
@@ -1079,6 +1079,10 @@ def from_():
raise NotImplementedError()
+def function_as_comparison_op():
+ raise NotImplementedError()
+
+
def as_():
raise NotImplementedError()
@@ -1260,7 +1264,8 @@ def json_path_getitem_op(a, b):
_commutative = {eq, ne, add, mul}
_comparison = {eq, ne, lt, gt, ge, le, between_op, like_op, is_,
- isnot, is_distinct_from, isnot_distinct_from}
+ isnot, is_distinct_from, isnot_distinct_from,
+ function_as_comparison_op}
def is_comparison(op):
@@ -1314,6 +1319,7 @@ _largest = util.symbol('_largest', canonical=100)
_PRECEDENCE = {
from_: 15,
+ function_as_comparison_op: 15,
any_op: 15,
all_op: 15,
getitem: 15,