Skip to content

Commit b0d5783

Browse files
committed
fix parserutils bug
-s
1 parent 4804c7f commit b0d5783

8 files changed

Lines changed: 190 additions & 122 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "flit_core.buildapi"
44

55
[project]
66
name = "sqlgpt-parser"
7-
version = "0.0.1a4"
7+
version = "0.0.1a5"
88
authors = [
99
{ name="luliwjc", email="[email protected]" },
1010
{ name="Ifffff", email="[email protected]" },

sqlgpt_parser/format/formatter.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -424,19 +424,21 @@ def visit_list_expression(self, node, unmangle_names):
424424
def visit_window_func(self, node, unmangle_names):
425425
args = ", ".join([self.process(arg, unmangle_names) for arg in node.func_args])
426426
ignore_null = f" {node.ignore_null} NULLS" if node.ignore_null else ""
427-
window_spec = " OVER (" + self.process(node.window_spec, unmangle_names) + ")"
427+
window_spec = " OVER " + self.process(node.window_spec, unmangle_names)
428428
return f"{node.func_name.upper()}({args}){ignore_null}{window_spec}"
429429

430430
def visit_window_spec(self, node, unmangle_names):
431+
if node.window_name is not None:
432+
return node.window_name
433+
431434
parts = []
432435
if node.partition_by:
433436
self.process(node.partition_by, unmangle_names)
434437
if node.order_by:
435438
parts.append("ORDER BY " + format_sort_items(node.order_by, unmangle_names))
436439
if node.frame_clause:
437440
parts.append(self.process(node.frame_clause, unmangle_names))
438-
439-
return ' '.join(parts)
441+
return '(' + ' '.join(parts) + ')'
440442

441443
def visit_partition_by_clause(self, node, unmangle_names):
442444
return "PARTITION BY " + self._join_expressions(node.items, unmangle_names)

sqlgpt_parser/parser/mysql_parser/parser.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1206,7 +1206,7 @@ def p_alias_opt(p):
12061206
if p.slice[1].type == "alias":
12071207
p[0] = p[1]
12081208
else:
1209-
p[0] = ()
1209+
p[0] = []
12101210

12111211

12121212
def p_alias(p):
@@ -1215,9 +1215,9 @@ def p_alias(p):
12151215
| AS string_lit
12161216
| string_lit"""
12171217
if len(p) == 3:
1218-
p[0] = (p[1], p[2])
1218+
p[0] = [p[1], p[2]]
12191219
else:
1220-
p[0] = p[1]
1220+
p[0] = [p[1]]
12211221

12221222

12231223
def p_expression(p):

sqlgpt_parser/parser/oceanbase_parser/parser.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1203,7 +1203,7 @@ def p_alias_opt(p):
12031203
if p.slice[1].type == "alias":
12041204
p[0] = p[1]
12051205
else:
1206-
p[0] = ()
1206+
p[0] = []
12071207

12081208

12091209
def p_alias(p):
@@ -1212,9 +1212,9 @@ def p_alias(p):
12121212
| AS string_lit
12131213
| string_lit"""
12141214
if len(p) == 3:
1215-
p[0] = (p[1], p[2])
1215+
p[0] = [p[1], p[2]]
12161216
else:
1217-
p[0] = p[1]
1217+
p[0] = [p[1]]
12181218

12191219

12201220
def p_expression(p):

sqlgpt_parser/parser/odps_parser/parser.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1205,7 +1205,7 @@ def p_alias_opt(p):
12051205
if p.slice[1].type == "alias":
12061206
p[0] = p[1]
12071207
else:
1208-
p[0] = ()
1208+
p[0] = []
12091209

12101210

12111211
def p_alias(p):
@@ -1214,7 +1214,7 @@ def p_alias(p):
12141214
| AS string_lit
12151215
| string_lit"""
12161216
if len(p) == 3:
1217-
p[0] = (p[1], p[2])
1217+
p[0] = [p[1], p[2]]
12181218
else:
12191219
p[0] = p[1]
12201220

0 commit comments

Comments
 (0)