diff options
author | Mats Kindahl <mats@sun.com> | 2009-09-23 13:20:48 +0200 |
---|---|---|
committer | Mats Kindahl <mats@sun.com> | 2009-09-23 13:20:48 +0200 |
commit | 8f35f7c907992c77b1bda584956cf8acf97e88d5 (patch) | |
tree | 05f9e5a91777fffa20de0e533bfef022ed954374 /mysql-test/extra | |
parent | 5661e72623e66d9170dbe3e7913ff4f36b79100d (diff) | |
download | mariadb-git-8f35f7c907992c77b1bda584956cf8acf97e88d5.tar.gz |
Bug #37221: SET AUTOCOMMIT=1 does not commit binary log
When setting AUTOCOMMIT=1 after starting a transaction, the binary log
did not commit the outstanding transaction. The reason was that the binary
log commit function saw the values of the new settings, deciding that there
were nothing to commit.
Fixed the problem by moving the implicit commit to before the thread option
flags were changed, so that the binary log sees the old values of the flags
instead of the values they will take after the statement.
Diffstat (limited to 'mysql-test/extra')
-rw-r--r-- | mysql-test/extra/binlog_tests/implicit.test | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/mysql-test/extra/binlog_tests/implicit.test b/mysql-test/extra/binlog_tests/implicit.test new file mode 100644 index 00000000000..84d80288d36 --- /dev/null +++ b/mysql-test/extra/binlog_tests/implicit.test @@ -0,0 +1,28 @@ +# First part: outside a transaction +RESET MASTER; +eval $prepare; + +INSERT INTO t1 VALUES (1); +source include/show_binlog_events.inc; +eval $statement; +source include/show_binlog_events.inc; +if (`select '$cleanup' != ''`) { + eval $cleanup; +} + +# Second part: inside a transaction +RESET MASTER; +eval $prepare; +BEGIN; +INSERT INTO t1 VALUES (2); +source include/show_binlog_events.inc; +eval $statement; +source include/show_binlog_events.inc; +INSERT INTO t1 VALUES (3); +source include/show_binlog_events.inc; +COMMIT; +source include/show_binlog_events.inc; +if (`select '$cleanup' != ''`) { + eval $cleanup; +} + |