diff options
author | unknown <monty@mysql.com> | 2004-01-29 15:16:48 +0100 |
---|---|---|
committer | unknown <monty@mysql.com> | 2004-01-29 15:16:48 +0100 |
commit | b9073593d0defc65472125b625e399e5ab22d1f6 (patch) | |
tree | 1a3482e487cc9dcf2c6335c759351aacd5960227 /mysql-test/r | |
parent | 4db4ffef27624e58cc5c45cc8a165bfb9509fbfa (diff) | |
download | mariadb-git-b9073593d0defc65472125b625e399e5ab22d1f6.tar.gz |
Mark that strings may change on index only reads (for BDB tables).
This fixed problem with index reads on character fields with BDB tables. (Bug #2509)
BitKeeper/etc/ignore:
added man/*.1
mysql-test/r/bdb.result:
New test
mysql-test/r/myisam.result:
More tests
mysql-test/t/bdb.test:
Test for idnex only read
mysql-test/t/myisam.test:
More test to verify pushed bug fix
sql/ha_berkeley.h:
Mark that strings may change on index only reads
sql/item_strfunc.cc:
Cleanup
sql/table.cc:
Allow index only reads on binary strings
Diffstat (limited to 'mysql-test/r')
-rw-r--r-- | mysql-test/r/bdb.result | 25 | ||||
-rw-r--r-- | mysql-test/r/myisam.result | 30 |
2 files changed, 54 insertions, 1 deletions
diff --git a/mysql-test/r/bdb.result b/mysql-test/r/bdb.result index 05845df9dd3..2ccb5148d58 100644 --- a/mysql-test/r/bdb.result +++ b/mysql-test/r/bdb.result @@ -1165,3 +1165,28 @@ create table t2 (c char(8) not null, b char(8) not null, a char(8) not null, pri insert into t2 select * from t1; delete t1,t2 from t2,t1 where t1.a<'B' and t2.b=t1.b; drop table t1,t2; +create table t1 (a char(10), key(a), b int not null, key(b)) engine=bdb; +insert into t1 values ('a',1),('A',2); +explain select a from t1; +table type possible_keys key key_len ref rows Extra +t1 ALL NULL NULL NULL NULL 2 +select a from t1; +a +a +A +explain select b from t1; +table type possible_keys key key_len ref rows Extra +t1 index NULL b 4 NULL 2 Using index +select b from t1; +b +1 +2 +alter table t1 modify a char(10) binary; +explain select a from t1; +table type possible_keys key key_len ref rows Extra +t1 index NULL a 11 NULL 2 Using index +select a from t1; +a +A +a +drop table t1; diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result index 68a667f6d95..cc541388a5c 100644 --- a/mysql-test/r/myisam.result +++ b/mysql-test/r/myisam.result @@ -386,7 +386,10 @@ Table Op Msg_type Msg_text test.t1 check status OK drop table t1; create table t1 ( a text not null, key a (a(20))); -insert into t1 values ('aaa '),('aaa'); +insert into t1 values ('aaa '),('aaa'),('aa'); +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK repair table t1; Table Op Msg_type Msg_text test.t1 repair status OK @@ -394,6 +397,15 @@ select concat(a,'.') from t1 where a='aaa'; concat(a,'.') aaa. aaa . +select concat(a,'.') from t1 where binary a='aaa'; +concat(a,'.') +aaa. +update t1 set a='bbb' where a='aaa'; +select concat(a,'.') from t1; +concat(a,'.') +bbb. +bbb. +aa. drop table t1; create table t1(a text not null, b text not null, c text not null, index (a(10),b(10),c(10))); insert into t1 values('807780', '477', '165'); @@ -403,3 +415,19 @@ select * from t1 where a='807780' and b='477' and c='165'; a b c 807780 477 165 drop table t1; +create table t1 (a int not null auto_increment primary key, b text not null, unique b (b(20))); +insert into t1 (b) values ('a'),('a '),('a '); +select concat(b,'.') from t1; +concat(b,'.') +a. +a . +a . +update t1 set b='b ' where a=2; +update t1 set b='b ' where a > 1; +Duplicate entry 'b ' for key 2 +delete from t1 where b='b'; +select a,concat(b,'.') from t1; +a concat(b,'.') +1 a. +3 a . +drop table t1; |