Commit b65c76cb authored by unknown's avatar unknown
Browse files

Merge jlindstrom@bk-internal.mysql.com:/home/bk/mysql-5.0

into  hundin.mysql.fi:/home/jan/mysql-5.0

parents bf7fe05f 811d98ad
Loading
Loading
Loading
Loading
+28 −28
Original line number Diff line number Diff line
@@ -1739,34 +1739,6 @@ select min(b) from t1 where a='8';
min(b)
6
drop table t1;
create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
insert into test_checksum values (1),(2);
set autocommit=0;
checksum table test_checksum;
Table	Checksum
test.test_checksum	1531596814
insert into test_checksum values(3);
checksum table test_checksum;
Table	Checksum
test.test_checksum	1531596814
commit;
checksum table test_checksum;
Table	Checksum
test.test_checksum	2050879373
commit;
drop table test_checksum;
create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
insert into test_checksum values (1),(2);
set autocommit=1;
checksum table test_checksum;
Table	Checksum
test.test_checksum	1531596814
set autocommit=1;
insert into test_checksum values(3);
checksum table test_checksum;
Table	Checksum
test.test_checksum	2050879373
drop table test_checksum;
create table t1 (x bigint unsigned not null primary key) engine=innodb;
insert into t1(x) values (0xfffffffffffffff0),(0xfffffffffffffff1);
select * from t1;
@@ -2644,3 +2616,31 @@ SET FOREIGN_KEY_CHECKS=1;
INSERT INTO t2 VALUES(3);
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t2`, CONSTRAINT `c1` FOREIGN KEY (`v`) REFERENCES `t1` (`id`))
DROP TABLE t2;
create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
insert into test_checksum values (1),(2);
set autocommit=0;
checksum table test_checksum;
Table	Checksum
test.test_checksum	1531596814
insert into test_checksum values(3);
checksum table test_checksum;
Table	Checksum
test.test_checksum	1531596814
commit;
checksum table test_checksum;
Table	Checksum
test.test_checksum	2050879373
commit;
drop table test_checksum;
create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
insert into test_checksum values (1),(2);
set autocommit=1;
checksum table test_checksum;
Table	Checksum
test.test_checksum	1531596814
set autocommit=1;
insert into test_checksum values(3);
checksum table test_checksum;
Table	Checksum
test.test_checksum	2050879373
drop table test_checksum;
+39 −40
Original line number Diff line number Diff line
@@ -1269,46 +1269,6 @@ select min(a) from t1;
select min(b) from t1 where a='8';
drop table t1;

#
# Test that checksum table uses a consistent read Bug #12669
#
connect (a,localhost,root,,);
connect (b,localhost,root,,);
connection a;
create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
insert into test_checksum values (1),(2);
set autocommit=0;
checksum table test_checksum;
connection b;
insert into test_checksum values(3);
connection a;
#
# Here checksum should not see insert
#
checksum table test_checksum;
connection a;
commit;
checksum table test_checksum;
commit;
drop table test_checksum;
#
# autocommit = 1
#
connection a;
create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
insert into test_checksum values (1),(2);
set autocommit=1;
checksum table test_checksum;
connection b;
set autocommit=1;
insert into test_checksum values(3);
connection a;
#
# Here checksum sees insert
#
checksum table test_checksum;
drop table test_checksum;

# End of 4.1 tests

#
@@ -1605,3 +1565,42 @@ SET FOREIGN_KEY_CHECKS=1;
INSERT INTO t2 VALUES(3);

DROP TABLE t2;
#
# Test that checksum table uses a consistent read Bug #12669
#
connect (a,localhost,root,,);
connect (b,localhost,root,,);
connection a;
create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
insert into test_checksum values (1),(2);
set autocommit=0;
checksum table test_checksum;
connection b;
insert into test_checksum values(3);
connection a;
#
# Here checksum should not see insert
#
checksum table test_checksum;
connection a;
commit;
checksum table test_checksum;
commit;
drop table test_checksum;
#
# autocommit = 1
#
connection a;
create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
insert into test_checksum values (1),(2);
set autocommit=1;
checksum table test_checksum;
connection b;
set autocommit=1;
insert into test_checksum values(3);
connection a;
#
# Here checksum sees insert
#
checksum table test_checksum;
drop table test_checksum;
+1 −3
Original line number Diff line number Diff line
@@ -6689,12 +6689,10 @@ ha_innobase::store_lock(
			prebuilt->select_lock_type = LOCK_NONE;
			prebuilt->stored_select_lock_type = LOCK_NONE;
		} else if (thd->lex->sql_command == SQLCOM_CHECKSUM) {
			/* Use consistent read for checksum table and
			convert lock type to the TL_READ */
			/* Use consistent read for checksum table */

			prebuilt->select_lock_type = LOCK_NONE;
			prebuilt->stored_select_lock_type = LOCK_NONE;
			lock.type = TL_READ;
		} else {
			prebuilt->select_lock_type = LOCK_S;
			prebuilt->stored_select_lock_type = LOCK_S;