mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-22722 Assertion "inited==NONE" failed in handler::ha_index_init on the slave during UPDATE
Add missing call for handler->prepare_for_insert() in Rows_log_event::do_apply_event
This commit is contained in:
12
mysql-test/main/long_unique_bugs_replication.result
Normal file
12
mysql-test/main/long_unique_bugs_replication.result
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
include/master-slave.inc
|
||||||
|
[connection master]
|
||||||
|
create table t1 (i1 int, a1 text, unique key i1 (a1)) engine=myisam;
|
||||||
|
insert into t1 values (1,1);
|
||||||
|
insert into t1 values (2,2);
|
||||||
|
update t1 set a1 = 'd' limit 1;
|
||||||
|
update t1 set a1 = 'd2' where i1= 2;
|
||||||
|
connection slave;
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
|
drop table t1;
|
||||||
|
include/rpl_end.inc
|
24
mysql-test/main/long_unique_bugs_replication.test
Normal file
24
mysql-test/main/long_unique_bugs_replication.test
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
#
|
||||||
|
# Long unique bugs related to master slave replication
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# MDEV-22722 Assertion "inited==NONE" failed in handler::ha_index_init on the slave during UPDATE
|
||||||
|
#
|
||||||
|
|
||||||
|
--source include/have_binlog_format_row.inc
|
||||||
|
--source include/master-slave.inc
|
||||||
|
|
||||||
|
create table t1 (i1 int, a1 text, unique key i1 (a1)) engine=myisam;
|
||||||
|
insert into t1 values (1,1);
|
||||||
|
insert into t1 values (2,2);
|
||||||
|
update t1 set a1 = 'd' limit 1;
|
||||||
|
update t1 set a1 = 'd2' where i1= 2;
|
||||||
|
|
||||||
|
sync_slave_with_master;
|
||||||
|
connection slave;
|
||||||
|
|
||||||
|
connection master;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
--source include/rpl_end.inc
|
@@ -5570,6 +5570,8 @@ int Rows_log_event::do_apply_event(rpl_group_info *rgi)
|
|||||||
{
|
{
|
||||||
master_had_triggers= table->master_had_triggers;
|
master_had_triggers= table->master_had_triggers;
|
||||||
bool transactional_table= table->file->has_transactions_and_rollback();
|
bool transactional_table= table->file->has_transactions_and_rollback();
|
||||||
|
table->file->prepare_for_insert(get_genral_type_code() != WRITE_ROWS_EVENT);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
table == NULL means that this table should not be replicated
|
table == NULL means that this table should not be replicated
|
||||||
(this was set up by Table_map_log_event::do_apply_event()
|
(this was set up by Table_map_log_event::do_apply_event()
|
||||||
|
Reference in New Issue
Block a user