mariadb/mysql-test/suite
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 Bug #38360: BLACKHOLE replication with RBR is broken 2008-10-02 11:02:38 +02:00
bugs BUG#37426: RBR breaks for CHAR() UTF-8 fields > 85 chars 2008-06-30 22:11:18 +02:00
funcs_1 Fix for Bug#37853 2008-08-13 21:44:54 +02:00
funcs_2 Upmerge 5.0 -> 5.1 2008-07-09 20:55:23 +02:00
im Move instance manager tests to it's own suite 2007-08-29 19:02:33 +02:00
jp Bug#36597 Testsuite "jp": Suspicious results for some tests using sjis 2008-07-29 10:43:57 +05:00
large_tests Bug#27029 alter table ... enable keys crashes mysqld on large table 2007-06-21 12:45:56 -04:00
manual manual merge for bug_29136, bug#29309. 2007-10-13 23:12:50 +03:00
ndb Merge from 5.0-bugteam. 2008-08-15 16:42:29 -04:00
ndb_team Merge trift2.:/MySQL/M51/mysql-5.1 2008-02-22 16:14:27 +01:00
parts Backport of patch for Bug#34604 (from 6.0) 2008-08-20 17:29:14 +02:00
rpl Bug #38360: BLACKHOLE replication with RBR is broken 2008-10-02 11:02:38 +02:00
rpl_ndb BUG#32709: Assertion failed: trx_data->empty(), file log.cc 2008-09-03 22:52:54 +02:00
stress Merge trift2.:/MySQL/M51/mysql-5.1 2008-02-22 16:14:27 +01:00
sys_vars Final fix for bug#36522 in 5.1. This new fix was necessary due to fix of bug 37708. 2008-07-23 16:06:44 +02:00