• Dmitry Shulga's avatar
    MDEV-21173: Assertion `m_thd == __null' failed in sp_head::~sp_head · f6b09a7c
    Dmitry Shulga authored
    Some SQL statements that involves subqueries or stored routines could
    fail since execution of subqueries or stored routines is not supported
    for theses statements. Unfortunately, parsing error could result in
    abnormal termination by firing the following assert
      DBUG_ASSERT(m_thd == NULL);
    in a destructor of the class sp_head.
    
    The reason of the assert firing is that the method
      sp_head::restore_thd_mem_root()
    is not called on semantic action code to clean up resources allocated
    during parsing. This happens since the macros YYABORT is called instead of
    MYSQL_YYABORT by semantic action code for some grammar rules.
    
    So, to fix the bug YYABORT was just replaced with MYSQL_YYABORT.
    f6b09a7c
sql_yacc.yy 553 KB