summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorali-tny <aliteeney@googlemail.com>2020-09-26 16:29:40 +1000
committerAndi Albrecht <albrecht.andi@gmail.com>2020-09-30 07:21:06 +0200
commit4c570778b2e1c06e8bfcb3c48ae5baeff908fcdf (patch)
tree20daf054a67724accffe31f4c350f43c776b06ae /tests
parent1499cffcd7c4d635b4297b44d48fb4fe94cf988e (diff)
downloadsqlparse-4c570778b2e1c06e8bfcb3c48ae5baeff908fcdf.tar.gz
Add postgres WINDOW keyword
Postgres allows statements of the form: ```sql SELECT col_1, col_2, SUM(col_3) OVER w FROM x WINDOW w AS (PARTITION BY col_1 ORDER BY col_2) ``` where the window is defined once at the end of the query (see https://www.postgresql.org/docs/9.5/sql-select.html). This change adds WINDOW as a postgres keyword, preventing queries like the above being misparsed, with table name and WINDOW being grouped into an single identifier <Identifier 'x WINDOW'>.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_tokenize.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/tests/test_tokenize.py b/tests/test_tokenize.py
index 0d7f878..af0ba16 100644
--- a/tests/test_tokenize.py
+++ b/tests/test_tokenize.py
@@ -202,6 +202,12 @@ def test_parse_order_by():
assert p.tokens[0].ttype is T.Keyword
+def test_parse_window_as():
+ p = sqlparse.parse('WINDOW w AS')[0]
+ assert len(p.tokens) == 5
+ assert p.tokens[0].ttype is T.Keyword
+
+
@pytest.mark.parametrize('s', (
"LIKE", "ILIKE", "NOT LIKE", "NOT ILIKE",
"NOT LIKE", "NOT ILIKE",