mirror of
https://github.com/MariaDB/server.git
synced 2025-09-02 09:41:40 +03:00
Bug#8670
Rework to resolve ambigious grammer: conflict in join expression handling of parentheses for nested joins and derived tables. Tests included of failing statements Optimize item construction for AND/OR logical expressions mysql-test/r/select.result: Bug#8670 Tests for failing expressions mysql-test/t/select.test: Bug#8670 Tests for failing expressions sql/sql_parse.cc: Bug#8670 method st_select_lex::end_nested_join() returns NULL when there are no elements in the join. sql/sql_yacc.yy: Optimize construction for Item_cond_or and Item_cond_and Reduces object count in case of complex expressions. Bug#8670 Solve ambigious grammar. Fix handling of parentheses in join expressions to correct handling of nested joins and derived tables.
This commit is contained in:
@@ -5852,6 +5852,7 @@ TABLE_LIST *st_select_lex::end_nested_join(THD *thd)
|
||||
{
|
||||
TABLE_LIST *ptr;
|
||||
DBUG_ENTER("end_nested_join");
|
||||
DBUG_ASSERT(embedding);
|
||||
ptr= embedding;
|
||||
join_list= ptr->join_list;
|
||||
embedding= ptr->embedding;
|
||||
@@ -5865,6 +5866,12 @@ TABLE_LIST *st_select_lex::end_nested_join(THD *thd)
|
||||
join_list->push_front(embedded);
|
||||
ptr= embedded;
|
||||
}
|
||||
else
|
||||
if (nested_join->join_list.elements == 0)
|
||||
{
|
||||
join_list->pop();
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
DBUG_RETURN(ptr);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user