⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ndb_blob.test

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 TEST
字号:
--source include/have_ndb.inc-- source include/not_embedded.inc--disable_warningsdrop table if exists t1;drop database if exists test2;--enable_warnings## Minimal NDB blobs test.## On NDB API level there is an extensive test program "testBlobs".# A prerequisite for this handler test is that "testBlobs" succeeds.## -- general test starts --# make test harder with autocommit offset 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;# -- values --# x0 size 256 (current inline size)set @x0 = '01234567012345670123456701234567';set @x0 = concat(@x0,@x0,@x0,@x0,@x0,@x0,@x0,@x0);# b1 length 2000+256 (blob part aligned)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);# d1 length 3000set @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);# b2 length 20000set @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);# d2 length 30000set @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;select length(@x0),length(@b2),length(@d2) from dual;# -- pk ops --insert into t1 values(1,@b1,111,@d1);insert into t1 values(2,@b2,222,@d2);commit;explain select * from t1 where a = 1;# pk readselect a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)from t1 where a=1;select a,length(b),substr(b,1+2*9000,2),length(d),substr(d,1+3*9000,3)from t1 where a=2;# pk updateupdate 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;select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)from t1 where a=2;# pk updateupdate 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;select a,length(b),substr(b,1+4*900,2),length(d),substr(d,1+6*900,3)from t1 where a=2;# pk update to nullupdate t1 set d=null where a=1;commit;select a from t1 where d is null;# bug#24028 - does not occur on MySQL level# bug#17986 - not seen by us anymore but could show as warning heredelete from t1 where a=45567;commit;# pk deletedelete from t1 where a=1;delete from t1 where a=2;commit;select count(*) from t1;# -- replace ( bug-6018 ) --# insertreplace 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;# pk readselect a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)from t1 where a=1;select a,length(b),substr(b,1+2*9000,2),length(d),substr(d,1+3*9000,3)from t1 where a=2;# updatereplace 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;select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)from t1 where a=2;# updatereplace 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;select a,length(b),substr(b,1+4*900,2),length(d),substr(d,1+6*900,3)from t1 where a=2;# update to nullreplace t1 set a=1,b='xyz',c=111,d=null;commit;select a,b from t1 where d is null;# pk deletedelete from t1 where a=1;delete from t1 where a=2;commit;select count(*) from t1;# -- hash index ops --insert into t1 values(1,@b1,111,@d1);insert into t1 values(2,@b2,222,@d2);commit;explain select * from t1 where c = 111;# hash key readselect a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)from t1 where c=111;select a,length(b),substr(b,1+2*9000,2),length(d),substr(d,1+3*9000,3)from t1 where c=222;# hash key updateupdate 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;select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)from t1 where c=222;# hash key update to nullupdate t1 set d=null where c=111;commit;select a from t1 where d is null;# hash key deletedelete from t1 where c=111;delete from t1 where c=222;commit;select count(*) from t1;# -- table scan ops, short values --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;# table scan readselect * from t1 order by a;# table scan updateupdate t1 set b=concat(a,'x',b),d=concat(a,'x',d);commit;select * from t1 order by a;# table scan deletedelete from t1;commit;select count(*) from t1;# -- table scan ops, long values --insert into t1 values(1,@b1,111,@d1);insert into t1 values(2,@b2,222,@d2);commit;explain select * from t1;# table scan readselect a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)from t1 order by a;# table scan updateupdate 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;# table scan deletedelete from t1;commit;select count(*) from t1;# -- range scan ops, short values --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;# range scan readselect * from t1 where c >= 100 order by a;# range scan updateupdate 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;# range scan deletedelete from t1 where c >= 100;commit;select count(*) from t1;# -- range scan ops, long values --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;# range scan readselect 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;# range scan updateupdate 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;# range scan deletedelete from t1 where c >= 100;commit;select count(*) from t1;# -- rollback --insert into t1 values(1,@b1,111,@d1);insert into t1 values(2,@b2,222,@d2);# 626select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)from t1 where a = 0;select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)from t1 where a = 1;select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)from t1 where a = 2;select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)from t1 order by a;rollback;select count(*) from t1;# -- alter table and multi db --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;alter table t1 add x int;select * from t1 order by a;alter table t1 drop x;select * from t1 order by a;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;drop table t2;use test;select * from t1 order by a;alter table t1 add x int;select * from t1 order by a;alter table t1 drop x;select * from t1 order by a;# -- end general test --drop table t1;drop database test2;# -- bug-5252 tinytext crashes + no-commit result + replace --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;delete from t1;select * from t1;commit;replace t1 set a=2, b='y';select * from t1;delete from t1;select * from t1;drop table t1;# -- bug-5013 insert empty string to text --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;commit;drop table t1;# -- bug #5349 --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;alter table t1 engine=ndb;select * from t1 order by a;# -- bug #5872 --set autocommit=1;alter table t1 engine=myisam;select * from t1 order by a;drop table t1;# -- bug #7340 --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 indexableso bad data will not crash kernel.');select * from t1;drop table t1;# -- bug #19201create table t1 (  a int primary key not null auto_increment,  b text) engine=ndbcluster;--disable_query_logset autocommit=1;# more rows than batch size (64)# for this bug no blob parts would be necessarylet $1 = 500;while ($1){  insert into t1 (b) values (repeat('x',4000));  dec $1;}--enable_query_logselect count(*) from t1;truncate t1;select count(*) from t1;drop table t1;# -- bug#19956 - var* key, complex keycreate 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;--disable_query_logset @s1 = 'rggurloniukyehuxdbfkkyzlceixzrehqhvxvxbpwizzvjzpucqmzrhzxzfau';set @s2 = 'ykyymbzqgqlcjhlhmyqelfoaaohvtbekvifukdtnvcrrjveevfakxarxexomz';set @s3 = 'dbnfqyzgtqxalcrwtfsqabknvtfcbpoonxsjiqvmhnfikxxhcgoexlkoezvah';set @v1 = repeat(@s1,123);set @v2 = repeat(@s2,234);set @v3 = repeat(@s3,345);set @v4 = NULL;--enable_query_loginsert 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;select a,b,c,d,sha1(t) from t1 where a='a' and b=1110 and c='a';select a,b,c,d,sha1(t) from t1 where a='a' and b=1110 and c='b';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;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;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;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;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;drop table t1;# End of 4.1 tests

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -