Below is the list of changes that have just been committed into a local
5.1 repository of mats. When mats does a push these changes
will be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2008-05-16 16:08:24+02:00, mats@mats-laptop.(none) +3 -0
Fixes to make rpl_insert_id pass in 5.1-bugteam.
mysql-test/extra/rpl_tests/rpl_insert_id.test@stripped, 2008-05-16 16:08:22+02:00,
mats@mats-laptop.(none) +8 -7
Moving save and restore of @@global.concurrent_insert into the same
session thread.
mysql-test/suite/rpl/r/rpl_insert_id.result@stripped, 2008-05-16 16:08:22+02:00,
mats@mats-laptop.(none) +26 -26
Result file change.
mysql-test/suite/rpl/t/rpl_insert_id.test@stripped, 2008-05-16 16:08:22+02:00,
mats@mats-laptop.(none) +1 -1
Reverting previous change and using myisam as storage engine.
diff -Nrup a/mysql-test/extra/rpl_tests/rpl_insert_id.test
b/mysql-test/extra/rpl_tests/rpl_insert_id.test
--- a/mysql-test/extra/rpl_tests/rpl_insert_id.test 2008-05-15 17:22:52 +02:00
+++ b/mysql-test/extra/rpl_tests/rpl_insert_id.test 2008-05-16 16:08:22 +02:00
@@ -18,13 +18,6 @@ use test;
drop table if exists t1, t2, t3;
--enable_warnings
-# If concurrent inserts are on, it is not guaranteed that the rows
-# inserted by INSERT are immediately accessible by SELECT in another
-# thread. This would cause problems near the line 'connection master1'
-# below. So we turn off concurrent inserts.
-SET @old_concurrent_insert= @@global.concurrent_insert;
-SET @@global.concurrent_insert= 0;
-
--echo #
--echo # See if queries that use both auto_increment and LAST_INSERT_ID()
--echo # are replicated well
@@ -34,6 +27,14 @@ SET @@global.concurrent_insert= 0;
-- source include/master-slave.inc
#should work for both SBR and RBR
+
+# If concurrent inserts are on, it is not guaranteed that the rows
+# inserted by INSERT are immediately accessible by SELECT in another
+# thread. This would cause problems near the line 'connection master1'
+# below. So we turn off concurrent inserts.
+connection master;
+SET @old_concurrent_insert= @@global.concurrent_insert;
+SET @@global.concurrent_insert= 0;
connection master;
eval create table t1(a int auto_increment, key(a)) engine=$engine_type;
diff -Nrup a/mysql-test/suite/rpl/r/rpl_insert_id.result
b/mysql-test/suite/rpl/r/rpl_insert_id.result
--- a/mysql-test/suite/rpl/r/rpl_insert_id.result 2008-05-15 17:22:52 +02:00
+++ b/mysql-test/suite/rpl/r/rpl_insert_id.result 2008-05-16 16:08:22 +02:00
@@ -15,8 +15,10 @@ reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
-create table t1(a int auto_increment, key(a)) engine=innodb;
-create table t2(b int auto_increment, c int, key(b)) engine=innodb;
+SET @old_concurrent_insert= @@global.concurrent_insert;
+SET @@global.concurrent_insert= 0;
+create table t1(a int auto_increment, key(a)) engine=myisam;
+create table t2(b int auto_increment, c int, key(b)) engine=myisam;
insert into t1 values (1),(2),(3);
insert into t1 values (null);
insert into t2 values (null,last_insert_id());
@@ -31,8 +33,8 @@ b c
1 4
drop table t1;
drop table t2;
-create table t1(a int auto_increment, key(a)) engine=innodb;
-create table t2(b int auto_increment, c int, key(b), foreign key(b) references t1(a))
engine=innodb;
+create table t1(a int auto_increment, key(a)) engine=myisam;
+create table t2(b int auto_increment, c int, key(b), foreign key(b) references t1(a))
engine=myisam;
SET FOREIGN_KEY_CHECKS=0;
insert into t1 values (10);
insert into t1 values (null),(null),(null);
@@ -54,8 +56,8 @@ b c
#
drop table t2;
drop table t1;
-create table t1(a int auto_increment, key(a)) engine=innodb;
-create table t2(b int auto_increment, c int, key(b)) engine=innodb;
+create table t1(a int auto_increment, key(a)) engine=myisam;
+create table t2(b int auto_increment, c int, key(b)) engine=myisam;
insert into t1 values (10);
insert into t1 values (null),(null),(null);
insert into t2 values (5,0);
@@ -87,7 +89,7 @@ drop table t2;
# FOREIGN_KEY_CHECKS
#
SET TIMESTAMP=1000000000;
-CREATE TABLE t1 ( a INT UNIQUE ) engine=innodb;
+CREATE TABLE t1 ( a INT UNIQUE ) engine=myisam;
SET FOREIGN_KEY_CHECKS=0;
INSERT INTO t1 VALUES (1),(1);
Got one of the listed errors
@@ -95,8 +97,8 @@ drop table t1;
#
# Bug#14553: NULL in WHERE resets LAST_INSERT_ID
#
-create table t1(a int auto_increment, key(a)) engine=innodb;
-create table t2(a int) engine=innodb;
+create table t1(a int auto_increment, key(a)) engine=myisam;
+create table t2(a int) engine=myisam;
insert into t1 (a) values (null);
insert into t2 (a) select a from t1 where a is null;
insert into t2 (a) select a from t1 where a is null;
@@ -123,7 +125,7 @@ create table t1 (
id int not null auto_increment,
last_id int,
primary key (id)
-) engine=innodb;
+) engine=myisam;
create function bug15728() returns int(11)
return last_insert_id();
insert into t1 (last_id) values (0);
@@ -133,7 +135,7 @@ create table t2 (
id int not null auto_increment,
last_id int,
primary key (id)
-) engine=innodb;
+) engine=myisam;
create function bug15728_insert() returns int(11) modifies sql data
begin
insert into t2 (last_id) values (bug15728());
@@ -199,7 +201,7 @@ drop function bug15728_insert;
drop table t1,t2;
drop procedure foo;
create table t1 (n int primary key auto_increment not null,
-b int, unique(b)) engine=innodb;
+b int, unique(b)) engine=myisam;
set sql_log_bin=0;
insert into t1 values(null,100);
replace into t1 values(null,50),(null,100),(null,150);
@@ -243,7 +245,7 @@ n b
1001 600
drop table t1;
create table t1 (n int primary key auto_increment not null,
-b int, unique(b)) engine=innodb;
+b int, unique(b)) engine=myisam;
insert into t1 values(null,100);
select * from t1 order by n;
n b
@@ -264,7 +266,7 @@ n b
3 350
drop table t1;
CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY AUTO_INCREMENT, b INT,
-UNIQUE(b)) ENGINE=innodb;
+UNIQUE(b)) ENGINE=myisam;
INSERT INTO t1(b) VALUES(1),(1),(2) ON DUPLICATE KEY UPDATE t1.b=10;
SELECT * FROM t1 ORDER BY a;
a b
@@ -282,12 +284,12 @@ field_2 varchar(255) NOT NULL,
field_3 varchar(255) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY field_1 (field_1, field_2)
-) ENGINE=innodb;
+) ENGINE=myisam;
CREATE TABLE t2 (
field_a int(10) unsigned NOT NULL,
field_b varchar(255) NOT NULL,
field_c varchar(255) NOT NULL
-) ENGINE=innodb;
+) ENGINE=myisam;
INSERT INTO t2 (field_a, field_b, field_c) VALUES (1, 'a', '1a');
INSERT INTO t2 (field_a, field_b, field_c) VALUES (2, 'b', '2b');
INSERT INTO t2 (field_a, field_b, field_c) VALUES (3, 'c', '3c');
@@ -330,12 +332,12 @@ CREATE TABLE t1 (
id INT NOT NULL DEFAULT 0,
last_id INT,
PRIMARY KEY (id)
-) ENGINE=innodb;
+) ENGINE=myisam;
CREATE TABLE t2 (
id INT NOT NULL AUTO_INCREMENT,
last_id INT,
PRIMARY KEY (id)
-) ENGINE=innodb;
+) ENGINE=myisam;
CREATE PROCEDURE p1()
BEGIN
INSERT INTO t2 (last_id) VALUES (LAST_INSERT_ID());
@@ -364,8 +366,8 @@ DROP TABLE IF EXISTS t1, t2;
CREATE TABLE t1 (
i INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
j INT DEFAULT 0
-) ENGINE=innodb;
-CREATE TABLE t2 (i INT) ENGINE=innodb;
+) ENGINE=myisam;
+CREATE TABLE t2 (i INT) ENGINE=myisam;
CREATE PROCEDURE p1()
BEGIN
INSERT INTO t1 (i) VALUES (NULL);
@@ -401,13 +403,10 @@ INSERT INTO t1 VALUES (NULL, LAST_INSERT
INSERT INTO t1 VALUES (NULL, 0), (NULL, LAST_INSERT_ID());
UPDATE t1 SET j= -1 WHERE i IS NULL;
INSERT INTO t1 (i) VALUES (NULL);
-SET @old_concurrent_insert= @@global.concurrent_insert;
-SET @@global.concurrent_insert= 0;
INSERT INTO t1 (i) VALUES (NULL);
SELECT f3();
f3()
0
-SET @@global.concurrent_insert= @old_concurrent_insert;
SELECT * FROM t1 ORDER BY i;
i j
1 -1
@@ -478,9 +477,9 @@ create table t2 (
id int not null auto_increment,
last_id int,
primary key (id)
-) engine=innodb;
+) engine=myisam;
truncate table t2;
-create table t1 (id tinyint primary key) engine=innodb;
+create table t1 (id tinyint primary key) engine=myisam;
create function insid() returns int
begin
insert into t2 (last_id) values (0);
@@ -516,7 +515,7 @@ drop table t1;
drop function insid;
truncate table t2;
create table t1 (n int primary key auto_increment not null,
-b int, unique(b)) engine=innodb;
+b int, unique(b)) engine=myisam;
create procedure foo()
begin
insert into t1 values(null,10);
@@ -539,3 +538,4 @@ id last_id
1 3
drop table t1, t2;
drop procedure foo;
+SET @@global.concurrent_insert= @old_concurrent_insert;
diff -Nrup a/mysql-test/suite/rpl/t/rpl_insert_id.test
b/mysql-test/suite/rpl/t/rpl_insert_id.test
--- a/mysql-test/suite/rpl/t/rpl_insert_id.test 2007-06-27 14:27:32 +02:00
+++ b/mysql-test/suite/rpl/t/rpl_insert_id.test 2008-05-16 16:08:22 +02:00
@@ -7,5 +7,5 @@
########################################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
-let $engine_type=innodb;
+let $engine_type=myisam;
-- source extra/rpl_tests/rpl_insert_id.test
| Thread |
|---|
| • bk commit into 5.1 tree (mats:1.2644) | Mats Kindahl | 16 May |