diff options
| author | Andi Albrecht <albrecht.andi@gmail.com> | 2013-04-05 05:46:41 +0200 |
|---|---|---|
| committer | Andi Albrecht <albrecht.andi@gmail.com> | 2013-04-05 05:46:41 +0200 |
| commit | 341143e294c842d700dfd3c6a6224c05d8b8b8d6 (patch) | |
| tree | f58da4333925db8f320ffae40d219a758786a234 /sqlparse/engine | |
| parent | bd530692165729051a4caf28934a6e9ad32fbc3e (diff) | |
| download | sqlparse-341143e294c842d700dfd3c6a6224c05d8b8b8d6.tar.gz | |
Add order criterion to identifier in ORDER BY clause (fixes #89).
Diffstat (limited to 'sqlparse/engine')
| -rw-r--r-- | sqlparse/engine/grouping.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sqlparse/engine/grouping.py b/sqlparse/engine/grouping.py index 0f39dd2..d03e483 100644 --- a/sqlparse/engine/grouping.py +++ b/sqlparse/engine/grouping.py @@ -332,6 +332,20 @@ def group_functions(tlist): token = tlist.token_next_by_type(idx, T.Name) +def group_order(tlist): + idx = 0 + token = tlist.token_next_by_type(idx, T.Keyword.Order) + while token: + prev = tlist.token_prev(token) + if isinstance(prev, sql.Identifier): + ido = tlist.group_tokens(sql.Identifier, + tlist.tokens_between(prev, token)) + idx = tlist.token_index(ido) + 1 + else: + idx = tlist.token_index(token) + 1 + token = tlist.token_next_by_type(idx, T.Keyword.Order) + + def group(tlist): for func in [ group_comments, @@ -340,6 +354,7 @@ def group(tlist): group_where, group_case, group_identifier, + group_order, group_typecasts, group_as, group_aliased, |
