• unknown's avatar
    BUG#14157: utf8 encoding in binlog without set character_set_client e.g DROP temporary · c23c38fa
    unknown authored
    Binlog lacks encoding info about DROPped temporary table.
    
    Idea of the fix is to switch temporary to system_charset_info when a temporary table
    is DROPped for binlog. Since that is the server, that automatically, but not the client, who generates the query
    the binlog should be updated on the server's encoding for the coming DROP.
    The `write_binlog_with_system_charset()' is introduced to replace similar problematic places in the code.
    
    
    mysql-test/r/drop_temp_table.result:
      results changed
    mysql-test/r/mix_innodb_myisam_binlog.result:
      results changed
    mysql-test/r/mysqlbinlog.result:
      results changed
    mysql-test/r/rpl_temporary.result:
      results changed
    mysql-test/t/mysqlbinlog.test:
      Check roll-forward recovery from binlog where there are DROP temporary tables created
      in koi8r.
    mysql-test/t/rpl_temporary.test:
      Check slave digests binlog with DROP temporary tables created in koi8r.
    sql/mysql_priv.h:
      `write_binlog_with_system_charset()' is added to be called when a binlog event
      is created "implicitly" like DROP temporary table is case of closing connection.
    sql/sql_base.cc:
      Idea of the fix is to switch temporary to system_charset_info when a temporary table
      is DROPped for binlog. Since that is the server, not the client, who generates the query
      the binlog should be updated on server's encoding for the coming DROP.
    c23c38fa
rpl_temporary.test 4.83 KB