diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-05-14 22:25:36 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-05-14 22:25:36 +0000 |
commit | ae4b954b1a6baf5a58c0e00e382196b581a7f06a (patch) | |
tree | 562d969dcef857594a62e3730e1305aaa284e3b0 /lib/sqlalchemy/sql_util.py | |
parent | 3de128138a896bc7373aa2684c920271c4781b7d (diff) | |
download | sqlalchemy-ae4b954b1a6baf5a58c0e00e382196b581a7f06a.tar.gz |
- parenthesis are applied to clauses via a new _Grouping construct.
uses operator precedence to more intelligently apply parenthesis
to clauses, provides cleaner nesting of clauses (doesnt mutate
clauses placed in other clauses, i.e. no 'parens' flag)
- added 'modifier' keyword, works like func.<foo> except does not
add parenthesis. e.g. select([modifier.DISTINCT(...)]) etc.
Diffstat (limited to 'lib/sqlalchemy/sql_util.py')
-rw-r--r-- | lib/sqlalchemy/sql_util.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/sqlalchemy/sql_util.py b/lib/sqlalchemy/sql_util.py index dcd19f891..1f5ac1681 100644 --- a/lib/sqlalchemy/sql_util.py +++ b/lib/sqlalchemy/sql_util.py @@ -133,16 +133,23 @@ class AbstractClauseProcessor(sql.NoColumnVisitor): list_[i] = elem else: self.traverse(list_[i]) - - def visit_compound(self, compound): - self.visit_clauselist(compound) - + + def visit_grouping(self, grouping): + elem = self.convert_element(grouping.elem) + if elem is not None: + grouping.elem = elem + def visit_clauselist(self, clist): for i in range(0, len(clist.clauses)): n = self.convert_element(clist.clauses[i]) if n is not None: clist.clauses[i] = n - + + def visit_unary(self, unary): + elem = self.convert_element(unary.element) + if elem is not None: + unary.element = elem + def visit_binary(self, binary): elem = self.convert_element(binary.left) if elem is not None: |