Details
-
Type:
Task
-
Status: Closed
-
Priority:
Major
-
Resolution: Won't Fix
-
Fix Version/s: 10.0.0
-
Component/s: None
-
Labels:None
Description
Subqueries in MariaDB 5.5/5.3 are optimized recursively close to the end of JOIN::optimize through the call to JOIN::optimize_unflattened_subqueries.
This turns out to be a problem for the implementation of MDEV-83 (Cost-based choice for the pushdown of expensive predicates to joined tables), because predicate pushdown is performed by make_join_select() which is called earlier than JOIN::optimize_unflattened_subqueries. If subqueries are optimized after make_join_select(), then their cost is unknown during predicate pushdown, and we cannot estimate if a subquery is expensive or not.
The goal of this task is to move subquery optimization before make_join_select.
Gliffy Diagrams
Attachments
Issue Links
- is part of
-
MDEV-83 Cost-based choice for the pushdown of subqueries to joined tables
-
- Stalled
-
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
Further testing of the implementation revealed that:
In addition, later analysis of DBT3 uncovered that we must pre-optimize all subqueries already before optimizing the outer query. This is reflected in mdev-402.