diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-03-30 21:20:20 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-03-30 21:20:20 -0400 |
commit | e16ede8cae00fd5cbbd5fb33d63c14df0153c2bc (patch) | |
tree | 3116fa46093c735c59982600489b6d2a80c112fe /lib/sqlalchemy/sql/operators.py | |
parent | efd3c311e0c62ae976733cf97e495a3c8ca76906 (diff) | |
download | sqlalchemy-e16ede8cae00fd5cbbd5fb33d63c14df0153c2bc.tar.gz |
- Added new flag :paramref:`.expression.between.symmetric`, when set to True
renders "BETWEEN SYMMETRIC". Also added a new negation operator
"notbetween_op", which now allows an expression like ``~col.between(x, y)``
to render as "col NOT BETWEEN x AND y", rather than a parentheiszed NOT
string. fixes #2990
Diffstat (limited to 'lib/sqlalchemy/sql/operators.py')
-rw-r--r-- | lib/sqlalchemy/sql/operators.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/sqlalchemy/sql/operators.py b/lib/sqlalchemy/sql/operators.py index 91301c78c..bafe00979 100644 --- a/lib/sqlalchemy/sql/operators.py +++ b/lib/sqlalchemy/sql/operators.py @@ -584,10 +584,12 @@ class ColumnOperators(Operators): """ return self.reverse_operate(div, other) - def between(self, cleft, cright): + def between(self, cleft, cright, symmetric=False): """Produce a :func:`~.expression.between` clause against - the parent object, given the lower and upper range.""" - return self.operate(between_op, cleft, cright) + the parent object, given the lower and upper range. + + """ + return self.operate(between_op, cleft, cright, symmetric=symmetric) def distinct(self): """Produce a :func:`~.expression.distinct` clause against the @@ -707,8 +709,11 @@ def notilike_op(a, b, escape=None): return a.notilike(b, escape=escape) -def between_op(a, b, c): - return a.between(b, c) +def between_op(a, b, c, symmetric=False): + return a.between(b, c, symmetric=symmetric) + +def notbetween_op(a, b, c, symmetric=False): + return a.notbetween(b, c, symmetric=symmetric) def in_op(a, b): @@ -837,6 +842,7 @@ _PRECEDENCE = { le: 5, between_op: 5, + notbetween_op: 5, distinct_op: 5, inv: 5, istrue: 5, |