mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
BUG#53075 SBR: Strange warning around CONNECTION_ID
Statements with CONNECTION_ID were forced to be kept in the transactional cache and by consequence non-transactional changes that were supposed to be flushed ahead of the transaction were kept in the transactional cache. This happened because after BUG#51894 any statement whose thd's thread_specific_used was set was kept in the transactional cache. The idea was to keep changes on temporary tables in the transactional cache. However, the thread_specific_used was set not only for statements that accessed temporary tables but also when the CONNECTION_ID was used. To fix the problem, we created a new variable to keep track of updates to temporary tables.
This commit is contained in:
@@ -34,6 +34,10 @@
|
||||
# the CREATE TEMPORARY is not logged and the DROP TEMPORARY is extended with
|
||||
# the IF EXISTS clause.
|
||||
#
|
||||
# 7 - It also verifies if the CONNECTION_ID along with a non-transactional
|
||||
# table is written outside the transaction boundaries and is not classified
|
||||
# as unsafe. See BUG#53075.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
source include/master-slave.inc;
|
||||
@@ -163,6 +167,29 @@ DROP TEMPORARY TABLE tmp3;
|
||||
ROLLBACK;
|
||||
source include/show_binlog_events.inc;
|
||||
|
||||
--echo ########################################################################
|
||||
--echo # VERIFY ITEM 7
|
||||
--echo ########################################################################
|
||||
|
||||
SET BINLOG_FORMAT=STATEMENT;
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp1(id int) engine= MyIsam;
|
||||
CREATE TABLE t_myisam (f1 BIGINT) ENGINE = MyISAM;
|
||||
CREATE TABLE t_innodb (f1 BIGINT) ENGINE = Innodb;
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO t_myisam VALUES(CONNECTION_ID());
|
||||
INSERT INTO tmp1 VALUES(1);
|
||||
INSERT INTO t_myisam VALUES(1);
|
||||
INSERT INTO t_innodb VALUES(1);
|
||||
INSERT INTO t_myisam VALUES(CONNECTION_ID());
|
||||
INSERT INTO t_innodb VALUES(1);
|
||||
COMMIT;
|
||||
DROP TABLE t_myisam;
|
||||
DROP TABLE t_innodb;
|
||||
source include/show_binlog_events.inc;
|
||||
|
||||
--echo ###################################################################################
|
||||
--echo # CHECK CONSISTENCY
|
||||
--echo ###################################################################################
|
||||
@@ -172,3 +199,5 @@ sync_slave_with_master;
|
||||
--exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/test-nmt-master.sql
|
||||
--exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/test-nmt-slave.sql
|
||||
--diff_files $MYSQLTEST_VARDIR/tmp/test-nmt-master.sql $MYSQLTEST_VARDIR/tmp/test-nmt-slave.sql
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user