summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandrey@lmy004. <>2005-11-01 19:37:59 +0100
committerandrey@lmy004. <>2005-11-01 19:37:59 +0100
commit3a08c5257a10e4660baa3cfc3f3827d37aa2ab14 (patch)
tree087c28f199d9ce9940b7756447619145023cab20
parent153d4c400ee0c8023c4e1f4be9aadb6fc4768bee (diff)
downloadmariadb-git-3a08c5257a10e4660baa3cfc3f3827d37aa2ab14.tar.gz
fix for bug #14381
(BDB keylength limitted to 255)
-rw-r--r--mysql-test/r/bdb.result56
-rw-r--r--sql/ha_berkeley.h4
2 files changed, 28 insertions, 32 deletions
diff --git a/mysql-test/r/bdb.result b/mysql-test/r/bdb.result
index 2bba44d36e9..530ff6ef59b 100644
--- a/mysql-test/r/bdb.result
+++ b/mysql-test/r/bdb.result
@@ -1584,8 +1584,6 @@ g 10
h 10
i 10
alter table t1 modify v varchar(300), drop key v, drop key v_2, add key v (v);
-Warnings:
-Warning 1071 Specified key was too long; max key length is 255 bytes
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -1594,7 +1592,7 @@ t1 CREATE TABLE `t1` (
`t` text,
KEY `c` (`c`),
KEY `t` (`t`(10)),
- KEY `v` (`v`(255))
+ KEY `v` (`v`)
) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
select count(*) from t1 where v='a';
count(*)
@@ -1616,19 +1614,19 @@ count(*)
9
explain select count(*) from t1 where v='a ';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref v v 258 const # Using where
+1 SIMPLE t1 ref v v 303 const # Using where
explain select count(*) from t1 where v like 'a%';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range v v 258 NULL # Using where
+1 SIMPLE t1 range v v 303 NULL # Using where
explain select count(*) from t1 where v between 'a' and 'a ';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref v v 258 const # Using where
+1 SIMPLE t1 ref v v 303 const # Using where
explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref v v 258 const # Using where
+1 SIMPLE t1 ref v v 303 const # Using where
explain select * from t1 where v='a';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ref v v 258 const # Using where
+1 SIMPLE t1 ref v v 303 const # Using where
select v,count(*) from t1 group by v limit 10;
v count(*)
a 1
@@ -1656,15 +1654,15 @@ i 10
select sql_big_result v,count(t) from t1 group by v limit 10;
v count(t)
a 1
-a 10
-b 10
-c 10
-d 10
-e 10
-f 10
-g 10
-h 10
-i 10
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
alter table t1 drop key v, add key v (v(30));
show create table t1;
Table Create Table
@@ -1746,8 +1744,6 @@ g 10
h 10
i 10
alter table t1 modify v varchar(600), drop key v, add key v (v);
-Warnings:
-Warning 1071 Specified key was too long; max key length is 255 bytes
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -1756,7 +1752,7 @@ t1 CREATE TABLE `t1` (
`t` text,
KEY `c` (`c`),
KEY `t` (`t`(10)),
- KEY `v` (`v`(255))
+ KEY `v` (`v`)
) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
select v,count(*) from t1 group by v limit 10;
v count(*)
@@ -1785,15 +1781,15 @@ i 10
select sql_big_result v,count(t) from t1 group by v limit 10;
v count(t)
a 1
-a 10
-b 10
-c 10
-d 10
-e 10
-f 10
-g 10
-h 10
-i 10
+a 10
+b 10
+c 10
+d 10
+e 10
+f 10
+g 10
+h 10
+i 10
drop table t1;
create table t1 (a char(10), unique (a));
insert into t1 values ('a ');
@@ -1874,7 +1870,7 @@ a b
drop table t1;
create table t1 (v varchar(65530), key(v));
Warnings:
-Warning 1071 Specified key was too long; max key length is 255 bytes
+Warning 1071 Specified key was too long; max key length is 1024 bytes
drop table if exists t1;
create table t1 (v varchar(65536));
Warnings:
diff --git a/sql/ha_berkeley.h b/sql/ha_berkeley.h
index c747b4eef81..99e13286554 100644
--- a/sql/ha_berkeley.h
+++ b/sql/ha_berkeley.h
@@ -94,8 +94,8 @@ class ha_berkeley: public handler
uint max_supported_keys() const { return MAX_KEY-1; }
uint extra_rec_buf_length() { return BDB_HIDDEN_PRIMARY_KEY_LENGTH; }
ha_rows estimate_rows_upper_bound();
- uint max_supported_key_length() const { return MAX_KEY_LENGTH; }
- uint max_supported_key_part_length() const { return MAX_KEY_LENGTH; }
+ uint max_supported_key_length() const { return 4294967295L; }
+ uint max_supported_key_part_length() const { return 4294967295L; }
const key_map *keys_to_use_for_scanning() { return &key_map_full; }
bool has_transactions() { return 1;}