Skip to content

Commit c27a604

Browse files
committed
Returning clause ends where clause
1 parent 0e2636d commit c27a604

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

sqlparse/sql.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,7 @@ class Where(TokenList):
529529
"""A WHERE clause."""
530530
M_OPEN = T.Keyword, 'WHERE'
531531
M_CLOSE = T.Keyword, ('ORDER', 'GROUP', 'LIMIT', 'UNION', 'EXCEPT',
532-
'HAVING')
532+
'HAVING', 'RETURNING')
533533

534534

535535
class Case(TokenList):

tests/test_grouping.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,14 @@ def test_grouping_where():
188188
assert isinstance(p.tokens[-1].tokens[0].tokens[-2], sql.Where)
189189

190190

191+
def test_returning_kw_ends_where_clause():
192+
s = 'delete from foo where x > y returning z'
193+
p = sqlparse.parse(s)[0]
194+
assert isinstance(p.tokens[6], sql.Where)
195+
assert p.tokens[7].ttype == T.Keyword
196+
assert p.tokens[7].value == 'returning'
197+
198+
191199
def test_grouping_typecast():
192200
s = 'select foo::integer from bar'
193201
p = sqlparse.parse(s)[0]

0 commit comments

Comments
 (0)