Skip to content

Commit 7d4d498

Browse files
committed
fix tests
1 parent 61b2120 commit 7d4d498

File tree

6 files changed

+20
-20
lines changed

6 files changed

+20
-20
lines changed

mindsdb_sql_parser/ast/select/identifier.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,10 @@ def get_reserved_words() -> set[str]:
4545

4646

4747
class Identifier(ASTNode):
48-
def __init__(self, path_str=None, parts=None, is_outer=False, with_rollup=False, *args, **kwargs):
48+
def __init__(
49+
self, path_str=None, parts=None, is_outer=False, with_rollup=False,
50+
is_quoted: list[bool] | None = None, *args, **kwargs
51+
):
4952
super().__init__(*args, **kwargs)
5053
assert path_str or parts, "Either path_str or parts must be provided for an Identifier"
5154
assert not (path_str and parts), "Provide either path_str or parts, but not both"
@@ -54,7 +57,7 @@ def __init__(self, path_str=None, parts=None, is_outer=False, with_rollup=False,
5457

5558
if path_str and not parts:
5659
parts, is_quoted = path_str_to_parts(path_str)
57-
else:
60+
elif is_quoted is None:
5861
is_quoted = [False] * len(parts)
5962
assert isinstance(parts, list)
6063
self.parts = parts
@@ -73,8 +76,7 @@ def append(self, other: "Identifier") -> None:
7376
self.parts += other.parts
7477
self.is_quoted += other.is_quoted
7578

76-
def parts_to_str(self):
77-
out_parts = []
79+
def iter_parts_str(self):
7880
reserved_words = get_reserved_words()
7981
for part, is_quoted in zip(self.parts, self.is_quoted):
8082
if isinstance(part, Star):
@@ -86,9 +88,10 @@ def parts_to_str(self):
8688
or part.upper() in reserved_words
8789
):
8890
part = f'`{part}`'
91+
yield part
8992

90-
out_parts.append(part)
91-
return '.'.join(out_parts)
93+
def parts_to_str(self):
94+
return '.'.join(self.iter_parts_str())
9295

9396
def to_tree(self, *args, level=0, **kwargs):
9497
alias_str = f', alias={self.alias.to_tree()}' if self.alias else ''

mindsdb_sql_parser/ast/show.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ def get_string(self, *args, **kwargs):
5353
from_str = ''
5454
if self.from_table:
5555
ar = [
56-
f'FROM {i}'
57-
for i in self.from_table.parts
56+
f'FROM {part}'
57+
for part in self.from_table.iter_parts_str()
5858
]
5959
ar.reverse()
6060
from_str = ' ' + ' '.join(ar)

tests/test_base_sql/test_select_structure.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1213,10 +1213,10 @@ def test_double_quote_render_skip(self):
12131213
sql = 'select `KEY_ID`, `a`.* from `Table1` where `id`=2'
12141214

12151215
expected_ast = Select(
1216-
targets=[Identifier('KEY_ID'), Identifier(parts=['a', Star()])],
1217-
from_table=Identifier(parts=['Table1']),
1216+
targets=[Identifier('`KEY_ID`'), Identifier(parts=['a', Star()], is_quoted=[True, False])],
1217+
from_table=Identifier(parts=['Table1'], is_quoted=[True]),
12181218
where=BinaryOperation(op='=', args=[
1219-
Identifier('id'), Constant(2)
1219+
Identifier('`id`'), Constant(2)
12201220
])
12211221
)
12221222

tests/test_base_sql/test_show.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,12 @@ def test_from_where(self):
8888
assert ast.to_tree() == expected_ast.to_tree()
8989

9090
def test_full_columns(self):
91-
sql = "SHOW FULL COLUMNS FROM `concrete` FROM `files`"
91+
sql = "SHOW FULL COLUMNS FROM `ccc` FROM `fff`"
9292
ast = parse_sql(sql)
9393
expected_ast = Show(
9494
category='COLUMNS',
9595
modes=['FULL'],
96-
from_table=Identifier('`files`.`concrete`')
96+
from_table=Identifier('`fff`.`ccc`')
9797
)
9898

9999
assert str(ast) == str(expected_ast)

tests/test_mysql/test_mysql_parser.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,23 +42,23 @@ def test_select_varialbe_complex(self):
4242
assert str(ast) == str(expected_ast)
4343

4444
def test_show_index(self):
45-
sql = "SHOW INDEX FROM predictors"
45+
sql = "SHOW INDEX FROM `predictors`"
4646
ast = parse_sql(sql)
4747
expected_ast = Show(
4848
category='INDEX',
49-
from_table=Identifier('predictors')
49+
from_table=Identifier('`predictors`')
5050
)
5151

5252
assert str(ast).lower() == sql.lower()
5353
assert str(ast) == str(expected_ast)
5454
assert ast.to_tree() == expected_ast.to_tree()
5555

5656
def test_show_index_from_db(self):
57-
sql = "SHOW INDEX FROM predictors FROM db"
57+
sql = "SHOW INDEX FROM `predictors` FROM db"
5858
ast = parse_sql(sql)
5959
expected_ast = Show(
6060
category='INDEX',
61-
from_table=Identifier('db.predictors'),
61+
from_table=Identifier('db.`predictors`'),
6262
)
6363

6464
# assert str(ast).lower() == sql.lower()

tests/test_standard_render.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,4 @@ def test_standard_render():
8282

8383
# inject function
8484
module.parse_sql = parse_sql2
85-
8685
check_module(module)
87-
88-

0 commit comments

Comments
 (0)