summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sqlparse/engine/grouping.py2
-rw-r--r--tests/test_grouping.py8
2 files changed, 9 insertions, 1 deletions
diff --git a/sqlparse/engine/grouping.py b/sqlparse/engine/grouping.py
index b634128..daaffb0 100644
--- a/sqlparse/engine/grouping.py
+++ b/sqlparse/engine/grouping.py
@@ -164,7 +164,7 @@ def group_as(tlist):
return token.normalized == 'NULL' or not token.is_keyword
def valid_next(token):
- ttypes = T.DML, T.DDL
+ ttypes = T.DML, T.DDL, T.CTE
return not imt(token, t=ttypes) and token is not None
def post(tlist, pidx, tidx, nidx):
diff --git a/tests/test_grouping.py b/tests/test_grouping.py
index 6b5bb68..a147063 100644
--- a/tests/test_grouping.py
+++ b/tests/test_grouping.py
@@ -632,3 +632,11 @@ def test_aliased_literal_without_as():
p = sqlparse.parse('1 foo')[0].tokens
assert len(p) == 1
assert p[0].get_alias() == 'foo'
+
+
+def test_grouping_as_cte():
+ p = sqlparse.parse('foo AS WITH apple AS 1, banana AS 2')[0].tokens
+ assert len(p) > 4
+ assert p[0].get_alias() is None
+ assert p[2].value == 'AS'
+ assert p[4].value == 'WITH'