diff options
| author | Andi Albrecht <albrecht.andi@gmail.com> | 2014-12-21 17:12:37 +0100 |
|---|---|---|
| committer | Andi Albrecht <albrecht.andi@gmail.com> | 2014-12-21 17:12:37 +0100 |
| commit | 3f5ec21ffcd4702fc54b4a769224760ffbc31de9 (patch) | |
| tree | 98c91efa0e7f038e2073f09f9389c7c6ec0aec24 /sqlparse | |
| parent | 1e8a1b7cdb2d07eedfc525290dbfd3ac8e2882b6 (diff) | |
| download | sqlparse-3f5ec21ffcd4702fc54b4a769224760ffbc31de9.tar.gz | |
Improve formatting of HAVING statements.
Diffstat (limited to 'sqlparse')
| -rw-r--r-- | sqlparse/engine/grouping.py | 2 | ||||
| -rw-r--r-- | sqlparse/filters.py | 13 |
2 files changed, 13 insertions, 2 deletions
diff --git a/sqlparse/engine/grouping.py b/sqlparse/engine/grouping.py index ee534e3..a048128 100644 --- a/sqlparse/engine/grouping.py +++ b/sqlparse/engine/grouping.py @@ -301,7 +301,7 @@ def group_where(tlist): if not isinstance(sgroup, sql.Where)] idx = 0 token = tlist.token_next_match(idx, T.Keyword, 'WHERE') - stopwords = ('ORDER', 'GROUP', 'LIMIT', 'UNION', 'EXCEPT') + stopwords = ('ORDER', 'GROUP', 'LIMIT', 'UNION', 'EXCEPT', 'HAVING') while token: tidx = tlist.token_index(token) end = tlist.token_next_match(tidx + 1, T.Keyword, stopwords) diff --git a/sqlparse/filters.py b/sqlparse/filters.py index e576a26..47972e4 100644 --- a/sqlparse/filters.py +++ b/sqlparse/filters.py @@ -316,7 +316,7 @@ class ReindentFilter: def _split_kwds(self, tlist): split_words = ('FROM', 'STRAIGHT_JOIN$', 'JOIN$', 'AND', 'OR', 'GROUP', 'ORDER', 'UNION', 'VALUES', - 'SET', 'BETWEEN', 'EXCEPT') + 'SET', 'BETWEEN', 'EXCEPT', 'HAVING') def _next_token(i): t = tlist.token_next_match(i, T.Keyword, split_words, @@ -374,6 +374,17 @@ class ReindentFilter: self._process_default(tlist) self.indent -= 1 + def _process_having(self, tlist): + token = tlist.token_next_match(0, T.Keyword, 'HAVING') + try: + tlist.insert_before(token, self.nl()) + except ValueError: # issue121, errors in statement + pass + self.indent += 1 + self._process_default(tlist) + self.indent -= 1 + + def _process_parenthesis(self, tlist): first = tlist.token_next(0) indented = False |
