• Igor Babaev's avatar
    This is the consolidated patch for mdev-8646: · 2cfc450b
    Igor Babaev authored
    "Re-factor the code for post-join operations".
    
    The patch mainly contains the code ported from mysql-5.6 and
    created for two essential architectural changes:
    1. WL#5558: Resolve ORDER BY execution method at the optimization stage
    2. WL#6071: Inline tmp tables into the nested loops algorithm
    
    The first task was implemented for mysql-5.6 by Ole John Aske.
    It allows to make all decisions on ORDER BY operation at the optimization
    stage.
    
    The second task implemented for mysql-5.6 by Evgeny Potemkin adds JOIN_TAB
    nodes for post-join operations that require temporary tables. It allows
    to execute these operations within the nested loops algorithm that used to
    be used before this task only for join queries. Besides these task moves
    all planning on the execution of these operations from the execution phase
    to the optimization phase.
    
    Some other re-factoring changes of mysql-5.6 were pulled in, mainly because
    it was easier to pull them in than roll them back. In particular all
    changes concerning Ref_ptr_array were incorporated.
    
    The port required some changes in the MariaDB code that concerned the
    functionality of EXPLAIN and ANALYZE. This was done mainly by Sergey
    Petrunia.
    2cfc450b
limit.result 2.81 KB