diff --git a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def index f32ed667864..ef5bdefa1ed 100644 --- a/mysql-test/t/disabled.def +++ b/mysql-test/t/disabled.def @@ -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 diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 3ac0d3ae466..df8f7bdc320 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -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;