List:Internals« Previous MessageNext Message »
From:Jim Winstead Date:December 1 2005 7:11pm
Subject:bk commit into 5.0 tree (jimw:1.2034)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of jimw. When jimw does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.2034 05/12/01 11:11:03 jimw@stripped +5 -0
  Enable key lengths of up to 3K on 32-bit platforms.

  sql/unireg.h
    1.42 05/12/01 11:11:00 jimw@stripped +1 -5
    Allow key length of 3K even on 32-bit platforms

  mysql-test/t/innodb.test
    1.117 05/12/01 11:11:00 jimw@stripped +19 -0
    Add simple test that large keys are allowed

  mysql-test/t/bdb.test
    1.49 05/12/01 11:11:00 jimw@stripped +19 -0
    Add simple test that large keys are allowed

  mysql-test/r/innodb.result
    1.146 05/12/01 11:10:59 jimw@stripped +14 -0
    Add new results

  mysql-test/r/bdb.result
    1.47 05/12/01 11:10:59 jimw@stripped +14 -0
    Add new results

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	jimw
# Host:	rama.(none)
# Root:	/home/jimw/my/mysql-5.0-keysize

--- 1.41/sql/unireg.h	2005-11-23 16:36:25 -08:00
+++ 1.42/sql/unireg.h	2005-12-01 11:11:00 -08:00
@@ -50,11 +50,7 @@
 #define MAX_SYS_VAR_LENGTH 32
 #define MAX_KEY 64				/* Max used keys */
 #define MAX_REF_PARTS 16			/* Max parts used as ref */
-#if SIZEOF_CHARP > 4
-#define MAX_KEY_LENGTH 3072			/* max possible key, if 64 bits */
-#else
-#define MAX_KEY_LENGTH 1024			/* max possible key, if 32 bits */
-#endif
+#define MAX_KEY_LENGTH 3072			/* max possible key */
 #if SIZEOF_OFF_T > 4
 #define MAX_REFLENGTH 8				/* Max length for record ref */
 #else

--- 1.145/mysql-test/r/innodb.result	2005-10-19 09:06:22 -07:00
+++ 1.146/mysql-test/r/innodb.result	2005-12-01 11:10:59 -08:00
@@ -2772,3 +2772,17 @@
 drop table t1;
 drop table t2;
 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

--- 1.116/mysql-test/t/innodb.test	2005-10-19 09:06:22 -07:00
+++ 1.117/mysql-test/t/innodb.test	2005-12-01 11:11:00 -08:00
@@ -1751,3 +1751,22 @@
 drop table t1;
 drop table t2;
 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

--- 1.46/mysql-test/r/bdb.result	2005-11-02 06:28:55 -08:00
+++ 1.47/mysql-test/r/bdb.result	2005-12-01 11:10:59 -08:00
@@ -1891,3 +1891,17 @@
 ) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
 drop table t1;
 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

--- 1.48/mysql-test/t/bdb.test	2005-11-02 06:28:55 -08:00
+++ 1.49/mysql-test/t/bdb.test	2005-12-01 11:11:00 -08:00
@@ -974,3 +974,22 @@
 
 # End varchar test
 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
Thread
bk commit into 5.0 tree (jimw:1.2034)Jim Winstead1 Dec