mariadb/mysql-test/suite/binlog/r
Mats Kindahl 8d9cf89e96 Bug #38360: BLACKHOLE replication with RBR is broken
The Blackhole engine did not support row-based replication
since the delete_row(), update_row(), and the index and range
searching functions were not implemented.

This patch adds row-based replication support for the
Blackhole engine by implementing the two functions mentioned
above, and making the engine pretend that it has found the
correct row to delete or update when executed from the slave
SQL thread by implementing index and range searching functions.

It is necessary to only pretend this for the SQL thread, since
a SELECT executed on the Blackhole engine will otherwise never
return EOF, causing a livelock.


mysql-test/extra/binlog_tests/blackhole.test:
  Blackhole now handles row-based replication.
mysql-test/extra/rpl_tests/rpl_blackhole.test:
  Test helper file for testing that blackhole actually
  writes something to the binary log on the slave.
mysql-test/suite/binlog/t/binlog_multi_engine.test:
  Replication now handles row-based replcation.
mysql-test/suite/rpl/t/rpl_blackhole.test:
  Test that Blackhole works with primary key, index, or none.
sql/log_event.cc:
  Correcting code to only touch filler bits and leave
  all other bits alone. It is necessary since there is
  no guarantee that the engine will be able to fill in
  the bits correctly (e.g., the blackhole engine).
storage/blackhole/ha_blackhole.cc:
  Adding definitions for update_row() and delete_row() to return OK
  when executed from the slave SQL thread with thd->query == NULL
  (indicating that row-based replication events are being processed).
  
  Changing rnd_next(), index_read(), index_read_idx(), and
  index_read_last() to return OK when executed from the slave SQL
  thread (faking that the row has been found so that processing
  proceeds to update/delete the row).
storage/blackhole/ha_blackhole.h:
  Enabling row capabilities for engine.
  Defining write_row(), update_row(), and delete_row().
  Making write_row() private (as it should be).
2008-10-02 11:02:38 +02:00
..
binlog_auto_increment_bug33029.result Bug #35675 reset master finds assert if a binlog file can not be deleted 2008-03-30 00:54:08 +02:00
binlog_base64_flag.result BUG#37426: RBR breaks for CHAR() UTF-8 fields > 85 chars 2008-06-30 22:11:18 +02:00
binlog_database.result Bug #38773: DROP DATABASE cause switch to stmt-mode when there are temporary 2008-08-27 10:40:11 +02:00
binlog_grant.result Bug #39106: 2008-09-09 12:19:31 +02:00
binlog_innodb.result Result file change. 2008-08-27 16:17:55 +02:00
binlog_killed.result Merge koti.dsl.inet.fi:/home/elkin/MySQL/TEAM/FIXES/5.0/bug27571_asyn_killed_flags 2007-11-06 20:41:06 +02:00
binlog_killed_simulate.result BUG#38068: binlog_stm_binlog fails sporadically in pushbuild 2008-07-29 17:36:13 +02:00
binlog_multi_engine.result Bug #38360: BLACKHOLE replication with RBR is broken 2008-10-02 11:02:38 +02:00
binlog_old_versions.result BUG#34141: mysqlbinlog cannot read 4.1 binlogs containing load data infile 2008-01-30 14:12:40 +01:00
binlog_row_binlog.result BUG#38068: binlog_stm_binlog fails sporadically in pushbuild 2008-07-29 17:36:13 +02:00
binlog_row_ctype_cp932.result Merge stella.local:/home2/mydev/mysql-5.1-amain 2008-03-26 10:27:00 +01:00
binlog_row_ctype_ucs.result Post-merge fixes to remove test failures resulting from merge. 2008-03-28 18:56:43 +01:00
binlog_row_drop_tmp_tbl.result WL#3933 Split main test suite to rpl, rpl_ndb and ndb 2007-06-27 14:28:02 +02:00
binlog_row_innodb_stat.result WL#3933 Split main test suite to rpl, rpl_ndb and ndb 2007-06-27 14:28:02 +02:00
binlog_row_insert_select.result BUG#29020 (Event results not correctly replicated to slave in RBR): 2008-03-28 13:16:41 +01:00
binlog_row_mix_innodb_myisam.result BUG#38068: binlog_stm_binlog fails sporadically in pushbuild 2008-07-29 17:36:13 +02:00
binlog_start_comment.result BUG#32205 Replaying statements from mysqlbinlog fails with a syntax error, replicates 2007-12-17 21:13:25 +08:00
binlog_statement_insert_delayed.result BUG#38068: binlog_stm_binlog fails sporadically in pushbuild 2008-07-29 17:36:13 +02:00
binlog_stm_binlog.result BUG#38068: binlog_stm_binlog fails sporadically in pushbuild 2008-07-23 18:56:39 +02:00
binlog_stm_blackhole.result Bug #38360: BLACKHOLE replication with RBR is broken 2008-10-02 11:02:38 +02:00
binlog_stm_ctype_cp932.result Merge stella.local:/home2/mydev/mysql-5.1-amain 2008-03-26 10:27:00 +01:00
binlog_stm_ctype_ucs.result BUG#31168: @@hostname does not replicate 2008-03-07 13:59:36 +01:00
binlog_stm_drop_tmp_tbl.result WL#3933 Split main test suite to rpl, rpl_ndb and ndb 2007-06-27 14:28:02 +02:00
binlog_stm_innodb_stat.result WL#3933 Split main test suite to rpl, rpl_ndb and ndb 2007-06-27 14:28:02 +02:00
binlog_stm_insert_select.result WL#3933 Split main test suite to rpl, rpl_ndb and ndb 2007-06-27 14:28:02 +02:00
binlog_stm_mix_innodb_myisam.result BUG#38068: binlog_stm_binlog fails sporadically in pushbuild 2008-07-29 17:36:13 +02:00
binlog_stm_ps.result BUG#34768 - nondeterministic INSERT using LIMIT logged in stmt mode 2008-03-25 17:28:12 +04:00
binlog_unsafe.result Merge stella.local:/home2/mydev/mysql-5.1-ateam 2008-03-26 10:56:03 +01:00