diff options
Diffstat (limited to 'lib/sqlalchemy/sql')
| -rw-r--r-- | lib/sqlalchemy/sql/elements.py | 6 | ||||
| -rw-r--r-- | lib/sqlalchemy/sql/operators.py | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/lib/sqlalchemy/sql/elements.py b/lib/sqlalchemy/sql/elements.py index 735a125d7..6d1174d20 100644 --- a/lib/sqlalchemy/sql/elements.py +++ b/lib/sqlalchemy/sql/elements.py @@ -3808,6 +3808,12 @@ class FunctionFilter(ColumnElement): rows=rows, ) + def self_group(self, against=None): + if operators.is_precedent(operators.filter_op, against): + return Grouping(self) + else: + return self + @util.memoized_property def type(self): return self.func.type diff --git a/lib/sqlalchemy/sql/operators.py b/lib/sqlalchemy/sql/operators.py index b8bbb4525..4a1a0dcd4 100644 --- a/lib/sqlalchemy/sql/operators.py +++ b/lib/sqlalchemy/sql/operators.py @@ -1345,6 +1345,10 @@ def empty_notin_op(a, b): raise NotImplementedError() +def filter_op(a, b): + raise NotImplementedError() + + def concat_op(a, b): return a.concat(b) @@ -1448,6 +1452,7 @@ _PRECEDENCE = { add: 7, sub: 7, concat_op: 6, + filter_op: 6, match_op: 5, notmatch_op: 5, ilike_op: 5, |
