• Sergei Petrunia's avatar
    MDEV-21102: Server crashes in JOIN_CACHE::write_record_data upon EXPLAIN with subqueries · 8cc36fb7
    Sergei Petrunia authored
    JOIN_CACHE has a light-weight initialization mode that's targeted at
    EXPLAINs. In that mode, JOIN_CACHE objects are not able to execute.
    
    Light-weight mode was used whenever the statement was an EXPLAIN. However
    the EXPLAIN can execute subqueries, provided they enumerate less than
    @@expensive_subquery_limit rows.
    
    Make sure we use light-weight initialization mode only when the select is
    more expensive @@expensive_subquery_limit.
    
    Also add an assert into JOIN_CACHE::put_record() which prevents its use
    if it was initialized for EXPLAIN only.
    8cc36fb7
sql_join_cache.cc 146 KB