• Igor Babaev's avatar
    MDEV-24919 Crash with subselect formed by table value constructor and · 0f81ca6a
    Igor Babaev authored
               used in set function
    
    If a subselect is formed by a table value constructor (TVC) then the
    following transformation is applied at the prepare stage:
      VALUES (v1), ... (vn) => SELECT * FROM (VALUES (v1), ... (vn)) tvc_x.
    The transformation is performed by the function wrap_tvc() that resets
    THD::LEX::current select to the top level select of the result of the
    transformation. After the call of wrap_tvc() in the function
    Item_subselect::wrap_tvc_into_select() the field THD::LEX::current must be
    reset to the same select as before the call. It was not done. As a result
    if the subselect formed by a TVC was an argument of a set function then
    an assertion was hit in the function Item_sum::check_sum_func().
    
    Approved by Oleksandr Byelkin <sanja@mariadb.com>
    0f81ca6a
sql_tvc.cc 30.5 KB