• unknown's avatar
    Bug #49137 Replication failure on SBR/MBR + multi-table DROP TEMPORARY TABLE · be397eb4
    unknown authored
          
    In statement-based or mixed-mode replication, use DROP TEMPORARY TABLE
    to drop multiple tables causes different errors on master and slave, 
    when one or more of these tables do not exist. Because when executed
    on slave, it would automatically add IF EXISTS to the query to ignore
    all ER_BAD_TABLE_ERROR errors.
    
    To fix the problem, do not add IF EXISTS when executing DROP TEMPORARY
    TABLE on the slave, and clear the ER_BAD_TABLE_ERROR error after
    execution if the query does not expect any errors.
    
    mysql-test/suite/rpl/r/rpl_drop_temp.result:
      Updated for the patch of bug#49137.
    mysql-test/suite/rpl/t/rpl_drop_temp.test:
      Added the test file to verify if DROP MULTI TEMPORARY TABLE
      will cause different errors on master and slave, when one or
      more of these tables do not exist.
    sql/log_event.cc:
      Added code to handle above cases which are 
      removed from sql_parse.cc
    sql/sql_parse.cc:
      Remove the code to issue the 'Unknown table' error, 
      if the temporary table does not exist when dropping 
      it on slave. The above cases decribed in comments
      will be handled later in log_event.cc.
    be397eb4
sql_parse.cc 233 KB