Loading .bzrignore +2 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,8 @@ *.vcproj */*.dir/* */*_pure_*warnings */.deps */.libs/* */.pure */debug/* */release/* Loading include/my_base.h +3 −1 Original line number Diff line number Diff line Loading @@ -372,7 +372,9 @@ enum ha_base_keytype { #define HA_ERR_TABLE_NEEDS_UPGRADE 164 /* The table changed in storage engine */ #define HA_ERR_TABLE_READONLY 165 /* The table is not writable */ #define HA_ERR_LAST 165 /*Copy last error nr.*/ #define HA_ERR_AUTOINC_READ_FAILED 166/* Failed to get the next autoinc value */ #define HA_ERR_AUTOINC_ERANGE 167 /* Failed to set the row autoinc value */ #define HA_ERR_LAST 167 /*Copy last error nr.*/ /* Add error numbers before HA_ERR_LAST and change it accordingly. */ #define HA_ERR_ERRORS (HA_ERR_LAST - HA_ERR_FIRST + 1) Loading mysql-test/t/innodb_concurrent.test→mysql-test/include/concurrent.inc +23 −12 Original line number Diff line number Diff line # include/concurrent.inc # # Concurrent InnoDB tests, mainly in UPDATE's # Concurrent tests for transactional storage engines, mainly in UPDATE's # Bug#3300 # Designed and tested by Sinisa Milivojevic, sinisa@mysql.com # # two non-interfering UPDATE's not changing result set # # test takes circa 5 minutes to run, so it's big -- source include/big_test.inc # The variable # $engine_type -- storage engine to be tested # has to be set before sourcing this script. # # Last update: # 2006-08-02 ML test refactored # old name was t/innodb_concurrent.test # main code went into include/concurrent.inc # connection default; eval SET SESSION STORAGE_ENGINE = $engine_type; --disable_warnings drop table if exists t1; create table t1(eta int(11) not null, tipo int(11), c varchar(255)) engine=innodb; --enable_warnings create table t1(eta int(11) not null, tipo int(11), c varchar(255)); connect (thread1, localhost, mysqltest,,); connection thread1; eval SET SESSION STORAGE_ENGINE = $engine_type; insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); Loading Loading @@ -57,7 +68,7 @@ drop table t1; # #connect (thread1, localhost, mysqltest,,); connection thread1; create table t1(eta int(11) not null, tipo int(11), c varchar(255)) engine=innodb; create table t1(eta int(11) not null, tipo int(11), c varchar(255)); insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); Loading Loading @@ -103,7 +114,7 @@ drop table t1; #connect (thread1, localhost, mysqltest,,); connection thread1; create table t1 (a int not null, b int not null) engine=innodb; create table t1 (a int not null, b int not null); insert into t1 values (1,1),(2,1),(3,1),(4,1); select get_lock("hello2",1000); #connect (thread2, localhost, mysqltest,,); Loading Loading @@ -132,7 +143,7 @@ drop table t1; # #connect (thread1, localhost, mysqltest,,); connection thread1; create table t1(eta int(11) not null, tipo int(11), c varchar(255)) engine=innodb; create table t1(eta int(11) not null, tipo int(11), c varchar(255)); insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); Loading Loading @@ -175,7 +186,7 @@ drop table t1; # #connect (thread1, localhost, mysqltest,,); connection thread1; create table t1(eta int(11) not null, tipo int(11), c varchar(255)) engine=innodb; create table t1(eta int(11) not null, tipo int(11), c varchar(255)); insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); Loading Loading @@ -218,7 +229,7 @@ drop table t1; # #connect (thread1, localhost, mysqltest,,); connection thread1; create table t1(eta int(11) not null, tipo int(11), c varchar(255)) engine=innodb; create table t1(eta int(11) not null, tipo int(11), c varchar(255)); insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); Loading Loading @@ -261,7 +272,7 @@ drop table t1; # #connect (thread1, localhost, mysqltest,,); connection thread1; create table t1(eta int(11) not null, tipo int(11), c varchar(255)) engine=innodb; create table t1(eta int(11) not null, tipo int(11), c varchar(255)); insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); Loading Loading @@ -305,7 +316,7 @@ drop table t1; # #connect (thread1, localhost, mysqltest,,); connection thread1; create table t1(eta int(11) not null, tipo int(11), c varchar(255)) engine=innodb; create table t1(eta int(11) not null, tipo int(11), c varchar(255)); insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); Loading mysql-test/t/innodb-deadlock.test→mysql-test/include/deadlock.inc +147 −0 Original line number Diff line number Diff line -- source include/have_innodb.inc # Can't test this with embedded server -- source include/not_embedded.inc # include/deadlock.inc # # The variable # $engine_type -- storage engine to be tested # has to be set before sourcing this script. # # Last update: # 2006-07-26 ML refactoring + print when connection is switched # old name was t/innodb-deadlock.test # main code went into include/deadlock.inc # --echo # Establish connection con1 (user=root) connect (con1,localhost,root,,); --echo # Establish connection con2 (user=root) connect (con2,localhost,root,,); --disable_warnings Loading @@ -13,29 +23,34 @@ drop table if exists t1,t2; # Testing of FOR UPDATE # --echo # Switch to connection con1 connection con1; create table t1 (id integer, x integer) engine=INNODB; eval create table t1 (id integer, x integer) engine = $engine_type; insert into t1 values(0, 0); set autocommit=0; SELECT * from t1 where id = 0 FOR UPDATE; --echo # Switch to connection con2 connection con2; set autocommit=0; # The following query should hang because con1 is locking the page # The following query should hang because con1 is locking the record --send update t1 set x=2 where id = 0; --sleep 2 --echo # Switch to connection con1 connection con1; update t1 set x=1 where id = 0; select * from t1; commit; --echo # Switch to connection con2 connection con2; reap; commit; --echo # Switch to connection con1 connection con1; select * from t1; commit; Loading @@ -45,9 +60,10 @@ drop table t1; # Testing of FOR UPDATE # --echo # Switch to connection con1 connection con1; create table t1 (id integer, x integer) engine=INNODB; create table t2 (b integer, a integer) engine=INNODB; eval create table t1 (id integer, x integer) engine = $engine_type; eval create table t2 (b integer, a integer) engine = $engine_type; insert into t1 values(0, 0), (300, 300); insert into t2 values(0, 10), (1, 20), (2, 30); commit; Loading @@ -57,61 +73,75 @@ update t2 set a=100 where b=(SELECT x from t1 where id = b FOR UPDATE); select * from t2; select * from t1; --echo # Switch to connection con2 connection con2; set autocommit=0; # The following query should hang because con1 is locking the page # The following query should hang because con1 is locking the record --send update t1 set x=2 where id = 0; --sleep 2 --echo # Switch to connection con1 connection con1; update t1 set x=1 where id = 0; select * from t1; commit; --echo # Switch to connection con2 connection con2; reap; commit; --echo # Switch to connection con1 connection con1; select * from t1; commit; drop table t1, t2; create table t1 (id integer, x integer) engine=INNODB; create table t2 (b integer, a integer) engine=INNODB; eval create table t1 (id integer, x integer) engine = $engine_type; eval create table t2 (b integer, a integer) engine = $engine_type; insert into t1 values(0, 0), (300, 300); insert into t2 values(0, 0), (1, 20), (2, 30); commit; --echo # Switch to connection con1 connection con1; select a,b from t2 UNION SELECT id, x from t1 FOR UPDATE; select * from t2; select * from t1; --echo # Switch to connection con2 connection con2; # The following query should hang because con1 is locking the page # The following query should hang because con1 is locking the record update t2 set a=2 where b = 0; select * from t2; --send update t1 set x=2 where id = 0; --sleep 2 --echo # Switch to connection con1 connection con1; update t1 set x=1 where id = 0; select * from t1; commit; --echo # Switch to connection con2 connection con2; reap; commit; --echo # Switch to connection con1 connection con1; select * from t1; commit; # Cleanup --echo # Switch to connection default + disconnect con1 and con2 connection default; disconnect con1; disconnect con2; drop table t1, t2; # End of 4.1 tests mysql-test/t/handler.test→mysql-test/include/handler.inc +45 −7 Original line number Diff line number Diff line # include/handler.inc # # The variables # $engine_type -- storage engine to be tested # $other_engine_type -- storage engine <> $engine_type # $other_handler_engine_type -- storage engine <> $engine_type, if possible # 1. $other_handler_engine_type must support handler # 2. $other_handler_engine_type must point to an all # time available storage engine # 2006-08 MySQL 5.1 MyISAM and MEMORY only # have to be set before sourcing this script. -- source include/not_embedded.inc # # test of HANDLER ... # # Last update: # 2006-07-31 ML test refactored (MySQL 5.1) # code of t/handler.test and t/innodb_handler.test united # main testing code put into include/handler.inc # # should work in embedded server after mysqltest is fixed -- source include/not_embedded.inc eval SET SESSION STORAGE_ENGINE = $engine_type; --disable_warnings drop table if exists t1,t3,t4,t5; Loading Loading @@ -74,6 +89,22 @@ handler t2 read next; handler t2 read last; handler t2 close; handler t1 open; handler t1 read a next; # this used to crash as a bug#5373 handler t1 read a next; handler t1 close; handler t1 open; handler t1 read a prev; # this used to crash as a bug#5373 handler t1 read a prev; handler t1 close; handler t1 open as t2; handler t2 read first; eval alter table t1 engine = $engine_type; --error 1109 handler t2 read first; # # DROP TABLE / ALTER TABLE # Loading @@ -84,7 +115,7 @@ insert into t1 values (17); --error 1109 handler t2 read first; handler t1 open as t2; alter table t1 engine=MyISAM; eval alter table t1 engine=$other_engine_type; --error 1109 handler t2 read first; drop table t1; Loading Loading @@ -303,7 +334,7 @@ insert into t5 values ("t5"); handler t5 open as h5; handler h5 read first limit 9; # close first alter table t1 engine=MyISAM; eval alter table t1 engine=$other_handler_engine_type; --error 1109 handler h1 read first limit 9; handler h2 read first limit 9; Loading @@ -311,7 +342,7 @@ handler h3 read first limit 9; handler h4 read first limit 9; handler h5 read first limit 9; # close last alter table t5 engine=MyISAM; eval alter table t5 engine=$other_handler_engine_type; --error 1109 handler h1 read first limit 9; handler h2 read first limit 9; Loading @@ -320,7 +351,7 @@ handler h4 read first limit 9; --error 1109 handler h5 read first limit 9; # close middle alter table t3 engine=MyISAM; eval alter table t3 engine=$other_handler_engine_type; --error 1109 handler h1 read first limit 9; handler h2 read first limit 9; Loading @@ -338,7 +369,7 @@ handler t1 open as h1_3; handler h1_1 read first limit 9; handler h1_2 read first limit 9; handler h1_3 read first limit 9; alter table t1 engine=MyISAM; eval alter table t1 engine=$engine_type; --error 1109 handler h1_1 read first limit 9; --error 1109 Loading Loading @@ -379,6 +410,13 @@ reap; connection default; drop table t1; CREATE TABLE t1 ( no1 smallint(5) NOT NULL default '0', no2 int(10) NOT NULL default '0', PRIMARY KEY (no1,no2)); INSERT INTO t1 VALUES (1,274),(1,275),(2,6),(2,8),(4,1),(4,2); HANDLER t1 OPEN; HANDLER t1 READ `primary` = (1, 1000); HANDLER t1 READ `primary` PREV; DROP TABLE t1; # End of 4.1 tests # Loading Loading
.bzrignore +2 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,8 @@ *.vcproj */*.dir/* */*_pure_*warnings */.deps */.libs/* */.pure */debug/* */release/* Loading
include/my_base.h +3 −1 Original line number Diff line number Diff line Loading @@ -372,7 +372,9 @@ enum ha_base_keytype { #define HA_ERR_TABLE_NEEDS_UPGRADE 164 /* The table changed in storage engine */ #define HA_ERR_TABLE_READONLY 165 /* The table is not writable */ #define HA_ERR_LAST 165 /*Copy last error nr.*/ #define HA_ERR_AUTOINC_READ_FAILED 166/* Failed to get the next autoinc value */ #define HA_ERR_AUTOINC_ERANGE 167 /* Failed to set the row autoinc value */ #define HA_ERR_LAST 167 /*Copy last error nr.*/ /* Add error numbers before HA_ERR_LAST and change it accordingly. */ #define HA_ERR_ERRORS (HA_ERR_LAST - HA_ERR_FIRST + 1) Loading
mysql-test/t/innodb_concurrent.test→mysql-test/include/concurrent.inc +23 −12 Original line number Diff line number Diff line # include/concurrent.inc # # Concurrent InnoDB tests, mainly in UPDATE's # Concurrent tests for transactional storage engines, mainly in UPDATE's # Bug#3300 # Designed and tested by Sinisa Milivojevic, sinisa@mysql.com # # two non-interfering UPDATE's not changing result set # # test takes circa 5 minutes to run, so it's big -- source include/big_test.inc # The variable # $engine_type -- storage engine to be tested # has to be set before sourcing this script. # # Last update: # 2006-08-02 ML test refactored # old name was t/innodb_concurrent.test # main code went into include/concurrent.inc # connection default; eval SET SESSION STORAGE_ENGINE = $engine_type; --disable_warnings drop table if exists t1; create table t1(eta int(11) not null, tipo int(11), c varchar(255)) engine=innodb; --enable_warnings create table t1(eta int(11) not null, tipo int(11), c varchar(255)); connect (thread1, localhost, mysqltest,,); connection thread1; eval SET SESSION STORAGE_ENGINE = $engine_type; insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); Loading Loading @@ -57,7 +68,7 @@ drop table t1; # #connect (thread1, localhost, mysqltest,,); connection thread1; create table t1(eta int(11) not null, tipo int(11), c varchar(255)) engine=innodb; create table t1(eta int(11) not null, tipo int(11), c varchar(255)); insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); Loading Loading @@ -103,7 +114,7 @@ drop table t1; #connect (thread1, localhost, mysqltest,,); connection thread1; create table t1 (a int not null, b int not null) engine=innodb; create table t1 (a int not null, b int not null); insert into t1 values (1,1),(2,1),(3,1),(4,1); select get_lock("hello2",1000); #connect (thread2, localhost, mysqltest,,); Loading Loading @@ -132,7 +143,7 @@ drop table t1; # #connect (thread1, localhost, mysqltest,,); connection thread1; create table t1(eta int(11) not null, tipo int(11), c varchar(255)) engine=innodb; create table t1(eta int(11) not null, tipo int(11), c varchar(255)); insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); Loading Loading @@ -175,7 +186,7 @@ drop table t1; # #connect (thread1, localhost, mysqltest,,); connection thread1; create table t1(eta int(11) not null, tipo int(11), c varchar(255)) engine=innodb; create table t1(eta int(11) not null, tipo int(11), c varchar(255)); insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); Loading Loading @@ -218,7 +229,7 @@ drop table t1; # #connect (thread1, localhost, mysqltest,,); connection thread1; create table t1(eta int(11) not null, tipo int(11), c varchar(255)) engine=innodb; create table t1(eta int(11) not null, tipo int(11), c varchar(255)); insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); Loading Loading @@ -261,7 +272,7 @@ drop table t1; # #connect (thread1, localhost, mysqltest,,); connection thread1; create table t1(eta int(11) not null, tipo int(11), c varchar(255)) engine=innodb; create table t1(eta int(11) not null, tipo int(11), c varchar(255)); insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); Loading Loading @@ -305,7 +316,7 @@ drop table t1; # #connect (thread1, localhost, mysqltest,,); connection thread1; create table t1(eta int(11) not null, tipo int(11), c varchar(255)) engine=innodb; create table t1(eta int(11) not null, tipo int(11), c varchar(255)); insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); Loading
mysql-test/t/innodb-deadlock.test→mysql-test/include/deadlock.inc +147 −0 Original line number Diff line number Diff line -- source include/have_innodb.inc # Can't test this with embedded server -- source include/not_embedded.inc # include/deadlock.inc # # The variable # $engine_type -- storage engine to be tested # has to be set before sourcing this script. # # Last update: # 2006-07-26 ML refactoring + print when connection is switched # old name was t/innodb-deadlock.test # main code went into include/deadlock.inc # --echo # Establish connection con1 (user=root) connect (con1,localhost,root,,); --echo # Establish connection con2 (user=root) connect (con2,localhost,root,,); --disable_warnings Loading @@ -13,29 +23,34 @@ drop table if exists t1,t2; # Testing of FOR UPDATE # --echo # Switch to connection con1 connection con1; create table t1 (id integer, x integer) engine=INNODB; eval create table t1 (id integer, x integer) engine = $engine_type; insert into t1 values(0, 0); set autocommit=0; SELECT * from t1 where id = 0 FOR UPDATE; --echo # Switch to connection con2 connection con2; set autocommit=0; # The following query should hang because con1 is locking the page # The following query should hang because con1 is locking the record --send update t1 set x=2 where id = 0; --sleep 2 --echo # Switch to connection con1 connection con1; update t1 set x=1 where id = 0; select * from t1; commit; --echo # Switch to connection con2 connection con2; reap; commit; --echo # Switch to connection con1 connection con1; select * from t1; commit; Loading @@ -45,9 +60,10 @@ drop table t1; # Testing of FOR UPDATE # --echo # Switch to connection con1 connection con1; create table t1 (id integer, x integer) engine=INNODB; create table t2 (b integer, a integer) engine=INNODB; eval create table t1 (id integer, x integer) engine = $engine_type; eval create table t2 (b integer, a integer) engine = $engine_type; insert into t1 values(0, 0), (300, 300); insert into t2 values(0, 10), (1, 20), (2, 30); commit; Loading @@ -57,61 +73,75 @@ update t2 set a=100 where b=(SELECT x from t1 where id = b FOR UPDATE); select * from t2; select * from t1; --echo # Switch to connection con2 connection con2; set autocommit=0; # The following query should hang because con1 is locking the page # The following query should hang because con1 is locking the record --send update t1 set x=2 where id = 0; --sleep 2 --echo # Switch to connection con1 connection con1; update t1 set x=1 where id = 0; select * from t1; commit; --echo # Switch to connection con2 connection con2; reap; commit; --echo # Switch to connection con1 connection con1; select * from t1; commit; drop table t1, t2; create table t1 (id integer, x integer) engine=INNODB; create table t2 (b integer, a integer) engine=INNODB; eval create table t1 (id integer, x integer) engine = $engine_type; eval create table t2 (b integer, a integer) engine = $engine_type; insert into t1 values(0, 0), (300, 300); insert into t2 values(0, 0), (1, 20), (2, 30); commit; --echo # Switch to connection con1 connection con1; select a,b from t2 UNION SELECT id, x from t1 FOR UPDATE; select * from t2; select * from t1; --echo # Switch to connection con2 connection con2; # The following query should hang because con1 is locking the page # The following query should hang because con1 is locking the record update t2 set a=2 where b = 0; select * from t2; --send update t1 set x=2 where id = 0; --sleep 2 --echo # Switch to connection con1 connection con1; update t1 set x=1 where id = 0; select * from t1; commit; --echo # Switch to connection con2 connection con2; reap; commit; --echo # Switch to connection con1 connection con1; select * from t1; commit; # Cleanup --echo # Switch to connection default + disconnect con1 and con2 connection default; disconnect con1; disconnect con2; drop table t1, t2; # End of 4.1 tests
mysql-test/t/handler.test→mysql-test/include/handler.inc +45 −7 Original line number Diff line number Diff line # include/handler.inc # # The variables # $engine_type -- storage engine to be tested # $other_engine_type -- storage engine <> $engine_type # $other_handler_engine_type -- storage engine <> $engine_type, if possible # 1. $other_handler_engine_type must support handler # 2. $other_handler_engine_type must point to an all # time available storage engine # 2006-08 MySQL 5.1 MyISAM and MEMORY only # have to be set before sourcing this script. -- source include/not_embedded.inc # # test of HANDLER ... # # Last update: # 2006-07-31 ML test refactored (MySQL 5.1) # code of t/handler.test and t/innodb_handler.test united # main testing code put into include/handler.inc # # should work in embedded server after mysqltest is fixed -- source include/not_embedded.inc eval SET SESSION STORAGE_ENGINE = $engine_type; --disable_warnings drop table if exists t1,t3,t4,t5; Loading Loading @@ -74,6 +89,22 @@ handler t2 read next; handler t2 read last; handler t2 close; handler t1 open; handler t1 read a next; # this used to crash as a bug#5373 handler t1 read a next; handler t1 close; handler t1 open; handler t1 read a prev; # this used to crash as a bug#5373 handler t1 read a prev; handler t1 close; handler t1 open as t2; handler t2 read first; eval alter table t1 engine = $engine_type; --error 1109 handler t2 read first; # # DROP TABLE / ALTER TABLE # Loading @@ -84,7 +115,7 @@ insert into t1 values (17); --error 1109 handler t2 read first; handler t1 open as t2; alter table t1 engine=MyISAM; eval alter table t1 engine=$other_engine_type; --error 1109 handler t2 read first; drop table t1; Loading Loading @@ -303,7 +334,7 @@ insert into t5 values ("t5"); handler t5 open as h5; handler h5 read first limit 9; # close first alter table t1 engine=MyISAM; eval alter table t1 engine=$other_handler_engine_type; --error 1109 handler h1 read first limit 9; handler h2 read first limit 9; Loading @@ -311,7 +342,7 @@ handler h3 read first limit 9; handler h4 read first limit 9; handler h5 read first limit 9; # close last alter table t5 engine=MyISAM; eval alter table t5 engine=$other_handler_engine_type; --error 1109 handler h1 read first limit 9; handler h2 read first limit 9; Loading @@ -320,7 +351,7 @@ handler h4 read first limit 9; --error 1109 handler h5 read first limit 9; # close middle alter table t3 engine=MyISAM; eval alter table t3 engine=$other_handler_engine_type; --error 1109 handler h1 read first limit 9; handler h2 read first limit 9; Loading @@ -338,7 +369,7 @@ handler t1 open as h1_3; handler h1_1 read first limit 9; handler h1_2 read first limit 9; handler h1_3 read first limit 9; alter table t1 engine=MyISAM; eval alter table t1 engine=$engine_type; --error 1109 handler h1_1 read first limit 9; --error 1109 Loading Loading @@ -379,6 +410,13 @@ reap; connection default; drop table t1; CREATE TABLE t1 ( no1 smallint(5) NOT NULL default '0', no2 int(10) NOT NULL default '0', PRIMARY KEY (no1,no2)); INSERT INTO t1 VALUES (1,274),(1,275),(2,6),(2,8),(4,1),(4,2); HANDLER t1 OPEN; HANDLER t1 READ `primary` = (1, 1000); HANDLER t1 READ `primary` PREV; DROP TABLE t1; # End of 4.1 tests # Loading