mirror of
https://github.com/MariaDB/server.git
synced 2026-05-01 12:45:41 +02:00
Fixed bug #18237.
The code in opt_sum_query that prevented the COUNT/MIN/MAX optimization from being applied to outer joins was not adjusted after introducing nested joins. As a result if an outer join contained a reference to a view as an inner table the code of opt_sum_query missed the presence of an on expressions and erroneously applied the mentioned optimization. mysql-test/r/view.result: Added a test case for bug #18237. mysql-test/t/view.test: Added a test case for bug #18237.
This commit is contained in:
parent
8eb2b474b3
commit
e77888f530
3 changed files with 45 additions and 1 deletions
|
|
@ -96,8 +96,14 @@ int opt_sum_query(TABLE_LIST *tables, List<Item> &all_fields,COND *conds)
|
|||
*/
|
||||
for (TABLE_LIST *tl= tables; tl; tl= tl->next_leaf)
|
||||
{
|
||||
TABLE_LIST *embedded;
|
||||
for (embedded= tl ; embedded; embedded= embedded->embedding)
|
||||
{
|
||||
if (embedded->on_expr)
|
||||
break;
|
||||
}
|
||||
if (embedded)
|
||||
/* Don't replace expression on a table that is part of an outer join */
|
||||
if (tl->on_expr)
|
||||
{
|
||||
outer_tables|= tl->table->map;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue