Remove the extra class hierarchy with classes TC_LOG_queued, TC_LOG_unordered,
and TC_LOG_group_commit, folding the code into the TC_LOG_MMAP and
TC_LOG_BINLOG classes. In particular TC_LOG_BINLOG is greatly simplified by
this, unifying the code path for transactional and non-transactional
commit.
Remove unnecessary locking of LOCK_log in MYSQL_BIN_LOG::write() (backport
of same fix from mysql-5.5).
client/mysqltest.cc:
Apply Serg's work-around for MySQL BUG#57491.
mysql-test/r/group_commit_binlog_pos.result:
Accept different ways the server crash is detected.
mysql-test/t/group_commit_binlog_pos.test:
Accept different ways the server crash is detected.
Skip in row-based binlogging, as otherwise the binlog offsets will be different.
Now the actual binlog position for each commit is stored in THD, and XtraDB
can fetch the correct value from within commit_ordered() or commit().
mysql-test/r/group_commit_binlog_pos.result:
Test case for XtraDB binlog position.
mysql-test/t/group_commit_binlog_pos-master.opt:
Test case for XtraDB binlog position.
mysql-test/t/group_commit_binlog_pos.test:
Test case for XtraDB binlog position.
sql/log.cc:
Save binlog position corresponding to commit in THD, and make accessible to storage engine.
sql/sql_parse.cc:
Add generic crash point for use in test cases.
storage/xtradb/handler/ha_innodb.cc:
Update to use new method of getting current binlog position that works with group commit.
storage/xtradb/handler/ha_innodb.h:
Update to use new method of getting current binlog position that works with group commit.