Below is the list of changes that have just been committed into a local
4.1 repository of jan. When jan 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
1.2459 05/09/28 13:29:34 jan@stripped +3 -0
Fixed a bug checksum table locks the InnoDB table and does not use a
consistent read (Bug #12669).
sql/ha_innodb.cc
1.208 05/09/28 13:29:25 jan@stripped +11 -2
Use consistent read for checksum table and convert MySQL lock type
to the TL_READ because at the moment MySQL uses TL_READ_NO_INSERT.
mysql-test/t/innodb.test
1.76 05/09/28 13:29:25 jan@stripped +41 -0
Added test case for a checksum bug #12669.
mysql-test/r/innodb.result
1.105 05/09/28 13:29:25 jan@stripped +28 -0
Added test results for a checksum test.
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: jan
# Host: hundin.mysql.fi
# Root: /home/jan/mysql-4.1
--- 1.104/mysql-test/r/innodb.result 2005-09-19 03:39:25 +03:00
+++ 1.105/mysql-test/r/innodb.result 2005-09-28 13:29:25 +03:00
@@ -1694,3 +1694,31 @@
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;
--- 1.75/mysql-test/t/innodb.test 2005-09-19 03:39:17 +03:00
+++ 1.76/mysql-test/t/innodb.test 2005-09-28 13:29:25 +03:00
@@ -1239,4 +1239,45 @@
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
--- 1.207/sql/ha_innodb.cc 2005-08-31 14:27:26 +03:00
+++ 1.208/sql/ha_innodb.cc 2005-09-28 13:29:25 +03:00
@@ -5422,8 +5422,17 @@
prebuilt->select_lock_type = LOCK_NONE;
prebuilt->stored_select_lock_type = LOCK_NONE;
} else {
- prebuilt->select_lock_type = LOCK_S;
- prebuilt->stored_select_lock_type = LOCK_S;
+ if (thd->lex->sql_command == SQLCOM_CHECKSUM) {
+ /* Use consistent read for checksum table and
+ convert lock type to the TL_READ */
+
+ 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;
+ }
}
} else if (lock_type != TL_IGNORE) {
| Thread |
|---|
| • bk commit into 4.1 tree (jan:1.2459) BUG#12669 | Jan Lindstrom | 28 Sep |