Skip to content

Commit c225895

Browse files
committed
tests
1 parent 29ab045 commit c225895

2 files changed

Lines changed: 34 additions & 1 deletion

File tree

mindsdb_sql/planner/query_prepare.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,8 @@ def find_predictors(node, is_table, **kwargs):
348348

349349
elif column.name is not None:
350350
# is Identifier
351+
if isinstance(column.name, ast.Star):
352+
continue
351353
col_name = column.name.upper()
352354
if column.table is not None:
353355
table = column.table

tests/test_planner/test_join_tables.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,4 +489,35 @@ def test_join_one_integration(self):
489489
)
490490
plan = plan_query(query, integrations=['int'], default_namespace='int')
491491

492-
assert plan.steps == expected_plan.steps
492+
assert plan.steps == expected_plan.steps
493+
494+
def test_cte(self):
495+
query = parse_sql('''
496+
with t1 as (
497+
select * from int1.tbl1
498+
)
499+
select t1.id, t2.* from t1
500+
join int2.tbl2 t2 on t1.id>t2.id
501+
''')
502+
503+
subquery = copy.deepcopy(query)
504+
subquery.from_table = None
505+
506+
plan = plan_query(query, integrations=['int1', 'int2'], default_namespace='mindsdb')
507+
508+
expected_plan = QueryPlan(
509+
steps=[
510+
FetchDataframeStep(integration='int1', query=parse_sql('select * from tbl1')),
511+
SubSelectStep(dataframe=Result(0), query=Select(targets=[Star()]), table_name='t1'),
512+
FetchDataframeStep(integration='int2', query=parse_sql('select * from tbl2 as t2')),
513+
JoinStep(left=Result(1),
514+
right=Result(2),
515+
query=Join(left=Identifier('tab1'),
516+
right=Identifier('tab2'),
517+
condition=BinaryOperation(op='>', args=[Identifier('t1.id'), Identifier('t2.id')]),
518+
join_type=JoinType.JOIN)),
519+
QueryStep(parse_sql('SELECT t1.`id`, t2.*'), from_table=Result(3)),
520+
]
521+
)
522+
523+
assert plan.steps == expected_plan.steps

0 commit comments

Comments
 (0)