summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorMichael Widenius <monty@askmonty.org>2013-08-27 19:18:04 +0300
committerMichael Widenius <monty@askmonty.org>2013-08-27 19:18:04 +0300
commit112411b056ae16c4addcb9dc84ebf1992b719d59 (patch)
tree0fa0c040903263e60a00f455afadaa9e83718736 /mysql-test
parent7907b9b4da8c299318bd73d32b621dc34acc0f35 (diff)
downloadmariadb-git-112411b056ae16c4addcb9dc84ebf1992b719d59.tar.gz
Fixed MySQL bug #69861 LAST_INSERT_ID is replicated incorrectly if replication filters are used
mysql-test/suite/rpl/r/last_insert_id.result: Test case for last_insert_id mysql-test/suite/rpl/t/last_insert_id.cnf: Test case for last_insert_id mysql-test/suite/rpl/t/last_insert_id.test: Test case for last_insert_id sql/log_event.cc: Added DBUG_PRINT Set thd->first_successful_insert_id_in_prev_stmt_for_binlog when setting thd->first_successful_insert_id_in_prev_stmt. This is required to get last_insert_id() replicated. This is analog to how read_first_successful_insert_id_in_prev_stmt() works. sql/rpl_utility.cc: Added DBUG_PRINT
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/suite/rpl/r/last_insert_id.result18
-rw-r--r--mysql-test/suite/rpl/t/last_insert_id.cnf20
-rw-r--r--mysql-test/suite/rpl/t/last_insert_id.test30
3 files changed, 68 insertions, 0 deletions
diff --git a/mysql-test/suite/rpl/r/last_insert_id.result b/mysql-test/suite/rpl/r/last_insert_id.result
new file mode 100644
index 00000000000..ce64e9df41e
--- /dev/null
+++ b/mysql-test/suite/rpl/r/last_insert_id.result
@@ -0,0 +1,18 @@
+include/rpl_init.inc [topology=1->2->3]
+create table t1 (id int not null auto_increment primary key, i int) engine=InnoDB;
+insert into t1 (i) values (-1);
+insert into t1 (i) values (LAST_INSERT_ID());
+select * from t1;
+id i
+1 -1
+2 1
+select * from t1;
+id i
+1 -1
+2 1
+select * from t1;
+id i
+1 -1
+2 1
+drop table t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/last_insert_id.cnf b/mysql-test/suite/rpl/t/last_insert_id.cnf
new file mode 100644
index 00000000000..1c229e4ac94
--- /dev/null
+++ b/mysql-test/suite/rpl/t/last_insert_id.cnf
@@ -0,0 +1,20 @@
+!include suite/rpl/my.cnf
+
+[mysqld.1]
+log-slave-updates
+loose-innodb
+
+[mysqld.2]
+log-slave-updates
+loose-innodb
+replicate-ignore-table=db.t2
+
+[mysqld.3]
+log-slave-updates
+loose-innodb
+
+[ENV]
+SERVER_MYPORT_3= @mysqld.3.port
+SERVER_MYSOCK_3= @mysqld.3.socket
+
+
diff --git a/mysql-test/suite/rpl/t/last_insert_id.test b/mysql-test/suite/rpl/t/last_insert_id.test
new file mode 100644
index 00000000000..f23cca405ac
--- /dev/null
+++ b/mysql-test/suite/rpl/t/last_insert_id.test
@@ -0,0 +1,30 @@
+--source include/have_innodb.inc
+--source include/have_binlog_format_mixed_or_statement.inc
+--let $rpl_topology=1->2->3
+--source include/rpl_init.inc
+
+connection server_1;
+
+create table t1 (id int not null auto_increment primary key, i int) engine=InnoDB;
+insert into t1 (i) values (-1);
+insert into t1 (i) values (LAST_INSERT_ID());
+select * from t1;
+
+save_master_pos;
+
+connection server_2;
+
+sync_with_master;
+select * from t1;
+save_master_pos;
+
+connection server_3;
+
+sync_with_master;
+select * from t1;
+
+connection server_1;
+drop table t1;
+
+--source include/rpl_end.inc
+