Skip to content

Commit

Permalink
MDEV-15395 Wrong result or Assertion `old_part_id == m_last_part' fai…
Browse files Browse the repository at this point in the history
…led in ha_partition::update_row on slave

RBR cannot work with system versioning on the master.

row_end column is either system time (not @@timestamp) with microsecond
precision or transaction id. Either way, it'll certainly be different
on the slave. So if the master row contains row_end column, it won't
match on the slave. And if we ignore row_end when comparing,
then some other row might match instead.
  • Loading branch information
vuvova committed Feb 24, 2018
1 parent 485325e commit fd240a1
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 14 deletions.
16 changes: 2 additions & 14 deletions mysql-test/suite/versioning/t/rpl.test
Original file line number Diff line number Diff line change
@@ -1,18 +1,6 @@
--source include/master-slave.inc

if ($MTR_COMBINATION_STMT)
{
--source include/have_binlog_format_statement.inc
}
if ($MTR_COMBINATION_ROW)
{
--source include/have_binlog_format_row.inc
}
if ($MTR_COMBINATION_MIX)
{
--source include/have_binlog_format_mixed.inc
}
--source include/have_binlog_format_mixed_or_statement.inc
--source suite/versioning/engines.inc
--source include/master-slave.inc

#BUG#12662190 - COM_COMMIT IS NOT INCREMENTED FROM THE BINARY LOGS ON SLAVE, COM_BEGIN IS
#Testing command counters -BEFORE.
Expand Down
3 changes: 3 additions & 0 deletions sql/sql_class.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6197,6 +6197,9 @@ 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;

}
Expand Down

0 comments on commit fd240a1

Please sign in to comment.