diff options
-rw-r--r-- | BitKeeper/etc/gone | 1 | ||||
-rw-r--r-- | mysql-test/include/have_innobase.inc | 2 | ||||
-rw-r--r-- | mysql-test/r/have_innobase.require | 2 | ||||
-rw-r--r-- | mysql-test/r/innobase.result | 408 | ||||
-rw-r--r-- | mysql-test/r/join_outer.result | 3 | ||||
-rw-r--r-- | mysql-test/t/innobase.test | 336 | ||||
-rw-r--r-- | sql/ha_berkeley.cc | 4 |
7 files changed, 750 insertions, 6 deletions
diff --git a/BitKeeper/etc/gone b/BitKeeper/etc/gone index 3f626341fc8..8cb2c630f4f 100644 --- a/BitKeeper/etc/gone +++ b/BitKeeper/etc/gone @@ -315,3 +315,4 @@ sasha@mysql.sashanet.com|mysql-test/t/include/master-slave.inc|20001118030458|01 sasha@work.mysql.com|BitKeeper/etc/logging_ok|20001214015456|29919|32b6551b8288c2fa serg@serg.mysql.com|mysql-test/r/3.23/mrg000001.dummy.result|20001206231604|05053|bf7e6d609f22b897 serg@serg.mysql.com|mysql-test/r/3.23/mrg000001.result|20001206231609|46662|db2ef2e717ab8332 +mwagner@evoq.home.mwagner.org|mysql-test/chew_on_this/select.res|20001014084759|41327|1295456b9394876 diff --git a/mysql-test/include/have_innobase.inc b/mysql-test/include/have_innobase.inc new file mode 100644 index 00000000000..ec9f39f320f --- /dev/null +++ b/mysql-test/include/have_innobase.inc @@ -0,0 +1,2 @@ +-- require r/have_innobase.require +show variables like "have_innobase"; diff --git a/mysql-test/r/have_innobase.require b/mysql-test/r/have_innobase.require new file mode 100644 index 00000000000..eefc7650e9f --- /dev/null +++ b/mysql-test/r/have_innobase.require @@ -0,0 +1,2 @@ +Variable_name Value +have_innobase YES diff --git a/mysql-test/r/innobase.result b/mysql-test/r/innobase.result new file mode 100644 index 00000000000..b008413dd7e --- /dev/null +++ b/mysql-test/r/innobase.result @@ -0,0 +1,408 @@ +id code name +1 1 Tim +2 1 Monty +3 2 David +4 2 Erik +5 3 Sasha +6 3 Jeremy +7 4 Matt +id code name +2 1 Monty +3 2 David +4 2 Erik +5 3 Sasha +6 3 Jeremy +7 4 Matt +8 1 Sinisa +id code name +3 2 David +4 2 Erik +5 3 Sasha +6 3 Jeremy +7 4 Matt +8 1 Sinisa +12 1 Ralph +id parent_id level +8 102 2 +9 102 2 +15 102 2 +id parent_id level +1001 100 0 +1002 101 1 +1003 101 1 +1004 101 1 +1005 101 1 +1006 101 1 +1007 101 1 +1008 102 2 +1009 102 2 +1015 102 2 +1016 103 2 +1017 103 2 +1018 103 2 +1019 103 2 +1020 103 2 +1021 104 2 +1022 104 2 +1024 104 2 +1025 105 2 +1026 105 2 +1027 105 2 +1028 105 2 +1029 105 2 +1030 105 2 +1031 106 2 +1032 106 2 +1033 106 2 +1034 106 2 +1035 106 2 +1036 107 2 +1037 107 2 +1038 107 2 +1040 107 2 +1157 100 0 +1179 105 2 +1183 104 2 +1193 105 2 +1202 107 2 +1203 107 2 +id parent_id level +1001 100 0 +1002 101 1 +1003 101 1 +1004 101 1 +1005 101 1 +1006 101 1 +1007 101 1 +1008 102 2 +1010 102 2 +1015 102 2 +1016 103 2 +1017 103 2 +1018 103 2 +1019 103 2 +1020 103 2 +1021 104 2 +1023 104 2 +1024 104 2 +1025 105 2 +1026 105 2 +1027 105 2 +1028 105 2 +1029 105 2 +1030 105 2 +1031 106 2 +1032 106 2 +1033 106 2 +1034 106 2 +1035 106 2 +1036 107 2 +1037 107 2 +1039 107 2 +1041 107 2 +1158 100 0 +1180 105 2 +1184 104 2 +1194 105 2 +1202 107 2 +1204 107 2 +id parent_id level +1008 102 2 +1015 102 2 +1010 102 2 +table type possible_keys key key_len ref rows Extra +t1 ref level level 1 const 1 where used; Using index +table type possible_keys key key_len ref rows Extra +t1 ref level level 1 const 1 where used; Using index +table type possible_keys key key_len ref rows Extra +t1 ref level level 1 const 1 where used +level id +1 1002 +1 1003 +1 1004 +1 1005 +1 1006 +1 1007 +level id parent_id +1 1002 101 +1 1003 101 +1 1004 101 +1 1005 101 +1 1006 101 +1 1007 101 +gesuchnr benutzer_id +1 1 +2 1 +a +2 +a b +a 1 +a 2 +a 3 +a 4 +a 5 +b 2 +b 3 +b 4 +c 1 +c 2 +c 3 +d 1 +d 2 +d 5 +e 1 +k 1 +n after rollback +n after commit +4 after commit +n after commit +4 after commit +5 after commit +n +4 +5 +6 +afterbegin_id afterbegin_nom +1 hamdouni +afterrollback_id afterrollback_nom +afterautocommit0_id afterautocommit0_nom +2 mysql +afterrollback_id afterrollback_nom +id val +id val +pippo 12 +id val +ID NAME +1 Jochen +_userid +marc@anyware.co.uk +_userid +marc@anyware.co.uk +user_id name phone ref_email detail +10292 sanjeev 29153373 sansh777@hotmail.com xxx +10292 shirish 2333604 shirish@yahoo.com ddsds +10292 sonali 323232 sonali@bolly.com filmstar +user_id name phone ref_email detail +10292 sanjeev 29153373 sansh777@hotmail.com xxx +10292 shirish 2333604 shirish@yahoo.com ddsds +10292 sonali 323232 sonali@bolly.com filmstar +user_id name phone ref_email detail +10292 sanjeev 29153373 sansh777@hotmail.com xxx +10292 shirish 2333604 shirish@yahoo.com ddsds +10292 sonali 323232 sonali@bolly.com filmstar +10293 shirish 2333604 shirish@yahoo.com ddsds +user_id name phone ref_email detail +10293 shirish 2333604 shirish@yahoo.com ddsds +user_id name phone ref_email detail +10291 sanjeev 29153373 sansh777@hotmail.com xxx +Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Comment +t1 0 PRIMARY 1 a A NULL NULL NULL +t1 0 PRIMARY 2 b A 0 NULL NULL +t1 0 b 1 b A 0 NULL NULL +t1 0 c 1 c A 0 NULL NULL +t1 1 a 1 a A NULL NULL NULL +t1 1 a_2 1 a A NULL NULL NULL +col1 col2 +1 1 +2 3 +3 4 +4 4 +5 2 +col1 col2 +1 1 +2 3 +3 4 +4 7 +5 2 +col1 col2 co3 +1 1 0 +2 3 0 +3 4 0 +4 7 0 +5 2 0 +col1 col2 co3 +1 1 0 +2 9 0 +3 4 0 +4 7 0 +5 2 0 +a b +1 3 +2 3 +3 3 +a b +1 3 +2 3 +3 3 +a b +a b +1 3 +2 3 +3 3 +a b +1 3 +2 3 +3 3 +id ggid email passwd +1 test1 xxx +id ggid email passwd +1 test1 xxx +id ggid email passwd +2 test2 yyy +user_name password subscribed user_id quota weight access_date access_time approved dummy_primary_key +user_0 somepassword N 0 0 0 2000-09-07 23:06:59 2000-09-07 23:06:59 1 +user_1 somepassword Y 1 1 1 2000-09-07 23:06:59 2000-09-07 23:06:59 2 +user_2 somepassword N 2 2 1.4142135623731 2000-09-07 23:06:59 2000-09-07 23:06:59 3 +user_3 somepassword Y 3 3 1.7320508075689 2000-09-07 23:06:59 2000-09-07 23:06:59 4 +user_4 somepassword N 4 4 2 2000-09-07 23:06:59 2000-09-07 23:06:59 5 +id parent_id level +8 102 2 +9 102 2 +15 102 2 +id parent_id level +1001 100 0 +1003 101 1 +1004 101 1 +1008 102 2 +1024 102 2 +1017 103 2 +1022 104 2 +1024 104 2 +1028 105 2 +1029 105 2 +1030 105 2 +1031 106 2 +1032 106 2 +1033 106 2 +1203 107 2 +1202 107 2 +1020 103 2 +1157 100 0 +1193 105 2 +1040 107 2 +1002 101 1 +1015 102 2 +1006 101 1 +1034 106 2 +1035 106 2 +1016 103 2 +1007 101 1 +1036 107 2 +1018 103 2 +1026 105 2 +1027 105 2 +1183 104 2 +1038 107 2 +1025 105 2 +1037 107 2 +1021 104 2 +1019 103 2 +1005 101 1 +1179 105 2 +id parent_id level +1002 100 0 +1004 101 1 +1005 101 1 +1009 102 2 +1025 102 2 +1018 103 2 +1023 104 2 +1025 104 2 +1029 105 2 +1030 105 2 +1031 105 2 +1032 106 2 +1033 106 2 +1034 106 2 +1204 107 2 +1203 107 2 +1021 103 2 +1158 100 0 +1194 105 2 +1041 107 2 +1003 101 1 +1016 102 2 +1007 101 1 +1035 106 2 +1036 106 2 +1017 103 2 +1008 101 1 +1037 107 2 +1019 103 2 +1027 105 2 +1028 105 2 +1184 104 2 +1039 107 2 +1026 105 2 +1038 107 2 +1022 104 2 +1020 103 2 +1006 101 1 +1180 105 2 +id parent_id level +1009 102 2 +1025 102 2 +1016 102 2 +table type possible_keys key key_len ref rows Extra +t1 ref level level 1 const 1 where used; Using index +level id +1 1004 +1 1005 +1 1003 +1 1007 +1 1008 +1 1006 +level id parent_id +1 1004 101 +1 1005 101 +1 1003 101 +1 1007 101 +1 1008 101 +1 1006 101 +level id +1 1003 +1 1004 +1 1005 +1 1006 +1 1007 +1 1008 +id parent_id level +1002 100 0 +1009 102 2 +1025 102 2 +1018 103 2 +1023 104 2 +1025 104 2 +1029 105 2 +1030 105 2 +1031 105 2 +1032 106 2 +1033 106 2 +1034 106 2 +1204 107 2 +1203 107 2 +1021 103 2 +1158 100 0 +1194 105 2 +1041 107 2 +1016 102 2 +1035 106 2 +1036 106 2 +1017 103 2 +1037 107 2 +1019 103 2 +1027 105 2 +1028 105 2 +1184 104 2 +1039 107 2 +1026 105 2 +1038 107 2 +1022 104 2 +1020 103 2 +1180 105 2 +count(*) +1 +a +1 +2 +3 diff --git a/mysql-test/r/join_outer.result b/mysql-test/r/join_outer.result index 8ac48c6657b..65b4c2ec73a 100644 --- a/mysql-test/r/join_outer.result +++ b/mysql-test/r/join_outer.result @@ -33,12 +33,9 @@ grp a c id a c d NULL NULL NULL NULL NULL NULL grp a c id a c d 1 1 a 1 1 a 1 -2 2 b NULL NULL NULL NULL -2 3 c NULL NULL NULL NULL 3 4 E 3 4 A 4 3 5 C 3 5 B 5 3 6 D 3 6 C 6 -NULL NULL NULL NULL NULL NULL grp a c id a c d 1 1 a 1 1 a 1 2 2 b NULL NULL NULL NULL diff --git a/mysql-test/t/innobase.test b/mysql-test/t/innobase.test new file mode 100644 index 00000000000..53dd3d62b20 --- /dev/null +++ b/mysql-test/t/innobase.test @@ -0,0 +1,336 @@ +-- source include/have_innobase.inc + +# +# Small basic test with ignore +# + +drop table if exists t1; +create table t1 (id int unsigned not null auto_increment, code tinyint unsigned not null, name char(20) not null, primary key (id), key (code), unique (name)) type=innobase; + +insert into t1 (code, name) values (1, 'Tim'), (1, 'Monty'), (2, 'David'), (2, 'Erik'), (3, 'Sasha'), (3, 'Jeremy'), (4, 'Matt'); +select id, code, name from t1 order by id; + +update ignore t1 set id = 8, name = 'Sinisa' where id < 3; +select id, code, name from t1 order by id; +update ignore t1 set id = id + 10, name = 'Ralph' where id < 4; +select id, code, name from t1 order by id; + +drop table t1; + +# +# A bit bigger test +# + +CREATE TABLE t1 ( + id int(11) NOT NULL auto_increment, + parent_id int(11) DEFAULT '0' NOT NULL, + level tinyint(4) DEFAULT '0' NOT NULL, + PRIMARY KEY (id), + KEY parent_id (parent_id), + KEY level (level) +) type=innobase; +INSERT INTO t1 VALUES (1,0,0),(3,1,1),(4,1,1),(8,2,2),(9,2,2),(17,3,2),(22,4,2),(24,4,2),(28,5,2),(29,5,2),(30,5,2),(31,6,2),(32,6,2),(33,6,2),(203,7,2),(202,7,2),(20,3,2),(157,0,0),(193,5,2),(40,7,2),(2,1,1),(15,2,2),(6,1,1),(34,6,2),(35,6,2),(16,3,2),(7,1,1),(36,7,2),(18,3,2),(26,5,2),(27,5,2),(183,4,2),(38,7,2),(25,5,2),(37,7,2),(21,4,2),(19,3,2),(5,1,1),(179,5,2); +update t1 set parent_id=parent_id+100; +select * from t1 where parent_id=102; +update t1 set id=id+1000; +!$1062 update t1 set id=1024 where id=1009; +select * from t1; +update ignore t1 set id=id+1; # This will change all rows +select * from t1; +update ignore t1 set id=1023 where id=1010; +select * from t1 where parent_id=102; +explain select level from t1 where level=1; +explain select level,id from t1 where level=1; +explain select level,id,parent_id from t1 where level=1; +select level,id from t1 where level=1; +select level,id,parent_id from t1 where level=1; +drop table t1; + +# +# Test replace +# + +CREATE TABLE t1 ( + gesuchnr int(11) DEFAULT '0' NOT NULL, + benutzer_id int(11) DEFAULT '0' NOT NULL, + PRIMARY KEY (gesuchnr,benutzer_id) +) type=innobase; + +replace into t1 (gesuchnr,benutzer_id) values (2,1); +replace into t1 (gesuchnr,benutzer_id) values (1,1); +replace into t1 (gesuchnr,benutzer_id) values (1,1); +select * from t1; +drop table t1; + +# +# test delete using hidden_primary_key +# + +create table t1 (a int) type=innobase; +insert into t1 values (1), (2); +delete from t1 where a = 1; +select * from t1; +drop table t1; + +# +# Test auto_increment on sub key +# + +create table t1 (a char(10) not null, b int not null auto_increment, primary key(a,b)) type=innobase; +insert into t1 values ("a",1),("b",2),("a",2),("c",1); +insert into t1 values ("a",NULL),("b",NULL),("c",NULL),("e",NULL); +insert into t1 (a) values ("a"),("b"),("c"),("d"); +insert into t1 (a) values ('k'),('d'); +insert into t1 (a) values ("a"); +insert into t1 values ("d",last_insert_id()); +select * from t1; +drop table t1; + +# +# Test rollback +# + +create table t1 (n int not null primary key) type=innobase; +set autocommit=0; +insert into t1 values (4); +rollback; +select n, "after rollback" from t1; +insert into t1 values (4); +commit; +select n, "after commit" from t1; +commit; +insert into t1 values (5); +!$1062 insert into t1 values (4); +commit; +select n, "after commit" from t1; +set autocommit=1; +insert into t1 values (6); +!$1062 insert into t1 values (4); +select n from t1; +# nop +rollback; +drop table t1; + +# +# Testing transactions +# + +create table t1 ( id int NOT NULL PRIMARY KEY, nom varchar(64)) type=innobase; +begin; +insert into t1 values(1,'hamdouni'); +select id as afterbegin_id,nom as afterbegin_nom from t1; +rollback; +select id as afterrollback_id,nom as afterrollback_nom from t1; +set autocommit=0; +insert into t1 values(2,'mysql'); +select id as afterautocommit0_id,nom as afterautocommit0_nom from t1; +rollback; +select id as afterrollback_id,nom as afterrollback_nom from t1; +set autocommit=1; +drop table t1; + +# +# Simple not autocommit test +# + +CREATE TABLE t1 (id char(8) not null primary key, val int not null) type=innobase; +insert into t1 values ('pippo', 12); +!$1062 insert into t1 values ('pippo', 12); # Gives error +delete from t1; +delete from t1 where id = 'pippo'; +select * from t1; + +insert into t1 values ('pippo', 12); +set autocommit=0; +delete from t1; +rollback; +select * from t1; +delete from t1; +commit; +select * from t1; +drop table t1; +set autocommit=1; + +# +# The following simple tests failed at some point +# + +CREATE TABLE t1 (ID INTEGER NOT NULL PRIMARY KEY, NAME VARCHAR(64)) TYPE=innobase; +INSERT INTO t1 VALUES (1, 'Jochen'); +select * from t1; +drop table t1; + +CREATE TABLE t1 ( _userid VARCHAR(60) NOT NULL PRIMARY KEY) TYPE=innobase; +set autocommit=0; +INSERT INTO t1 SET _userid='marc@anyware.co.uk'; +COMMIT; +SELECT * FROM t1; +SELECT _userid FROM t1 WHERE _userid='marc@anyware.co.uk'; +drop table t1; +set autocommit=1; + +# +# Test when reading on part of unique key +# +CREATE TABLE t1 ( + user_id int(10) DEFAULT '0' NOT NULL, + name varchar(100), + phone varchar(100), + ref_email varchar(100) DEFAULT '' NOT NULL, + detail varchar(200), + PRIMARY KEY (user_id,ref_email) +)type=innobase; + +INSERT INTO t1 VALUES (10292,'sanjeev','29153373','sansh777@hotmail.com','xxx'),(10292,'shirish','2333604','shirish@yahoo.com','ddsds'),(10292,'sonali','323232','sonali@bolly.com','filmstar'); +select * from t1 where user_id=10292; +INSERT INTO t1 VALUES (10291,'sanjeev','29153373','sansh777@hotmail.com','xxx'),(10293,'shirish','2333604','shirish@yahoo.com','ddsds'); +select * from t1 where user_id=10292; +select * from t1 where user_id>=10292; +select * from t1 where user_id>10292; +select * from t1 where user_id<10292; +drop table t1; + +# +# Test that keys are created in right order +# + +CREATE TABLE t1 (a int not null, b int not null,c int not null, +key(a),primary key(a,b), unique(c),key(a),unique(b)); +show index from t1; +drop table t1; + +# +# Test of ALTER TABLE and innobase tables +# + +create table t1 (col1 int not null, col2 char(4) not null, primary key(col1)); +alter table t1 type=innobase; +insert into t1 values ('1','1'),('5','2'),('2','3'),('3','4'),('4','4'); +select * from t1; +update t1 set col2='7' where col1='4'; +select * from t1; +alter table t1 add co3 int not null; +select * from t1; +update t1 set col2='9' where col1='2'; +select * from t1; +drop table t1; + +# +# INSERT INTO innobase tables +# + +create table t1 (a int not null , b int, primary key (a)) type = innobase; +create table t2 (a int not null , b int, primary key (a)) type = myisam; +insert into t1 VALUES (1,3) , (2,3), (3,3); +select * from t1; +insert into t2 select * from t1; +select * from t2; +delete from t1 where b = 3; +select * from t1; +insert into t1 select * from t2; +select * from t1; +select * from t2; +drop table t1,t2; + +# +# Search on unique key +# + +CREATE TABLE t1 ( + id int(11) NOT NULL auto_increment, + ggid varchar(32) binary DEFAULT '' NOT NULL, + email varchar(64) DEFAULT '' NOT NULL, + passwd varchar(32) binary DEFAULT '' NOT NULL, + PRIMARY KEY (id), + UNIQUE ggid (ggid) +) TYPE=innobase; + +insert into t1 (ggid,passwd) values ('test1','xxx'); +insert into t1 (ggid,passwd) values ('test2','yyy'); + +select * from t1 where ggid='test1'; +select * from t1 where passwd='xxx'; +select * from t1 where id=2; +drop table t1; + +# +# ORDER BY on not primary key +# + +CREATE TABLE t1 ( + user_name varchar(12), + password text, + subscribed char(1), + user_id int(11) DEFAULT '0' NOT NULL, + quota bigint(20), + weight double, + access_date date, + access_time time, + approved datetime, + dummy_primary_key int(11) NOT NULL auto_increment, + PRIMARY KEY (dummy_primary_key) +) TYPE=innobase; +INSERT INTO t1 VALUES ('user_0','somepassword','N',0,0,0,'2000-09-07','23:06:59','2000-09-07 23:06:59',1); +INSERT INTO t1 VALUES ('user_1','somepassword','Y',1,1,1,'2000-09-07','23:06:59','2000-09-07 23:06:59',2); +INSERT INTO t1 VALUES ('user_2','somepassword','N',2,2,1.4142135623731,'2000-09-07','23:06:59','2000-09-07 23:06:59',3); +INSERT INTO t1 VALUES ('user_3','somepassword','Y',3,3,1.7320508075689,'2000-09-07','23:06:59','2000-09-07 23:06:59',4); +INSERT INTO t1 VALUES ('user_4','somepassword','N',4,4,2,'2000-09-07','23:06:59','2000-09-07 23:06:59',5); +select user_name, password , subscribed, user_id, quota, weight, access_date, access_time, approved, dummy_primary_key from t1 order by user_name; +drop table t1; + +# +# Testing of tables without primary keys +# + +CREATE TABLE t1 ( + id int(11) NOT NULL auto_increment, + parent_id int(11) DEFAULT '0' NOT NULL, + level tinyint(4) DEFAULT '0' NOT NULL, + KEY (id), + KEY parent_id (parent_id), + KEY level (level) +) type=innobase; +INSERT INTO t1 VALUES (1,0,0),(3,1,1),(4,1,1),(8,2,2),(9,2,2),(17,3,2),(22,4,2),(24,4,2),(28,5,2),(29,5,2),(30,5,2),(31,6,2),(32,6,2),(33,6,2),(203,7,2),(202,7,2),(20,3,2),(157,0,0),(193,5,2),(40,7,2),(2,1,1),(15,2,2),(6,1,1),(34,6,2),(35,6,2),(16,3,2),(7,1,1),(36,7,2),(18,3,2),(26,5,2),(27,5,2),(183,4,2),(38,7,2),(25,5,2),(37,7,2),(21,4,2),(19,3,2),(5,1,1); +INSERT INTO t1 values (179,5,2); +update t1 set parent_id=parent_id+100; +select * from t1 where parent_id=102; +update t1 set id=id+1000; +update t1 set id=1024 where id=1009; +select * from t1; +update ignore t1 set id=id+1; # This will change all rows +select * from t1; +update ignore t1 set id=1023 where id=1010; +select * from t1 where parent_id=102; +explain select level from t1 where level=1; +select level,id from t1 where level=1; +select level,id,parent_id from t1 where level=1; +select level,id from t1 where level=1 order by id; +delete from t1 where level=1; +select * from t1; +drop table t1; + +# +# Test of index only reads +# +CREATE TABLE t1 ( + sca_code char(6) NOT NULL, + cat_code char(6) NOT NULL, + sca_desc varchar(50), + lan_code char(2) NOT NULL, + sca_pic varchar(100), + sca_sdesc varchar(50), + sca_sch_desc varchar(16), + PRIMARY KEY (sca_code, cat_code, lan_code) +) type = innobase ; + +INSERT INTO t1 ( sca_code, cat_code, sca_desc, lan_code, sca_pic, sca_sdesc, sca_sch_desc) VALUES ( 'PD', 'J', 'PENDANT', 'EN', NULL, NULL, 'PENDANT'),( 'RI', 'J', 'RING', 'EN', NULL, NULL, 'RING'); +select count(*) from t1 where sca_code = 'PD'; +drop table t1; + +# +# Test of opening table twice +# +CREATE TABLE t1 (a int not null, primary key (a)) type=innobase; +insert into t1 values(1),(2),(3); +select t1.a from t1 natural join t1 as t2 order by t1.a; +drop table t1; diff --git a/sql/ha_berkeley.cc b/sql/ha_berkeley.cc index 981526910af..0cf789056c9 100644 --- a/sql/ha_berkeley.cc +++ b/sql/ha_berkeley.cc @@ -770,10 +770,8 @@ DBT *ha_berkeley::pack_key(DBT *key, uint keynr, char *buff, for (; key_part != end && (int) key_length > 0 ; key_part++) { - uint offset=0; if (key_part->null_bit) { - offset=1; if (!(*buff++ = (*key_ptr == 0))) // Store 0 if NULL { key_length-= key_part->store_length; @@ -783,7 +781,7 @@ DBT *ha_berkeley::pack_key(DBT *key, uint keynr, char *buff, } key_ptr++; } - buff=key_part->field->keypack(buff,key_ptr+offset,key_part->length); + buff=key_part->field->keypack(buff,key_ptr,key_part->length); key_ptr+=key_part->store_length; key_length-=key_part->store_length; } |