Commit 449b679d authored by unknown's avatar unknown
Browse files

Bug#15920 (Temporary tables are not logged in binlog):

  Fixing faulty tests preventing some CREATE TEMPORARY TABLE statements
  from being binlogged under statement-based replication.


mysql-test/t/disabled.def:
  Enabling rpl000002 test.
sql/sql_table.cc:
  Changed faulty tests so that creation of temporary tables are always done
  when statement-based logging is used.
parent e2283810
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -22,6 +22,6 @@ group_min_max : Bug #15448
innodb_concurrent : Results are not deterministic, Elliot will fix (BUG#3300)
subselect       : Bug#15706
type_time       : Bug#15805
rpl000002       : Bug#15920 Temporary tables are not binlogged in SBR
#rpl000002       : Bug#15920 Temporary tables are not binlogged in SBR
ps_7ndb         : Bug#15923 Core dump in RBR mode when executing test suite
sp_trans        : Bug#15924 Code dump in RBR mode when executing test suite
+5 −3
Original line number Diff line number Diff line
@@ -1915,10 +1915,12 @@ bool mysql_create_table(THD *thd,const char *db, const char *table_name,
    - It is an internal temporary table,
    - Row-based logging is used and it we are creating a temporary table, or
    - The binary log is not open.
    Otherwise, the statement shall be binlogged.
   */
  if (!internal_tmp_table &&
      !(binlog_row_based &&
        (create_info->options & HA_LEX_CREATE_TMP_TABLE)))
      (!binlog_row_based ||
       (binlog_row_based &&
        !(create_info->options & HA_LEX_CREATE_TMP_TABLE))))
    write_bin_log(thd, TRUE, thd->query, thd->query_length);
  error= FALSE;
unlock_and_end:
@@ -3112,7 +3114,7 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table,
      Case 3 and 4 does nothing under RBR
    */
  }
  else if (!(create_info->options & HA_LEX_CREATE_TMP_TABLE))
  else
    write_bin_log(thd, TRUE, thd->query, thd->query_length);

  res= FALSE;