summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/operators.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2012-08-27 19:40:12 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2012-08-27 19:40:12 -0400
commit7d6c1c4a95596d5d83d9187d823f88fdc46f35b6 (patch)
tree1899e61ed65a2e5e44698bf06a3342aa1e89b422 /lib/sqlalchemy/sql/operators.py
parent3a2d617f7f4232ae6f0e256e6b4327e48118ffbf (diff)
downloadsqlalchemy-7d6c1c4a95596d5d83d9187d823f88fdc46f35b6.tar.gz
- [feature] Reworked the startswith(), endswith(),
contains() operators to do a better job with negation (NOT LIKE), and also to assemble them at compilation time so that their rendered SQL can be altered, such as in the case for Firebird STARTING WITH [ticket:2470] - [feature] firebird - The "startswith()" operator renders as "STARTING WITH", "~startswith()" renders as "NOT STARTING WITH", using FB's more efficient operator. [ticket:2470]
Diffstat (limited to 'lib/sqlalchemy/sql/operators.py')
-rw-r--r--lib/sqlalchemy/sql/operators.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/sqlalchemy/sql/operators.py b/lib/sqlalchemy/sql/operators.py
index f1607c884..ba33d016a 100644
--- a/lib/sqlalchemy/sql/operators.py
+++ b/lib/sqlalchemy/sql/operators.py
@@ -558,12 +558,21 @@ def distinct_op(a):
def startswith_op(a, b, escape=None):
return a.startswith(b, escape=escape)
+def notstartswith_op(a, b, escape=None):
+ return ~a.startswith(b, escape=escape)
+
def endswith_op(a, b, escape=None):
return a.endswith(b, escape=escape)
+def notendswith_op(a, b, escape=None):
+ return ~a.endswith(b, escape=escape)
+
def contains_op(a, b, escape=None):
return a.contains(b, escape=escape)
+def notcontains_op(a, b, escape=None):
+ return ~a.contains(b, escape=escape)
+
def match_op(a, b):
return a.match(b)