mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Enable key lengths of up to 3K on 32-bit platforms.
mysql-test/r/bdb.result: Add new results mysql-test/r/innodb.result: Add new results mysql-test/t/bdb.test: Add simple test that large keys are allowed mysql-test/t/innodb.test: Add simple test that large keys are allowed sql/unireg.h: Allow key length of 3K even on 32-bit platforms
This commit is contained in:
@ -1891,3 +1891,17 @@ t1 CREATE TABLE `t1` (
|
|||||||
) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
|
) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
set storage_engine=MyISAM;
|
set storage_engine=MyISAM;
|
||||||
|
create table t1 (a varchar(255) character set utf8,
|
||||||
|
b varchar(255) character set utf8,
|
||||||
|
c varchar(255) character set utf8,
|
||||||
|
d varchar(255) character set utf8,
|
||||||
|
key (a,b,c,d)) engine=bdb;
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (a varchar(255) character set utf8,
|
||||||
|
b varchar(255) character set utf8,
|
||||||
|
c varchar(255) character set utf8,
|
||||||
|
d varchar(255) character set utf8,
|
||||||
|
e varchar(255) character set utf8,
|
||||||
|
key (a,b,c,d,e)) engine=bdb;
|
||||||
|
ERROR 42000: Specified key was too long; max key length is 3072 bytes
|
||||||
|
End of 5.0 tests
|
||||||
|
@ -2772,3 +2772,17 @@ insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken');
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
drop table t2;
|
drop table t2;
|
||||||
commit;
|
commit;
|
||||||
|
create table t1 (a varchar(255) character set utf8,
|
||||||
|
b varchar(255) character set utf8,
|
||||||
|
c varchar(255) character set utf8,
|
||||||
|
d varchar(255) character set utf8,
|
||||||
|
key (a,b,c,d)) engine=innodb;
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (a varchar(255) character set utf8,
|
||||||
|
b varchar(255) character set utf8,
|
||||||
|
c varchar(255) character set utf8,
|
||||||
|
d varchar(255) character set utf8,
|
||||||
|
e varchar(255) character set utf8,
|
||||||
|
key (a,b,c,d,e)) engine=innodb;
|
||||||
|
ERROR 42000: Specified key was too long; max key length is 3072 bytes
|
||||||
|
End of 5.0 tests
|
||||||
|
@ -974,3 +974,22 @@ drop table t1;
|
|||||||
|
|
||||||
# End varchar test
|
# End varchar test
|
||||||
eval set storage_engine=$default;
|
eval set storage_engine=$default;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test that we can create a large key
|
||||||
|
#
|
||||||
|
create table t1 (a varchar(255) character set utf8,
|
||||||
|
b varchar(255) character set utf8,
|
||||||
|
c varchar(255) character set utf8,
|
||||||
|
d varchar(255) character set utf8,
|
||||||
|
key (a,b,c,d)) engine=bdb;
|
||||||
|
drop table t1;
|
||||||
|
--error ER_TOO_LONG_KEY
|
||||||
|
create table t1 (a varchar(255) character set utf8,
|
||||||
|
b varchar(255) character set utf8,
|
||||||
|
c varchar(255) character set utf8,
|
||||||
|
d varchar(255) character set utf8,
|
||||||
|
e varchar(255) character set utf8,
|
||||||
|
key (a,b,c,d,e)) engine=bdb;
|
||||||
|
|
||||||
|
--echo End of 5.0 tests
|
||||||
|
@ -1751,3 +1751,22 @@ insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken');
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
drop table t2;
|
drop table t2;
|
||||||
commit;
|
commit;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test that we can create a large (>1K) key
|
||||||
|
#
|
||||||
|
create table t1 (a varchar(255) character set utf8,
|
||||||
|
b varchar(255) character set utf8,
|
||||||
|
c varchar(255) character set utf8,
|
||||||
|
d varchar(255) character set utf8,
|
||||||
|
key (a,b,c,d)) engine=innodb;
|
||||||
|
drop table t1;
|
||||||
|
--error ER_TOO_LONG_KEY
|
||||||
|
create table t1 (a varchar(255) character set utf8,
|
||||||
|
b varchar(255) character set utf8,
|
||||||
|
c varchar(255) character set utf8,
|
||||||
|
d varchar(255) character set utf8,
|
||||||
|
e varchar(255) character set utf8,
|
||||||
|
key (a,b,c,d,e)) engine=innodb;
|
||||||
|
|
||||||
|
--echo End of 5.0 tests
|
||||||
|
@ -50,11 +50,7 @@
|
|||||||
#define MAX_SYS_VAR_LENGTH 32
|
#define MAX_SYS_VAR_LENGTH 32
|
||||||
#define MAX_KEY 64 /* Max used keys */
|
#define MAX_KEY 64 /* Max used keys */
|
||||||
#define MAX_REF_PARTS 16 /* Max parts used as ref */
|
#define MAX_REF_PARTS 16 /* Max parts used as ref */
|
||||||
#if SIZEOF_CHARP > 4
|
#define MAX_KEY_LENGTH 3072 /* max possible key */
|
||||||
#define MAX_KEY_LENGTH 3072 /* max possible key, if 64 bits */
|
|
||||||
#else
|
|
||||||
#define MAX_KEY_LENGTH 1024 /* max possible key, if 32 bits */
|
|
||||||
#endif
|
|
||||||
#if SIZEOF_OFF_T > 4
|
#if SIZEOF_OFF_T > 4
|
||||||
#define MAX_REFLENGTH 8 /* Max length for record ref */
|
#define MAX_REFLENGTH 8 /* Max length for record ref */
|
||||||
#else
|
#else
|
||||||
|
Reference in New Issue
Block a user