Loading Docs/manual.texi +15 −1 Original line number Diff line number Diff line Loading @@ -46244,6 +46244,7 @@ users use this code as the rest of the code and because of this we are not yet 100% confident in this code. @menu * News-3.23.46:: * News-3.23.45:: Changes in release 3.23.45 * News-3.23.44:: Changes in release 3.23.44 * News-3.23.43:: Changes in release 3.23.43 Loading Loading @@ -46293,7 +46294,20 @@ not yet 100% confident in this code. * News-3.23.0:: Changes in release 3.23.0 @end menu @node News-3.23.45, News-3.23.44, News-3.23.x, News-3.23.x @node News-3.23.46, News-3.23.45, News-3.23.x, News-3.23.x @appendixsubsec Changes in release 3.23.46 @itemize @bullet @item Fixed bug where one got an empty set instead of a DEADLOCK error when using BDB tables. @item One can now kill @code{ANALYZE},@code{REPAIR} and @code{OPTIMIZE TABLE} when the thread is waiting to get a lock on the table. @item Fixed race condition in @code{ANALYZE TABLE}. @end itemize @node News-3.23.45, News-3.23.44, News-3.23.46, News-3.23.x @appendixsubsec Changes in release 3.23.45 @itemize @bullet @item mysql-test/r/bdb-deadlock.result 0 → 100644 +10 −0 Original line number Diff line number Diff line x 1 id x 0 1 id x 0 1 id x 0 1 id x 0 1 mysql-test/t/backup.test +1 −0 Original line number Diff line number Diff line Loading @@ -39,3 +39,4 @@ reap; unlock tables; connection con1; reap; drop table t1; mysql-test/t/bdb-crash.test +7 −7 Original line number Diff line number Diff line -- source include/have_bdb.inc # test for bug reported by Mark Steele drop table if exists tblChange; CREATE TABLE tblCharge ( drop table if exists t1; CREATE TABLE t1 ( ChargeID int(10) unsigned DEFAULT '0' NOT NULL auto_increment, ServiceID int(10) unsigned DEFAULT '0' NOT NULL, ChargeDate date DEFAULT '0000-00-00' NOT NULL, Loading @@ -20,16 +20,16 @@ DEFAULT 'New' NOT NULL, ) type=BDB; BEGIN; INSERT INTO tblCharge INSERT INTO t1 VALUES(NULL,1,'2001-03-01',1,1,1,'New',NULL,NULL,'now'); COMMIT; BEGIN; UPDATE tblCharge SET ChargeAuthorizationMessage = 'blablabla' WHERE UPDATE t1 SET ChargeAuthorizationMessage = 'blablabla' WHERE ChargeID = 1; COMMIT; INSERT INTO tblCharge INSERT INTO t1 VALUES(NULL,1,'2001-03-01',1,1,1,'New',NULL,NULL,'now'); select * from tblCharge; drop table tblCharge; select * from t1; drop table t1; mysql-test/t/bdb-deadlock.test 0 → 100644 +48 −0 Original line number Diff line number Diff line # This test doesn't work with the embedded version as this code # assumes that one query is running while we are doing queries on # a second connection. # This would work if mysqltest run would be threaded and handle each # connection in a separate thread. # #-- source include/not_embedded.inc -- source include/have_bdb.inc connect (con1,localhost,root,,); connect (con2,localhost,root,,); drop table if exists t1,t2; connection con1; create table t1 (id integer, x integer) type=BDB; create table t2 (id integer, x integer) type=BDB; insert into t1 values(0, 0); insert into t2 values(0, 0); set autocommit=0; update t1 set x = 1 where id = 0; connection con2; set autocommit=0; update t2 set x = 1 where id = 0; # The following query should hang because con1 is locking the page --send select x from t1 where id = 0; connection con1; # This should generate a deadlock as we are trying to access a locked row --error 1213 select x from t2 where id = 0; commit; connection con2; reap; commit; select * from t1; select * from t2; commit; connection con1; select * from t1; select * from t2; commit; drop table t1,t2; Loading
Docs/manual.texi +15 −1 Original line number Diff line number Diff line Loading @@ -46244,6 +46244,7 @@ users use this code as the rest of the code and because of this we are not yet 100% confident in this code. @menu * News-3.23.46:: * News-3.23.45:: Changes in release 3.23.45 * News-3.23.44:: Changes in release 3.23.44 * News-3.23.43:: Changes in release 3.23.43 Loading Loading @@ -46293,7 +46294,20 @@ not yet 100% confident in this code. * News-3.23.0:: Changes in release 3.23.0 @end menu @node News-3.23.45, News-3.23.44, News-3.23.x, News-3.23.x @node News-3.23.46, News-3.23.45, News-3.23.x, News-3.23.x @appendixsubsec Changes in release 3.23.46 @itemize @bullet @item Fixed bug where one got an empty set instead of a DEADLOCK error when using BDB tables. @item One can now kill @code{ANALYZE},@code{REPAIR} and @code{OPTIMIZE TABLE} when the thread is waiting to get a lock on the table. @item Fixed race condition in @code{ANALYZE TABLE}. @end itemize @node News-3.23.45, News-3.23.44, News-3.23.46, News-3.23.x @appendixsubsec Changes in release 3.23.45 @itemize @bullet @item
mysql-test/r/bdb-deadlock.result 0 → 100644 +10 −0 Original line number Diff line number Diff line x 1 id x 0 1 id x 0 1 id x 0 1 id x 0 1
mysql-test/t/backup.test +1 −0 Original line number Diff line number Diff line Loading @@ -39,3 +39,4 @@ reap; unlock tables; connection con1; reap; drop table t1;
mysql-test/t/bdb-crash.test +7 −7 Original line number Diff line number Diff line -- source include/have_bdb.inc # test for bug reported by Mark Steele drop table if exists tblChange; CREATE TABLE tblCharge ( drop table if exists t1; CREATE TABLE t1 ( ChargeID int(10) unsigned DEFAULT '0' NOT NULL auto_increment, ServiceID int(10) unsigned DEFAULT '0' NOT NULL, ChargeDate date DEFAULT '0000-00-00' NOT NULL, Loading @@ -20,16 +20,16 @@ DEFAULT 'New' NOT NULL, ) type=BDB; BEGIN; INSERT INTO tblCharge INSERT INTO t1 VALUES(NULL,1,'2001-03-01',1,1,1,'New',NULL,NULL,'now'); COMMIT; BEGIN; UPDATE tblCharge SET ChargeAuthorizationMessage = 'blablabla' WHERE UPDATE t1 SET ChargeAuthorizationMessage = 'blablabla' WHERE ChargeID = 1; COMMIT; INSERT INTO tblCharge INSERT INTO t1 VALUES(NULL,1,'2001-03-01',1,1,1,'New',NULL,NULL,'now'); select * from tblCharge; drop table tblCharge; select * from t1; drop table t1;
mysql-test/t/bdb-deadlock.test 0 → 100644 +48 −0 Original line number Diff line number Diff line # This test doesn't work with the embedded version as this code # assumes that one query is running while we are doing queries on # a second connection. # This would work if mysqltest run would be threaded and handle each # connection in a separate thread. # #-- source include/not_embedded.inc -- source include/have_bdb.inc connect (con1,localhost,root,,); connect (con2,localhost,root,,); drop table if exists t1,t2; connection con1; create table t1 (id integer, x integer) type=BDB; create table t2 (id integer, x integer) type=BDB; insert into t1 values(0, 0); insert into t2 values(0, 0); set autocommit=0; update t1 set x = 1 where id = 0; connection con2; set autocommit=0; update t2 set x = 1 where id = 0; # The following query should hang because con1 is locking the page --send select x from t1 where id = 0; connection con1; # This should generate a deadlock as we are trying to access a locked row --error 1213 select x from t2 where id = 0; commit; connection con2; reap; commit; select * from t1; select * from t2; commit; connection con1; select * from t1; select * from t2; commit; drop table t1,t2;