From 9b59f78d16fb000adeba347cfa4f6e2c3e8f63e1 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sat, 24 Feb 2018 09:45:46 +0100 Subject: [PATCH] MDEV-15395 Wrong result or Assertion `old_part_id == m_last_part' failed in ha_partition::update_row on slave Revert commit fd240a10e3a and add a test case --- mysql-test/suite/versioning/r/rpl.result | 7 +++++++ mysql-test/suite/versioning/t/rpl.test | 13 ++++++++++++- sql/sql_class.cc | 3 --- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/mysql-test/suite/versioning/r/rpl.result b/mysql-test/suite/versioning/r/rpl.result index b5845a2d0b2fc..c5770a91c7723 100644 --- a/mysql-test/suite/versioning/r/rpl.result +++ b/mysql-test/suite/versioning/r/rpl.result @@ -157,4 +157,11 @@ t1 CREATE TABLE `t1` ( ) ENGINE=INNODB_OR_MYISAM DEFAULT CHARSET=latin1 WITH SYSTEM VERSIONING connection master; drop table t1, t2; +create table t1 (i int) with system versioning partition by system_time limit 8 ( partition p1 history, partition p2 history, partition pn current ); +insert into t1 values (1); +update t1 set i = 1; +update t1 set i = 0; +connection slave; +connection master; +drop table t1; include/rpl_end.inc diff --git a/mysql-test/suite/versioning/t/rpl.test b/mysql-test/suite/versioning/t/rpl.test index de8cfddd14a56..a9e3af45af85c 100644 --- a/mysql-test/suite/versioning/t/rpl.test +++ b/mysql-test/suite/versioning/t/rpl.test @@ -1,5 +1,5 @@ ---source include/have_binlog_format_mixed_or_statement.inc --source suite/versioning/engines.inc +--source include/have_partition.inc --source include/master-slave.inc #BUG#12662190 - COM_COMMIT IS NOT INCREMENTED FROM THE BINARY LOGS ON SLAVE, COM_BEGIN IS @@ -122,4 +122,15 @@ show create table t1; connection master; drop table t1, t2; +# +# MDEV-15395 Wrong result or Assertion `old_part_id == m_last_part' failed in ha_partition::update_row on slave +# +create table t1 (i int) with system versioning partition by system_time limit 8 ( partition p1 history, partition p2 history, partition pn current ); +insert into t1 values (1); +update t1 set i = 1; +update t1 set i = 0; +sync_slave_with_master; +connection master; +drop table t1; + --source include/rpl_end.inc diff --git a/sql/sql_class.cc b/sql/sql_class.cc index a86d40580db30..f10a5e51b59d8 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -6197,9 +6197,6 @@ int THD::decide_logging_format(TABLE_LIST *tables) flags_write_some_set |= flags; is_write= TRUE; - if (table->table->versioned()) - flags_write_all_set &= HA_BINLOG_STMT_CAPABLE; - prev_write_table= table->table; }