Current Path : /home/usr.opt/mysql57/mysql-test/suite/ndb/r/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : /home/usr.opt/mysql57/mysql-test/suite/ndb/r/ndb_blob.result |
drop table if exists t1; drop database if exists test2; set autocommit=0; create table t1 ( a int not null primary key, b text not null, c int not null, d longblob, key (c) ) engine=ndbcluster; set @x0 = '01234567012345670123456701234567'; set @x0 = concat(@x0,@x0,@x0,@x0,@x0,@x0,@x0,@x0); set @b1 = 'b1'; set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1); set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1); set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1); set @b1 = concat(@b1,@x0); set @d1 = 'dd1'; set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); set @b2 = 'b2'; set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2); set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2); set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2); set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2); set @d2 = 'dd2'; set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); select length(@x0),length(@b1),length(@d1) from dual; length(@x0) length(@b1) length(@d1) 256 2256 3000 select length(@x0),length(@b2),length(@d2) from dual; length(@x0) length(@b2) length(@d2) 256 20000 30000 insert into t1 values(1,@b1,111,@d1); insert into t1 values(2,@b2,222,@d2); commit; explain select * from t1 where a = 1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p0,p1,p2,p3,p4,p5,p6,p7 eq_ref PRIMARY PRIMARY 4 const # # NULL Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d` from `test`.`t1` where (`test`.`t1`.`a` = 1) select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3) from t1 where a=1; a length(b) substr(b,1+2*900,2) length(d) substr(d,1+3*900,3) 1 2256 b1 3000 dd1 select a,length(b),substr(b,1+2*9000,2),length(d),substr(d,1+3*9000,3) from t1 where a=2; a length(b) substr(b,1+2*9000,2) length(d) substr(d,1+3*9000,3) 2 20000 b2 30000 dd2 update t1 set b=@b2,d=@d2 where a=1; update t1 set b=@b1,d=@d1 where a=2; commit; select a,length(b),substr(b,1+2*9000,2),length(d),substr(d,1+3*9000,3) from t1 where a=1; a length(b) substr(b,1+2*9000,2) length(d) substr(d,1+3*9000,3) 1 20000 b2 30000 dd2 select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3) from t1 where a=2; a length(b) substr(b,1+2*900,2) length(d) substr(d,1+3*900,3) 2 2256 b1 3000 dd1 update t1 set b=concat(b,b),d=concat(d,d) where a=1; update t1 set b=concat(b,b),d=concat(d,d) where a=2; commit; select a,length(b),substr(b,1+4*9000,2),length(d),substr(d,1+6*9000,3) from t1 where a=1; a length(b) substr(b,1+4*9000,2) length(d) substr(d,1+6*9000,3) 1 40000 b2 60000 dd2 select a,length(b),substr(b,1+4*900,2),length(d),substr(d,1+6*900,3) from t1 where a=2; a length(b) substr(b,1+4*900,2) length(d) substr(d,1+6*900,3) 2 4512 b1 6000 dd1 update t1 set d=null where a=1; commit; select a from t1 where d is null; a 1 delete from t1 where a=45567; commit; delete from t1 where a=1; delete from t1 where a=2; commit; select count(*) from t1; count(*) 0 replace t1 set a=1,b=@b1,c=111,d=@d1; replace t1 set a=2,b=@b2,c=222,d=@d2; commit; explain select * from t1 where a = 1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p0,p1,p2,p3,p4,p5,p6,p7 eq_ref PRIMARY PRIMARY 4 const # # NULL Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d` from `test`.`t1` where (`test`.`t1`.`a` = 1) select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3) from t1 where a=1; a length(b) substr(b,1+2*900,2) length(d) substr(d,1+3*900,3) 1 2256 b1 3000 dd1 select a,length(b),substr(b,1+2*9000,2),length(d),substr(d,1+3*9000,3) from t1 where a=2; a length(b) substr(b,1+2*9000,2) length(d) substr(d,1+3*9000,3) 2 20000 b2 30000 dd2 replace t1 set a=1,b=@b2,c=111,d=@d2; replace t1 set a=2,b=@b1,c=222,d=@d1; commit; select a,length(b),substr(b,1+2*9000,2),length(d),substr(d,1+3*9000,3) from t1 where a=1; a length(b) substr(b,1+2*9000,2) length(d) substr(d,1+3*9000,3) 1 20000 b2 30000 dd2 select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3) from t1 where a=2; a length(b) substr(b,1+2*900,2) length(d) substr(d,1+3*900,3) 2 2256 b1 3000 dd1 replace t1 set a=1,b=concat(@b2,@b2),c=111,d=concat(@d2,@d2); replace t1 set a=2,b=concat(@b1,@b1),c=222,d=concat(@d1,@d1); commit; select a,length(b),substr(b,1+4*9000,2),length(d),substr(d,1+6*9000,3) from t1 where a=1; a length(b) substr(b,1+4*9000,2) length(d) substr(d,1+6*9000,3) 1 40000 b2 60000 dd2 select a,length(b),substr(b,1+4*900,2),length(d),substr(d,1+6*900,3) from t1 where a=2; a length(b) substr(b,1+4*900,2) length(d) substr(d,1+6*900,3) 2 4512 b1 6000 dd1 replace t1 set a=1,b='xyz',c=111,d=null; commit; select a,b from t1 where d is null; a b 1 xyz delete from t1 where a=1; delete from t1 where a=2; commit; select count(*) from t1; count(*) 0 insert into t1 values(1,@b1,111,@d1); insert into t1 values(2,@b2,222,@d2); commit; explain select * from t1 where c = 111; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p0,p1,p2,p3,p4,p5,p6,p7 ref c c 4 const # # NULL Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d` from `test`.`t1` where (`test`.`t1`.`c` = 111) select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3) from t1 where c=111; a length(b) substr(b,1+2*900,2) length(d) substr(d,1+3*900,3) 1 2256 b1 3000 dd1 select a,length(b),substr(b,1+2*9000,2),length(d),substr(d,1+3*9000,3) from t1 where c=222; a length(b) substr(b,1+2*9000,2) length(d) substr(d,1+3*9000,3) 2 20000 b2 30000 dd2 update t1 set b=@b2,d=@d2 where c=111; update t1 set b=@b1,d=@d1 where c=222; commit; select a,length(b),substr(b,1+2*9000,2),length(d),substr(d,1+3*9000,3) from t1 where c=111; a length(b) substr(b,1+2*9000,2) length(d) substr(d,1+3*9000,3) 1 20000 b2 30000 dd2 select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3) from t1 where c=222; a length(b) substr(b,1+2*900,2) length(d) substr(d,1+3*900,3) 2 2256 b1 3000 dd1 update t1 set d=null where c=111; commit; select a from t1 where d is null; a 1 delete from t1 where c=111; delete from t1 where c=222; commit; select count(*) from t1; count(*) 0 insert into t1 values(1,'b1',111,'dd1'); insert into t1 values(2,'b2',222,'dd2'); insert into t1 values(3,'b3',333,'dd3'); insert into t1 values(4,'b4',444,'dd4'); insert into t1 values(5,'b5',555,'dd5'); insert into t1 values(6,'b6',666,'dd6'); insert into t1 values(7,'b7',777,'dd7'); insert into t1 values(8,'b8',888,'dd8'); insert into t1 values(9,'b9',999,'dd9'); commit; explain select * from t1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p0,p1,p2,p3,p4,p5,p6,p7 ALL NULL NULL NULL NULL # # NULL Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d` from `test`.`t1` select * from t1 order by a; a b c d 1 b1 111 dd1 2 b2 222 dd2 3 b3 333 dd3 4 b4 444 dd4 5 b5 555 dd5 6 b6 666 dd6 7 b7 777 dd7 8 b8 888 dd8 9 b9 999 dd9 update t1 set b=concat(a,'x',b),d=concat(a,'x',d); commit; select * from t1 order by a; a b c d 1 1xb1 111 1xdd1 2 2xb2 222 2xdd2 3 3xb3 333 3xdd3 4 4xb4 444 4xdd4 5 5xb5 555 5xdd5 6 6xb6 666 6xdd6 7 7xb7 777 7xdd7 8 8xb8 888 8xdd8 9 9xb9 999 9xdd9 delete from t1; commit; select count(*) from t1; count(*) 0 insert into t1 values(1,@b1,111,@d1); insert into t1 values(2,@b2,222,@d2); commit; explain select * from t1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p0,p1,p2,p3,p4,p5,p6,p7 ALL NULL NULL NULL NULL # # NULL Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d` from `test`.`t1` select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3) from t1 order by a; a length(b) substr(b,1+2*900,2) length(d) substr(d,1+3*900,3) 1 2256 b1 3000 dd1 2 20000 b2 30000 dd2 update t1 set b=concat(b,b),d=concat(d,d); commit; select a,length(b),substr(b,1+4*9000,2),length(d),substr(d,1+6*9000,3) from t1 order by a; a length(b) substr(b,1+4*9000,2) length(d) substr(d,1+6*9000,3) 1 4512 6000 2 40000 b2 60000 dd2 delete from t1; commit; select count(*) from t1; count(*) 0 insert into t1 values(1,'b1',111,'dd1'); insert into t1 values(2,'b2',222,'dd2'); insert into t1 values(3,'b3',333,'dd3'); insert into t1 values(4,'b4',444,'dd4'); insert into t1 values(5,'b5',555,'dd5'); insert into t1 values(6,'b6',666,'dd6'); insert into t1 values(7,'b7',777,'dd7'); insert into t1 values(8,'b8',888,'dd8'); insert into t1 values(9,'b9',999,'dd9'); commit; explain select * from t1 where c >= 100 order by a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p0,p1,p2,p3,p4,p5,p6,p7 range c c 4 NULL # # Using where with pushed condition (`test`.`t1`.`c` >= 100); Using filesort Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d` from `test`.`t1` where (`test`.`t1`.`c` >= 100) order by `test`.`t1`.`a` select * from t1 where c >= 100 order by a; a b c d 1 b1 111 dd1 2 b2 222 dd2 3 b3 333 dd3 4 b4 444 dd4 5 b5 555 dd5 6 b6 666 dd6 7 b7 777 dd7 8 b8 888 dd8 9 b9 999 dd9 update t1 set b=concat(a,'x',b),d=concat(a,'x',d) where c >= 100; commit; select * from t1 where c >= 100 order by a; a b c d 1 1xb1 111 1xdd1 2 2xb2 222 2xdd2 3 3xb3 333 3xdd3 4 4xb4 444 4xdd4 5 5xb5 555 5xdd5 6 6xb6 666 6xdd6 7 7xb7 777 7xdd7 8 8xb8 888 8xdd8 9 9xb9 999 9xdd9 delete from t1 where c >= 100; commit; select count(*) from t1; count(*) 0 insert into t1 values(1,@b1,111,@d1); insert into t1 values(2,@b2,222,@d2); commit; explain select * from t1 where c >= 100 order by a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p0,p1,p2,p3,p4,p5,p6,p7 index c PRIMARY 4 NULL # # Using where with pushed condition (`test`.`t1`.`c` >= 100) Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,`test`.`t1`.`d` AS `d` from `test`.`t1` where (`test`.`t1`.`c` >= 100) order by `test`.`t1`.`a` select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3) from t1 where c >= 100 order by a; a length(b) substr(b,1+2*900,2) length(d) substr(d,1+3*900,3) 1 2256 b1 3000 dd1 2 20000 b2 30000 dd2 update t1 set b=concat(b,b),d=concat(d,d); commit; select a,length(b),substr(b,1+4*9000,2),length(d),substr(d,1+6*9000,3) from t1 where c >= 100 order by a; a length(b) substr(b,1+4*9000,2) length(d) substr(d,1+6*9000,3) 1 4512 6000 2 40000 b2 60000 dd2 delete from t1 where c >= 100; commit; select count(*) from t1; count(*) 0 insert into t1 values(1,@b1,111,@d1); insert into t1 values(2,@b2,222,@d2); select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3) from t1 where a = 0; a length(b) substr(b,1+2*900,2) length(d) substr(d,1+3*900,3) select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3) from t1 where a = 1; a length(b) substr(b,1+2*900,2) length(d) substr(d,1+3*900,3) 1 2256 b1 3000 dd1 select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3) from t1 where a = 2; a length(b) substr(b,1+2*900,2) length(d) substr(d,1+3*900,3) 2 20000 b2 30000 dd2 select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3) from t1 order by a; a length(b) substr(b,1+2*900,2) length(d) substr(d,1+3*900,3) 1 2256 b1 3000 dd1 2 20000 b2 30000 dd2 rollback; select count(*) from t1; count(*) 0 insert into t1 values(1,'b1',111,'dd1'); insert into t1 values(2,'b2',222,'dd2'); insert into t1 values(3,'b3',333,'dd3'); insert into t1 values(4,'b4',444,'dd4'); insert into t1 values(5,'b5',555,'dd5'); insert into t1 values(6,'b6',666,'dd6'); insert into t1 values(7,'b7',777,'dd7'); insert into t1 values(8,'b8',888,'dd8'); insert into t1 values(9,'b9',999,'dd9'); commit; select * from t1 order by a; a b c d 1 b1 111 dd1 2 b2 222 dd2 3 b3 333 dd3 4 b4 444 dd4 5 b5 555 dd5 6 b6 666 dd6 7 b7 777 dd7 8 b8 888 dd8 9 b9 999 dd9 alter table t1 add x int; select * from t1 order by a; a b c d x 1 b1 111 dd1 NULL 2 b2 222 dd2 NULL 3 b3 333 dd3 NULL 4 b4 444 dd4 NULL 5 b5 555 dd5 NULL 6 b6 666 dd6 NULL 7 b7 777 dd7 NULL 8 b8 888 dd8 NULL 9 b9 999 dd9 NULL alter table t1 drop x; select * from t1 order by a; a b c d 1 b1 111 dd1 2 b2 222 dd2 3 b3 333 dd3 4 b4 444 dd4 5 b5 555 dd5 6 b6 666 dd6 7 b7 777 dd7 8 b8 888 dd8 9 b9 999 dd9 create database test2; use test2; CREATE TABLE t2 ( a bigint unsigned NOT NULL PRIMARY KEY, b int unsigned not null, c int unsigned ) engine=ndbcluster; insert into t2 values (1,1,1),(2,2,2); select * from test.t1,t2 where test.t1.a = t2.a order by test.t1.a; a b c d a b c 1 b1 111 dd1 1 1 1 2 b2 222 dd2 2 2 2 drop table t2; use test; select * from t1 order by a; a b c d 1 b1 111 dd1 2 b2 222 dd2 3 b3 333 dd3 4 b4 444 dd4 5 b5 555 dd5 6 b6 666 dd6 7 b7 777 dd7 8 b8 888 dd8 9 b9 999 dd9 alter table t1 add x int; select * from t1 order by a; a b c d x 1 b1 111 dd1 NULL 2 b2 222 dd2 NULL 3 b3 333 dd3 NULL 4 b4 444 dd4 NULL 5 b5 555 dd5 NULL 6 b6 666 dd6 NULL 7 b7 777 dd7 NULL 8 b8 888 dd8 NULL 9 b9 999 dd9 NULL alter table t1 drop x; select * from t1 order by a; a b c d 1 b1 111 dd1 2 b2 222 dd2 3 b3 333 dd3 4 b4 444 dd4 5 b5 555 dd5 6 b6 666 dd6 7 b7 777 dd7 8 b8 888 dd8 9 b9 999 dd9 drop table t1; drop database test2; set autocommit=0; create table t1 ( a int not null primary key, b tinytext ) engine=ndbcluster; insert into t1 values(1, 'x'); update t1 set b = 'y'; select * from t1; a b 1 y delete from t1; select * from t1; a b commit; replace t1 set a=2, b='y'; select * from t1; a b 2 y delete from t1; select * from t1; a b drop table t1; set autocommit=0; create table t1 ( a int not null primary key, b text not null ) engine=ndbcluster; insert into t1 values(1, ''); select * from t1; a b 1 commit; begin; insert into t1 values (3, repeat("w", 8000)); insert into t1 values (2, repeat("x", 10000)), (3, repeat("y", 5000)), (4, repeat("z", 15000)); ERROR HY000: Lock wait timeout exceeded; try restarting transaction rollback; commit; drop table t1; set autocommit=1; use test; CREATE TABLE t1 ( a int, b text, PRIMARY KEY (a) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO t1 VALUES (1,'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'); INSERT INTO t1 VALUES (2,'BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB'); select * from t1 order by a; a b 1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB alter table t1 engine=ndb; select * from t1 order by a; a b 1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB set autocommit=1; alter table t1 engine=myisam; select * from t1 order by a; a b 1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB drop table t1; create table t1 ( id int(11) unsigned primary key NOT NULL auto_increment, msg text NOT NULL ) engine=ndbcluster default charset=utf8; insert into t1 (msg) values( 'Tries to validate (8 byte length + inline bytes) as UTF8 :( Fast fix: removed validation for Text. It is not yet indexable so bad data will not crash kernel.'); select * from t1; id msg 1 Tries to validate (8 byte length + inline bytes) as UTF8 :( Fast fix: removed validation for Text. It is not yet indexable so bad data will not crash kernel. drop table t1; create table t1 ( a int primary key not null auto_increment, b text ) engine=ndbcluster; select count(*) from t1; count(*) 500 truncate t1; select count(*) from t1; count(*) 0 drop table t1; create table t1 ( a varchar(40) not null, b mediumint not null, t text, c varchar(2) not null, d bigint not null, primary key (a,b,c), key (c,a), unique key (d) ) engine=ndb; insert into t1 (a,b,c,d,t) values ('a',1110,'a',1,@v1); insert into t1 (a,b,c,d,t) values ('b',1110,'a',2,@v2); insert into t1 (a,b,c,d,t) values ('a',1110,'b',3,@v3); insert into t1 (a,b,c,d,t) values ('b',1110,'b',4,@v4); select a,b,c,d,sha1(t) from t1 order by c,a; a b c d sha1(t) a 1110 a 1 558a30713786aa72f66abc1e6a521d55aacdeeb5 b 1110 a 2 b238654911689bfb626a3ef9dba4a1ca074e6a5e a 1110 b 3 2b6515f29c20b8e9e17cc597527e516c0de8d612 b 1110 b 4 NULL select a,b,c,d,sha1(t) from t1 where a='a' and b=1110 and c='a'; a b c d sha1(t) a 1110 a 1 558a30713786aa72f66abc1e6a521d55aacdeeb5 select a,b,c,d,sha1(t) from t1 where a='a' and b=1110 and c='b'; a b c d sha1(t) a 1110 b 3 2b6515f29c20b8e9e17cc597527e516c0de8d612 update t1 set t=@v4 where a='b' and b=1110 and c='a'; update t1 set t=@v2 where a='b' and b=1110 and c='b'; select a,b,c,d,sha1(t) from t1 order by c,a; a b c d sha1(t) a 1110 a 1 558a30713786aa72f66abc1e6a521d55aacdeeb5 b 1110 a 2 NULL a 1110 b 3 2b6515f29c20b8e9e17cc597527e516c0de8d612 b 1110 b 4 b238654911689bfb626a3ef9dba4a1ca074e6a5e update t1 set t=@v2 where d=2; update t1 set t=@v4 where d=4; select a,b,c,d,sha1(t) from t1 order by c,a; a b c d sha1(t) a 1110 a 1 558a30713786aa72f66abc1e6a521d55aacdeeb5 b 1110 a 2 b238654911689bfb626a3ef9dba4a1ca074e6a5e a 1110 b 3 2b6515f29c20b8e9e17cc597527e516c0de8d612 b 1110 b 4 NULL update t1 set t=@v4 where a='b' and c='a'; update t1 set t=@v2 where a='b' and c='b'; select a,b,c,d,sha1(t) from t1 order by c,a; a b c d sha1(t) a 1110 a 1 558a30713786aa72f66abc1e6a521d55aacdeeb5 b 1110 a 2 NULL a 1110 b 3 2b6515f29c20b8e9e17cc597527e516c0de8d612 b 1110 b 4 b238654911689bfb626a3ef9dba4a1ca074e6a5e update t1 set t=@v2 where b+d=1112; update t1 set t=@v4 where b+d=1114; select a,b,c,d,sha1(t) from t1 order by c,a; a b c d sha1(t) a 1110 a 1 558a30713786aa72f66abc1e6a521d55aacdeeb5 b 1110 a 2 b238654911689bfb626a3ef9dba4a1ca074e6a5e a 1110 b 3 2b6515f29c20b8e9e17cc597527e516c0de8d612 b 1110 b 4 NULL delete from t1 where a='a' and b=1110 and c='a'; delete from t1 where a='b' and c='a'; delete from t1 where d=3; delete from t1 where b+d=1114; select count(*) from t1; count(*) 0 drop table t1; create table t1( a int, blob_nn blob not null, text_nn text not null, blob_nl blob, text_nl text, primary key(a) ) engine=ndb; insert ignore into t1(a) values (1); Warnings: Warning 1364 Field 'blob_nn' doesn't have a default value Warning 1364 Field 'text_nn' doesn't have a default value insert ignore into t1(a, text_nl) values (2, 'MySQL Cluster NDB'); Warnings: Warning 1364 Field 'blob_nn' doesn't have a default value Warning 1364 Field 'text_nn' doesn't have a default value select a, length(blob_nn), length(text_nn), blob_nl, text_nl from t1 order by a; a length(blob_nn) length(text_nn) blob_nl text_nl 1 0 0 NULL NULL 2 0 0 NULL MySQL Cluster NDB drop table t1; create table `t1` ( `f1` int(11) not null default -1, `f11` text, unique key `i1` (`f1`) ) engine=ndbcluster default charset=utf8; insert into `t1` values (123,null); create table `t2` ( `f1` int(11) not null default -1, unique key `i2` (`f1`) ) engine=ndbcluster default charset=utf8; begin; delete from t2 where f1=5; delete from t1 where f1=123; delete from t2 where f1=5; commit; show warnings; Level Code Message drop table t1; drop table t2; create table t1 ( a int primary key, giga longblob) engine=ndb; set @stuff = '1234567890'; insert into t1 values (0, repeat(@stuff, 2000)); select sha1(repeat(@stuff, 2000)); sha1(repeat(@stuff, 2000)) c8d94eb4127361ac22cf1c8a8f1178a37fb25e41 select sha1(giga) from t1; sha1(giga) c8d94eb4127361ac22cf1c8a8f1178a37fb25e41 select (giga = repeat(@stuff, 2000)) from t1 where a=0; (giga = repeat(@stuff, 2000)) 1 drop table t1; Test that automatic lock upgrade on Blobs behaves as expected w.r.t other operations on the table. create table t1 (a int primary key, b longblob, c int, unique(c)) engine=ndb; insert into t1 values (1, repeat('1', 256), 1); insert into t1 values (2, repeat('2', 2256), 2); insert into t1 values (3, repeat('3', 4256), 3); insert into t1 values (4, repeat('4', 8256), 4); insert into t1 values (5, repeat('5', 20000), 5); No Deadlock scenarios Transaction 1 reading PK with no lock. Transaction 2 reading PK with EX lock begin; select a, length(b) from t1 where a=2; a length(b) 2 2256 select a, length(b) from t1 where a=2 FOR UPDATE; a length(b) 2 2256 Transaction 2 scanning with EX lock - will not deadlock with transaction 1 select a, length(b) from t1 ORDER BY a FOR UPDATE; a length(b) 1 256 2 2256 3 4256 4 8256 5 20000 commit; Transaction1 reading PK with SH lock. Transaction 2 reading PK with no lock begin; select a, length(b) from t1 where a=3 LOCK IN SHARE MODE; a length(b) 3 4256 select a, length(b) from t1 where a=3; a length(b) 3 4256 Transaction 2 scanning with SH lock - will not deadlock with transaction 1 select a, length(b) from t1 ORDER BY a; a length(b) 1 256 2 2256 3 4256 4 8256 5 20000 commit; Transaction1 reading PK with SH lock. Transaction 2 reading PK with SH lock begin; select a, length(b) from t1 where a=4 LOCK IN SHARE MODE; a length(b) 4 8256 select a, length(b) from t1 where a=4 LOCK IN SHARE MODE; a length(b) 4 8256 Transaction 2 scanning with SH lock - will not deadlock with transaction 1 select a, length(b) from t1 ORDER BY a LOCK IN SHARE MODE; a length(b) 1 256 2 2256 3 4256 4 8256 5 20000 commit; Deadlock scenarios on PK access : Transaction 1 reading PK with EX lock. Transaction 2 reading PK with no lock begin; select a, length(b) from t1 where a=5 FOR UPDATE; a length(b) 5 20000 select a, length(b) from t1 where a=5; ERROR HY000: Lock wait timeout exceeded; try restarting transaction commit; Transaction 1 reading PK with EX lock. Transaction 2 reading PK with SH lock begin; select a, length(b) from t1 where a=1 FOR UPDATE; a length(b) 1 256 select a, length(b) from t1 where a=1 LOCK IN SHARE MODE; ERROR HY000: Lock wait timeout exceeded; try restarting transaction commit; Verify that Nolock Unique index access still deadlocks as unique index accesses always upgrade to SH begin; select a, length(b) from t1 where c=2; a length(b) 2 2256 select a, length(b) from t1 FOR UPDATE; ERROR HY000: Lock wait timeout exceeded; try restarting transaction commit; drop table t1; 5.6 tests create table `t1` (`a` int,`b` blob,primary key (`a`)) engine=ndbcluster; insert into t1 values (2, 'Hei og hopp! '); update t1 set b=concat(b,b,b,b,b); update t1 set b=concat(b,b,b,b,b); update t1 set b=concat(b,b,b,b,b); explain update `t1` set `a`=1 where `a`!= 1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 UPDATE t1 p0,p1,p2,p3,p4,p5,p6,p7 range PRIMARY PRIMARY 4 const 4 100.00 Using where; Using temporary update `t1` set `a`=1 where `a`!= 1; select * from t1; a b 1 Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! Hei og hopp! drop table t1; End of 5.6 tests