diff options
| -rw-r--r-- | sqlparse/engine/grouping.py | 9 | ||||
| -rw-r--r-- | tests/test_grouping.py | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/sqlparse/engine/grouping.py b/sqlparse/engine/grouping.py index 1487c24..f30d9e1 100644 --- a/sqlparse/engine/grouping.py +++ b/sqlparse/engine/grouping.py @@ -289,10 +289,11 @@ def group_aliased(tlist): while token: next_ = tlist.token_next(tlist.token_index(token)) if next_ is not None and isinstance(next_, clss): - grp = tlist.tokens_between(token, next_)[1:] - token.tokens.extend(grp) - for t in grp: - tlist.tokens.remove(t) + if not next_.value.upper().startswith('VARCHAR'): + grp = tlist.tokens_between(token, next_)[1:] + token.tokens.extend(grp) + for t in grp: + tlist.tokens.remove(t) idx = tlist.token_index(token) + 1 token = tlist.token_next_by_instance(idx, clss) diff --git a/tests/test_grouping.py b/tests/test_grouping.py index 8d84804..c63d8e5 100644 --- a/tests/test_grouping.py +++ b/tests/test_grouping.py @@ -189,6 +189,10 @@ class TestGrouping(TestCaseBase): self.assert_(isinstance(p.tokens[0], sql.Function)) self.assertEqual(len(list(p.tokens[0].get_parameters())), 2) + def test_varchar(self): + p = sqlparse.parse('"text" Varchar(50) NOT NULL')[0] + self.assert_(isinstance(p.tokens[2], sql.Function)) + class TestStatement(TestCaseBase): |
