• Michael Widenius's avatar
    Fixed two bugs with CREATE OR REPLACE and LOCK TABLES: · 9c79227c
    Michael Widenius authored
    MDEV-6560 Assertion `! is_set() ' failed in Diagnostics_area::set_ok_status on killing CREATE OR REPLACE
    MDEV-6525 Assertion `table->pos_in_locked _tables == __null || table->pos_in_locked_tables->table = table' failed in mark_used_tables_as_free_for_reuse, locking problems and binlogging problems on CREATE OR REPLACE under lock.
     
    
    mysql-test/r/create_or_replace.result:
      Added test for MDEV-6560
    mysql-test/t/create_or_replace.test:
      Added test for MDEV-6560
    mysql-test/valgrind.supp:
      Added suppression for OpenSuse 12.3
    sql/sql_base.cc:
      More DBUG
    sql/sql_class.cc:
      Changed that thd_sqlcom_can_generate_row_events() does not report that CREATE OR REPLACE is generating row events.
      This is safe as this function is only used by InnoDB/XtraDB to check if a query is generating row events as part of another transaction. As CREATE is always run as it's own transaction, this isn't a problem.
      This fixed MDEV-6525.
    sql/sql_table.cc:
      Remember if reopen_tables() generates an error (which can only happen in case of KILL).
      This fixed MDEV-6560
    9c79227c
sql_base.cc 311 KB