• unknown's avatar
    BUG#47418 RBR fails, failure with mixup of base/temporary/view · 377d7102
    unknown authored
    'CREATE TABLE IF NOT EXISTS ... SELECT' statement were causing 'CREATE
    TEMPORARY TABLE ...' to be written to the binary log in row-based 
    mode (a.k.a. RBR), when there was a temporary table with the same name.
    Because the 'CREATE TABLE ... SELECT' statement was executed as 
    'INSERT ... SELECT' into the temporary table. Since in RBR mode no 
    other statements related to temporary tables are written into binary log,
    this sometimes broke replication.
    
    This patch changes behavior of 'CREATE TABLE [IF NOT EXISTS] ... SELECT ...'.
    it ignores existence of temporary table with the 
    same name as table being created and is interpreted
    as attempt to create/insert into base table. This makes behavior of
    'CREATE TABLE [IF NOT EXISTS] ... SELECT' consistent with
    how ordinary 'CREATE TABLE' and 'CREATE TABLE ... LIKE' behave.
    377d7102
sql_parse.cc 233 KB