summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authormonty@mashka.mysql.fi <>2003-09-11 20:24:14 +0300
committermonty@mashka.mysql.fi <>2003-09-11 20:24:14 +0300
commit73f66f68fd9588d89a0dac8457bab8e713ae7a49 (patch)
tree20f0ccc7be8e0d205ea5a00d6ec5f57a14d85d3f /mysql-test
parent45aa92c574e032bcf85b7207732158433e64afd5 (diff)
parent62103fff405545e022c61721c62eec0e5d7d264d (diff)
downloadmariadb-git-73f66f68fd9588d89a0dac8457bab8e713ae7a49.tar.gz
merge with 4.0.15
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/bdb.result31
-rw-r--r--mysql-test/r/grant.result54
-rw-r--r--mysql-test/r/mix_innodb_myisam_binlog.result206
-rw-r--r--mysql-test/r/myisam.result22
-rw-r--r--mysql-test/r/range.result19
-rw-r--r--mysql-test/t/bdb.test13
-rw-r--r--mysql-test/t/grant.test32
-rw-r--r--mysql-test/t/mix_innodb_myisam_binlog.test137
-rw-r--r--mysql-test/t/myisam.test35
-rw-r--r--mysql-test/t/range.test14
10 files changed, 349 insertions, 214 deletions
diff --git a/mysql-test/r/bdb.result b/mysql-test/r/bdb.result
index fd2f7b7e49b..f619775aa97 100644
--- a/mysql-test/r/bdb.result
+++ b/mysql-test/r/bdb.result
@@ -1114,3 +1114,34 @@ a b
select * from t2;
a b
drop table t1,t2;
+create table t1 (x int not null, index(x)) type=bdb;
+insert into t1 values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
+select * from t1 where x <= 10 and x >= 7;
+x
+7
+8
+9
+10
+select * from t1 where x <= 10 and x >= 7 order by x;
+x
+7
+8
+9
+10
+select * from t1 where x <= 10 and x >= 7 order by x desc;
+x
+10
+9
+8
+7
+select * from t1 where x <= 8 and x >= 5 order by x desc;
+x
+8
+7
+6
+5
+select * from t1 where x < 8 and x > 5 order by x desc;
+x
+7
+6
+drop table t1;
diff --git a/mysql-test/r/grant.result b/mysql-test/r/grant.result
index df6f8fe3615..0a54072d260 100644
--- a/mysql-test/r/grant.result
+++ b/mysql-test/r/grant.result
@@ -91,39 +91,39 @@ show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
GRANT SELECT, INSERT, INSERT (a), REFERENCES (a) ON `test`.`t1` TO 'mysqltest_1'@'localhost'
-REVOKE insert,insert (a) on t1 from mysqltest_1@localhost;
-GRANT references on t1 to mysqltest_1@localhost;
+REVOKE select,update,insert,insert (a) on t1 from mysqltest_1@localhost;
show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
-GRANT SELECT, REFERENCES, REFERENCES (a) ON `test`.`t1` TO 'mysqltest_1'@'localhost'
+GRANT REFERENCES (a) ON `test`.`t1` TO 'mysqltest_1'@'localhost'
+GRANT select,references on t1 to mysqltest_1@localhost;
select table_priv,column_priv from mysql.tables_priv where user="mysqltest_1";
table_priv column_priv
Select,References References
-grant all on test.* to user1@localhost with grant option;
-revoke all on test.* from user1@localhost;
-show grants for user1@localhost;
-Grants for user1@localhost
-GRANT USAGE ON *.* TO 'user1'@'localhost'
-GRANT USAGE ON `test`.* TO 'user1'@'localhost' WITH GRANT OPTION
-revoke grant option on test.* from user1@localhost;
-show grants for user1@localhost;
-Grants for user1@localhost
-GRANT USAGE ON *.* TO 'user1'@'localhost'
-grant all on test.t1 to user2@localhost with grant option;
-revoke all on test.t1 from user2@localhost;
-show grants for user2@localhost;
-Grants for user2@localhost
-GRANT USAGE ON *.* TO 'user2'@'localhost'
-GRANT USAGE ON `test`.`t1` TO 'user2'@'localhost' WITH GRANT OPTION
-revoke grant option on test.t1 from user2@localhost;
-show grants for user2@localhost;
-Grants for user2@localhost
-GRANT USAGE ON *.* TO 'user2'@'localhost'
-delete from mysql.user where user='mysqltest_1';
-delete from mysql.db where user='mysqltest_1';
-delete from mysql.tables_priv where user='mysqltest_1';
-delete from mysql.columns_priv where user='mysqltest_1';
+grant all on test.* to mysqltest_3@localhost with grant option;
+revoke all on test.* from mysqltest_3@localhost;
+show grants for mysqltest_3@localhost;
+Grants for mysqltest_3@localhost
+GRANT USAGE ON *.* TO 'mysqltest_3'@'localhost'
+GRANT USAGE ON `test`.* TO 'mysqltest_3'@'localhost' WITH GRANT OPTION
+revoke grant option on test.* from mysqltest_3@localhost;
+show grants for mysqltest_3@localhost;
+Grants for mysqltest_3@localhost
+GRANT USAGE ON *.* TO 'mysqltest_3'@'localhost'
+grant all on test.t1 to mysqltest_2@localhost with grant option;
+revoke all on test.t1 from mysqltest_2@localhost;
+show grants for mysqltest_2@localhost;
+Grants for mysqltest_2@localhost
+GRANT USAGE ON *.* TO 'mysqltest_2'@'localhost'
+GRANT USAGE ON `test`.`t1` TO 'mysqltest_2'@'localhost' WITH GRANT OPTION
+revoke grant option on test.t1 from mysqltest_2@localhost;
+show grants for mysqltest_2@localhost;
+Grants for mysqltest_2@localhost
+GRANT USAGE ON *.* TO 'mysqltest_2'@'localhost'
+delete from mysql.user where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";
+delete from mysql.db where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";
+delete from mysql.tables_priv where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";
+delete from mysql.columns_priv where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";
flush privileges;
drop table t1;
GRANT FILE on mysqltest.* to mysqltest_1@localhost;
diff --git a/mysql-test/r/mix_innodb_myisam_binlog.result b/mysql-test/r/mix_innodb_myisam_binlog.result
index dd9876b4f90..85e92037ada 100644
--- a/mysql-test/r/mix_innodb_myisam_binlog.result
+++ b/mysql-test/r/mix_innodb_myisam_binlog.result
@@ -1,180 +1,180 @@
-drop table if exists ti, tm;
-create table ti (a int) type=innodb;
-create table tm (a int) type=myisam;
+drop table if exists t1, t2;
+create table t1 (a int) type=innodb;
+create table t2 (a int) type=myisam;
reset master;
begin;
-insert into ti values(1);
-insert into tm select * from ti;
+insert into t1 values(1);
+insert into t2 select * from t1;
commit;
show binlog events from 79;
Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use ; BEGIN
-master-bin.000001 119 Query 1 79 use ; insert into ti values(1)
-master-bin.000001 178 Query 1 79 use ; insert into tm select * from ti
-master-bin.000001 244 Query 1 244 use ; COMMIT
-delete from ti;
-delete from tm;
+master-bin.000001 79 Query 1 79 use `test`; BEGIN
+master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(1)
+master-bin.000001 178 Query 1 79 use `test`; insert into t2 select * from t1
+master-bin.000001 244 Query 1 244 use `test`; COMMIT
+delete from t1;
+delete from t2;
reset master;
begin;
-insert into ti values(2);
-insert into tm select * from ti;
+insert into t1 values(2);
+insert into t2 select * from t1;
rollback;
Warning: Some non-transactional changed tables couldn't be rolled back
show binlog events from 79;
Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use ; BEGIN
-master-bin.000001 119 Query 1 79 use ; insert into ti values(2)
-master-bin.000001 178 Query 1 79 use ; insert into tm select * from ti
-master-bin.000001 244 Query 1 244 use ; ROLLBACK
-delete from ti;
-delete from tm;
+master-bin.000001 79 Query 1 79 use `test`; BEGIN
+master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(2)
+master-bin.000001 178 Query 1 79 use `test`; insert into t2 select * from t1
+master-bin.000001 244 Query 1 244 use `test`; ROLLBACK
+delete from t1;
+delete from t2;
reset master;
begin;
-insert into ti values(3);
+insert into t1 values(3);
savepoint my_savepoint;
-insert into ti values(4);
-insert into tm select * from ti;
+insert into t1 values(4);
+insert into t2 select * from t1;
rollback to savepoint my_savepoint;
Warning: Some non-transactional changed tables couldn't be rolled back
commit;
show binlog events from 79;
Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use ; BEGIN
-master-bin.000001 119 Query 1 79 use ; insert into ti values(3)
-master-bin.000001 178 Query 1 79 use ; savepoint my_savepoint
-master-bin.000001 235 Query 1 79 use ; insert into ti values(4)
-master-bin.000001 294 Query 1 79 use ; insert into tm select * from ti
-master-bin.000001 360 Query 1 79 use ; rollback to savepoint my_savepoint
-master-bin.000001 429 Query 1 429 use ; COMMIT
-delete from ti;
-delete from tm;
+master-bin.000001 79 Query 1 79 use `test`; BEGIN
+master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(3)
+master-bin.000001 178 Query 1 79 use `test`; savepoint my_savepoint
+master-bin.000001 235 Query 1 79 use `test`; insert into t1 values(4)
+master-bin.000001 294 Query 1 79 use `test`; insert into t2 select * from t1
+master-bin.000001 360 Query 1 79 use `test`; rollback to savepoint my_savepoint
+master-bin.000001 429 Query 1 429 use `test`; COMMIT
+delete from t1;
+delete from t2;
reset master;
begin;
-insert into ti values(5);
+insert into t1 values(5);
savepoint my_savepoint;
-insert into ti values(6);
-insert into tm select * from ti;
+insert into t1 values(6);
+insert into t2 select * from t1;
rollback to savepoint my_savepoint;
Warning: Some non-transactional changed tables couldn't be rolled back
-insert into ti values(7);
+insert into t1 values(7);
commit;
-select a from ti order by a;
+select a from t1 order by a;
a
5
7
show binlog events from 79;
Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use ; BEGIN
-master-bin.000001 119 Query 1 79 use ; insert into ti values(5)
-master-bin.000001 178 Query 1 79 use ; savepoint my_savepoint
-master-bin.000001 235 Query 1 79 use ; insert into ti values(6)
-master-bin.000001 294 Query 1 79 use ; insert into tm select * from ti
-master-bin.000001 360 Query 1 79 use ; rollback to savepoint my_savepoint
-master-bin.000001 429 Query 1 79 use ; insert into ti values(7)
-master-bin.000001 488 Query 1 488 use ; COMMIT
-delete from ti;
-delete from tm;
+master-bin.000001 79 Query 1 79 use `test`; BEGIN
+master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(5)
+master-bin.000001 178 Query 1 79 use `test`; savepoint my_savepoint
+master-bin.000001 235 Query 1 79 use `test`; insert into t1 values(6)
+master-bin.000001 294 Query 1 79 use `test`; insert into t2 select * from t1
+master-bin.000001 360 Query 1 79 use `test`; rollback to savepoint my_savepoint
+master-bin.000001 429 Query 1 79 use `test`; insert into t1 values(7)
+master-bin.000001 488 Query 1 488 use `test`; COMMIT
+delete from t1;
+delete from t2;
reset master;
select get_lock("a",10);
get_lock("a",10)
1
begin;
-insert into ti values(8);
-insert into tm select * from ti;
+insert into t1 values(8);
+insert into t2 select * from t1;
select get_lock("a",10);
get_lock("a",10)
1
show binlog events from 79;
Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use ; BEGIN
-master-bin.000001 119 Query 1 79 use ; insert into ti values(8)
-master-bin.000001 178 Query 1 79 use ; insert into tm select * from ti
-master-bin.000001 244 Query 1 244 use ; ROLLBACK
-delete from ti;
-delete from tm;
+master-bin.000001 79 Query 1 79 use `test`; BEGIN
+master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(8)
+master-bin.000001 178 Query 1 79 use `test`; insert into t2 select * from t1
+master-bin.000001 244 Query 1 244 use `test`; ROLLBACK
+delete from t1;
+delete from t2;
reset master;
-insert into ti values(9);
-insert into tm select * from ti;
+insert into t1 values(9);
+insert into t2 select * from t1;
show binlog events from 79;
Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use ; insert into ti values(9)
-master-bin.000001 138 Query 1 138 use ; insert into tm select * from ti
-delete from ti;
-delete from tm;
+master-bin.000001 79 Query 1 79 use `test`; insert into t1 values(9)
+master-bin.000001 138 Query 1 138 use `test`; insert into t2 select * from t1
+delete from t1;
+delete from t2;
reset master;
-insert into ti values(10);
+insert into t1 values(10);
begin;
-insert into tm select * from ti;
+insert into t2 select * from t1;
show binlog events from 79;
Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use ; insert into ti values(10)
-master-bin.000001 139 Query 1 139 use ; insert into tm select * from ti
-insert into ti values(11);
+master-bin.000001 79 Query 1 79 use `test`; insert into t1 values(10)
+master-bin.000001 139 Query 1 139 use `test`; insert into t2 select * from t1
+insert into t1 values(11);
commit;
show binlog events from 79;
Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use ; insert into ti values(10)
-master-bin.000001 139 Query 1 139 use ; insert into tm select * from ti
-master-bin.000001 205 Query 1 205 use ; BEGIN
-master-bin.000001 245 Query 1 205 use ; insert into ti values(11)
-master-bin.000001 305 Query 1 305 use ; COMMIT
-alter table tm type=INNODB;
-delete from ti;
-delete from tm;
+master-bin.000001 79 Query 1 79 use `test`; insert into t1 values(10)
+master-bin.000001 139 Query 1 139 use `test`; insert into t2 select * from t1
+master-bin.000001 205 Query 1 205 use `test`; BEGIN
+master-bin.000001 245 Query 1 205 use `test`; insert into t1 values(11)
+master-bin.000001 305 Query 1 305 use `test`; COMMIT
+alter table t2 type=INNODB;
+delete from t1;
+delete from t2;
reset master;
begin;
-insert into ti values(12);
-insert into tm select * from ti;
+insert into t1 values(12);
+insert into t2 select * from t1;
commit;
show binlog events from 79;
Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use ; BEGIN
-master-bin.000001 119 Query 1 79 use ; insert into ti values(12)
-master-bin.000001 179 Query 1 79 use ; insert into tm select * from ti
-master-bin.000001 245 Query 1 245 use ; COMMIT
-delete from ti;
-delete from tm;
+master-bin.000001 79 Query 1 79 use `test`; BEGIN
+master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(12)
+master-bin.000001 179 Query 1 79 use `test`; insert into t2 select * from t1
+master-bin.000001 245 Query 1 245 use `test`; COMMIT
+delete from t1;
+delete from t2;
reset master;
begin;
-insert into ti values(13);
-insert into tm select * from ti;
+insert into t1 values(13);
+insert into t2 select * from t1;
rollback;
show binlog events from 79;
Log_name Pos Event_type Server_id Orig_log_pos Info
-delete from ti;
-delete from tm;
+delete from t1;
+delete from t2;
reset master;
begin;
-insert into ti values(14);
+insert into t1 values(14);
savepoint my_savepoint;
-insert into ti values(15);
-insert into tm select * from ti;
+insert into t1 values(15);
+insert into t2 select * from t1;
rollback to savepoint my_savepoint;
commit;
show binlog events from 79;
Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use ; BEGIN
-master-bin.000001 119 Query 1 79 use ; insert into ti values(14)
-master-bin.000001 179 Query 1 179 use ; COMMIT
-delete from ti;
-delete from tm;
+master-bin.000001 79 Query 1 79 use `test`; BEGIN
+master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(14)
+master-bin.000001 179 Query 1 179 use `test`; COMMIT
+delete from t1;
+delete from t2;
reset master;
begin;
-insert into ti values(16);
+insert into t1 values(16);
savepoint my_savepoint;
-insert into ti values(17);
-insert into tm select * from ti;
+insert into t1 values(17);
+insert into t2 select * from t1;
rollback to savepoint my_savepoint;
-insert into ti values(18);
+insert into t1 values(18);
commit;
-select a from ti order by a;
+select a from t1 order by a;
a
16
18
show binlog events from 79;
Log_name Pos Event_type Server_id Orig_log_pos Info
-master-bin.000001 79 Query 1 79 use ; BEGIN
-master-bin.000001 119 Query 1 79 use ; insert into ti values(16)
-master-bin.000001 179 Query 1 79 use ; insert into ti values(18)
-master-bin.000001 239 Query 1 239 use ; COMMIT
-drop table ti,tm;
+master-bin.000001 79 Query 1 79 use `test`; BEGIN
+master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(16)
+master-bin.000001 179 Query 1 79 use `test`; insert into t1 values(18)
+master-bin.000001 239 Query 1 239 use `test`; COMMIT
+drop table t1,t2;
diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result
index 4fa71dbaecc..49475c9cbec 100644
--- a/mysql-test/r/myisam.result
+++ b/mysql-test/r/myisam.result
@@ -376,6 +376,28 @@ explain select * from t1 use index() where c=1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
drop table t1,t2;
+create table t1 (a int not null auto_increment primary key, b varchar(255));
+insert into t1 (b) values (repeat('a',100)),(repeat('b',100)),(repeat('c',100));
+update t1 set b=repeat(left(b,1),200) where a=1;
+delete from t1 where (a & 1)= 0;
+update t1 set b=repeat('e',200) where a=1;
+flush tables;
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+update t1 set b=repeat(left(b,1),255) where a between 1 and 5;
+update t1 set b=repeat(left(b,1),10) where a between 32 and 43;
+update t1 set b=repeat(left(b,1),2) where a between 64 and 66;
+update t1 set b=repeat(left(b,1),65) where a between 67 and 70;
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+insert into t1 (b) values (repeat('z',100));
+update t1 set b="test" where left(b,1) > 'n';
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+drop table t1;
CREATE TABLE t1 (`a` int(11) NOT NULL default '0', `b` int(11) NOT NULL default '0', UNIQUE KEY `a` USING RTREE (`a`,`b`)) TYPE=MyISAM;
ERROR 42000: This version of MySQL doesn't yet support 'RTREE INDEX'
create table t1 (a int, b varchar(200), c text not null) checksum=1;
diff --git a/mysql-test/r/range.result b/mysql-test/r/range.result
index df84dd55d04..ec090cf4b94 100644
--- a/mysql-test/r/range.result
+++ b/mysql-test/r/range.result
@@ -253,4 +253,23 @@ explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= 0 and t2.x <= t1.y;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref y y 5 const 1 Using where
1 SIMPLE t2 range x x 5 NULL 2 Using where
+explain select count(*) from t1 where x in (1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range x x 5 NULL 1 Using where; Using index
+explain select count(*) from t1 where x in (1,2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range x x 5 NULL 2 Using where; Using index
drop table t1;
+CREATE TABLE t1 (key1 int(11) NOT NULL default '0', KEY i1 (key1), KEY i2 (key1));
+INSERT INTO t1 VALUES (0),(0),(1),(1);
+CREATE TABLE t2 (keya int(11) NOT NULL default '0', KEY j1 (keya));
+INSERT INTO t2 VALUES (0),(0),(1),(1),(2),(2);
+explain select * from t1, t2 where (t1.key1 <t2.keya + 1) and t2.keya=3;
+table type possible_keys key key_len ref rows Extra
+t2 ref j1 j1 4 const 1 Using where; Using index
+t1 ALL i1,i2 NULL NULL NULL 4 Range checked for each record (index map: 3)
+explain select * from t1 force index(i2), t2 where (t1.key1 <t2.keya + 1) and t2.keya=3;
+table type possible_keys key key_len ref rows Extra
+t2 ref j1 j1 4 const 1 Using where; Using index
+t1 ALL i2 NULL NULL NULL 4 Range checked for each record (index map: 2)
+DROP TABLE t1,t2;
diff --git a/mysql-test/t/bdb.test b/mysql-test/t/bdb.test
index 27755e51b7f..a0fbc56a9da 100644
--- a/mysql-test/t/bdb.test
+++ b/mysql-test/t/bdb.test
@@ -776,3 +776,16 @@ select * from t1;
select * from t2;
select * from t2;
drop table t1,t2;
+
+#
+# The bug #971
+#
+
+create table t1 (x int not null, index(x)) type=bdb;
+insert into t1 values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
+select * from t1 where x <= 10 and x >= 7;
+select * from t1 where x <= 10 and x >= 7 order by x;
+select * from t1 where x <= 10 and x >= 7 order by x desc;
+select * from t1 where x <= 8 and x >= 5 order by x desc;
+select * from t1 where x < 8 and x > 5 order by x desc;
+drop table t1;
diff --git a/mysql-test/t/grant.test b/mysql-test/t/grant.test
index 55d2d9f3848..78221fa4e40 100644
--- a/mysql-test/t/grant.test
+++ b/mysql-test/t/grant.test
@@ -65,24 +65,24 @@ show grants for mysqltest_1@localhost;
select table_priv,column_priv from mysql.tables_priv where user="mysqltest_1";
REVOKE select (a), update on t1 from mysqltest_1@localhost;
show grants for mysqltest_1@localhost;
-REVOKE insert,insert (a) on t1 from mysqltest_1@localhost;
-GRANT references on t1 to mysqltest_1@localhost;
+REVOKE select,update,insert,insert (a) on t1 from mysqltest_1@localhost;
show grants for mysqltest_1@localhost;
+GRANT select,references on t1 to mysqltest_1@localhost;
select table_priv,column_priv from mysql.tables_priv where user="mysqltest_1";
-grant all on test.* to user1@localhost with grant option;
-revoke all on test.* from user1@localhost;
-show grants for user1@localhost;
-revoke grant option on test.* from user1@localhost;
-show grants for user1@localhost;
-grant all on test.t1 to user2@localhost with grant option;
-revoke all on test.t1 from user2@localhost;
-show grants for user2@localhost;
-revoke grant option on test.t1 from user2@localhost;
-show grants for user2@localhost;
-delete from mysql.user where user='mysqltest_1';
-delete from mysql.db where user='mysqltest_1';
-delete from mysql.tables_priv where user='mysqltest_1';
-delete from mysql.columns_priv where user='mysqltest_1';
+grant all on test.* to mysqltest_3@localhost with grant option;
+revoke all on test.* from mysqltest_3@localhost;
+show grants for mysqltest_3@localhost;
+revoke grant option on test.* from mysqltest_3@localhost;
+show grants for mysqltest_3@localhost;
+grant all on test.t1 to mysqltest_2@localhost with grant option;
+revoke all on test.t1 from mysqltest_2@localhost;
+show grants for mysqltest_2@localhost;
+revoke grant option on test.t1 from mysqltest_2@localhost;
+show grants for mysqltest_2@localhost;
+delete from mysql.user where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";
+delete from mysql.db where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";
+delete from mysql.tables_priv where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";
+delete from mysql.columns_priv where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";
flush privileges;
drop table t1;
diff --git a/mysql-test/t/mix_innodb_myisam_binlog.test b/mysql-test/t/mix_innodb_myisam_binlog.test
index 240aaefb349..be45c2c3133 100644
--- a/mysql-test/t/mix_innodb_myisam_binlog.test
+++ b/mysql-test/t/mix_innodb_myisam_binlog.test
@@ -1,83 +1,86 @@
# Check that binlog is ok when a transaction mixes updates to InnoDB and
-# MyISAM. It would be nice to make this a replication test, but in 4.0 the slave
-# is always with --skip-innodb in the testsuite. I (Guilhem) however did some
-# tests manually on a slave; tables are replicated fine and Exec_master_log_pos
-# advances as expected.
+# MyISAM.
+# It would be nice to make this a replication test, but in 4.0 the
+# slave is always with --skip-innodb in the testsuite. I (Guilhem) however
+# did some tests manually on a slave; tables are replicated fine and
+# Exec_master_log_pos advances as expected.
-- source include/have_innodb.inc
+--disable_warnings
+drop table if exists t1, t2;
+--enable_warnings
+
connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
connection con1;
-
-drop table if exists ti, tm;
-create table ti (a int) type=innodb;
-create table tm (a int) type=myisam;
+create table t1 (a int) type=innodb;
+create table t2 (a int) type=myisam;
reset master;
begin;
-insert into ti values(1);
-insert into tm select * from ti;
+insert into t1 values(1);
+insert into t2 select * from t1;
commit;
show binlog events from 79;
-delete from ti;
-delete from tm;
+delete from t1;
+delete from t2;
reset master;
begin;
-insert into ti values(2);
-insert into tm select * from ti;
-# should say some changes to non-transactional tables couldn't be rolled back
+insert into t1 values(2);
+insert into t2 select * from t1;
+# should say some changes to non-transact1onal tables couldn't be rolled back
--error 1196
rollback;
show binlog events from 79;
-delete from ti;
-delete from tm;
+delete from t1;
+delete from t2;
reset master;
begin;
-insert into ti values(3);
+insert into t1 values(3);
savepoint my_savepoint;
-insert into ti values(4);
-insert into tm select * from ti;
+insert into t1 values(4);
+insert into t2 select * from t1;
--error 1196
rollback to savepoint my_savepoint;
commit;
show binlog events from 79;
-delete from ti;
-delete from tm;
+delete from t1;
+delete from t2;
reset master;
begin;
-insert into ti values(5);
+insert into t1 values(5);
savepoint my_savepoint;
-insert into ti values(6);
-insert into tm select * from ti;
+insert into t1 values(6);
+insert into t2 select * from t1;
--error 1196
rollback to savepoint my_savepoint;
-insert into ti values(7);
+insert into t1 values(7);
commit;
-select a from ti order by a; # check that savepoints work :)
+select a from t1 order by a; # check that savepoints work :)
show binlog events from 79;
# and when ROLLBACK is not explicit?
-delete from ti;
-delete from tm;
+delete from t1;
+delete from t2;
reset master;
select get_lock("a",10);
begin;
-insert into ti values(8);
-insert into tm select * from ti;
+insert into t1 values(8);
+insert into t2 select * from t1;
disconnect con1;
connection con2;
@@ -89,87 +92,87 @@ connection con2;
select get_lock("a",10);
show binlog events from 79;
-# and when not in a transaction?
-delete from ti;
-delete from tm;
+# and when not in a transact1on?
+delete from t1;
+delete from t2;
reset master;
-insert into ti values(9);
-insert into tm select * from ti;
+insert into t1 values(9);
+insert into t2 select * from t1;
show binlog events from 79;
-# Check that when the query updating the MyISAM table is the first in the
-# transaction, we log it immediately.
-delete from ti;
-delete from tm;
+# Check that when the query updat1ng the MyISAM table is the first in the
+# transact1on, we log it immediately.
+delete from t1;
+delete from t2;
reset master;
-insert into ti values(10); # first make ti non-empty
+insert into t1 values(10); # first make t1 non-empty
begin;
-insert into tm select * from ti;
+insert into t2 select * from t1;
show binlog events from 79;
-insert into ti values(11);
+insert into t1 values(11);
commit;
show binlog events from 79;
-# Check that things work like before this BEGIN/ROLLBACK code was added, when tm
-# is INNODB
+# Check that things work like before this BEGIN/ROLLBACK code was added,
+# when t2 is INNODB
-alter table tm type=INNODB;
+alter table t2 type=INNODB;
-delete from ti;
-delete from tm;
+delete from t1;
+delete from t2;
reset master;
begin;
-insert into ti values(12);
-insert into tm select * from ti;
+insert into t1 values(12);
+insert into t2 select * from t1;
commit;
show binlog events from 79;
-delete from ti;
-delete from tm;
+delete from t1;
+delete from t2;
reset master;
begin;
-insert into ti values(13);
-insert into tm select * from ti;
+insert into t1 values(13);
+insert into t2 select * from t1;
rollback;
show binlog events from 79;
-delete from ti;
-delete from tm;
+delete from t1;
+delete from t2;
reset master;
begin;
-insert into ti values(14);
+insert into t1 values(14);
savepoint my_savepoint;
-insert into ti values(15);
-insert into tm select * from ti;
+insert into t1 values(15);
+insert into t2 select * from t1;
rollback to savepoint my_savepoint;
commit;
show binlog events from 79;
-delete from ti;
-delete from tm;
+delete from t1;
+delete from t2;
reset master;
begin;
-insert into ti values(16);
+insert into t1 values(16);
savepoint my_savepoint;
-insert into ti values(17);
-insert into tm select * from ti;
+insert into t1 values(17);
+insert into t2 select * from t1;
rollback to savepoint my_savepoint;
-insert into ti values(18);
+insert into t1 values(18);
commit;
-select a from ti order by a; # check that savepoints work :)
+select a from t1 order by a; # check that savepoints work :)
show binlog events from 79;
-drop table ti,tm;
+drop table t1,t2;
diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test
index 541f2be65d5..8c43ce1937f 100644
--- a/mysql-test/t/myisam.test
+++ b/mysql-test/t/myisam.test
@@ -363,6 +363,40 @@ explain select * from t1 use index() where c=1;
drop table t1,t2;
#
+# Test bug when updating a split dynamic row where keys are not changed
+#
+
+create table t1 (a int not null auto_increment primary key, b varchar(255));
+insert into t1 (b) values (repeat('a',100)),(repeat('b',100)),(repeat('c',100));
+update t1 set b=repeat(left(b,1),200) where a=1;
+delete from t1 where (a & 1)= 0;
+update t1 set b=repeat('e',200) where a=1;
+flush tables;
+check table t1;
+
+#
+# check updating with keys
+#
+
+disable_query_log;
+let $1 = 100;
+while ($1)
+{
+ eval insert into t1 (b) values (repeat(char(($1 & 32)+65), $1));
+ dec $1;
+}
+enable_query_log;
+update t1 set b=repeat(left(b,1),255) where a between 1 and 5;
+update t1 set b=repeat(left(b,1),10) where a between 32 and 43;
+update t1 set b=repeat(left(b,1),2) where a between 64 and 66;
+update t1 set b=repeat(left(b,1),65) where a between 67 and 70;
+check table t1;
+insert into t1 (b) values (repeat('z',100));
+update t1 set b="test" where left(b,1) > 'n';
+check table t1;
+drop table t1;
+
+#
# Test RTREE index
#
--error 1235
@@ -380,4 +414,3 @@ checksum table t1, t2, t3;
checksum table t1, t2, t3 extended;
#show table status;
drop table t1,t2;
-
diff --git a/mysql-test/t/range.test b/mysql-test/t/range.test
index 70780a0676a..e8f51344ce1 100644
--- a/mysql-test/t/range.test
+++ b/mysql-test/t/range.test
@@ -201,5 +201,19 @@ explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= t1.y-1 and t2.x <= t1
# equation propagation
explain select * from t1, t1 t2 where t1.y = 2 and t2.x between 0 and t1.y;
explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= 0 and t2.x <= t1.y;
+# testing IN
+explain select count(*) from t1 where x in (1);
+explain select count(*) from t1 where x in (1,2);
drop table t1;
+#
+# bug #1172
+#
+CREATE TABLE t1 (key1 int(11) NOT NULL default '0', KEY i1 (key1), KEY i2 (key1));
+INSERT INTO t1 VALUES (0),(0),(1),(1);
+CREATE TABLE t2 (keya int(11) NOT NULL default '0', KEY j1 (keya));
+INSERT INTO t2 VALUES (0),(0),(1),(1),(2),(2);
+explain select * from t1, t2 where (t1.key1 <t2.keya + 1) and t2.keya=3;
+explain select * from t1 force index(i2), t2 where (t1.key1 <t2.keya + 1) and t2.keya=3;
+DROP TABLE t1,t2;
+