@@ -267,8 +267,8 @@ public function testShowCreateTable1() {
267267 ID BIGINT PRIMARY KEY AUTO_INCREMENT NOT NULL,
268268 option_name VARCHAR(255) default '',
269269 option_value TEXT NOT NULL,
270- UNIQUE KEY option_name (option_name),
271- KEY composite (option_name, option_value)
270+ UNIQUE KEY option_name (option_name(100) ),
271+ KEY composite (option_name(100) , option_value(100) )
272272 ); "
273273 );
274274
@@ -283,8 +283,8 @@ public function testShowCreateTable1() {
283283 `option_name` varchar(255) DEFAULT '',
284284 `option_value` text NOT NULL DEFAULT '',
285285 PRIMARY KEY (`ID`),
286- KEY `composite` (`option_name`, `option_value`),
287- UNIQUE KEY `option_name` (`option_name`)
286+ KEY `composite` (`option_name`(100) , `option_value`(100) ),
287+ UNIQUE KEY `option_name` (`option_name`(100) )
288288); " ,
289289 $ results [0 ]->{'Create Table ' }
290290 );
@@ -337,8 +337,8 @@ public function testShowCreateTableQuoted() {
337337 ID BIGINT PRIMARY KEY AUTO_INCREMENT NOT NULL,
338338 option_name VARCHAR(255) default '',
339339 option_value TEXT NOT NULL,
340- UNIQUE KEY option_name (option_name),
341- KEY composite (option_name, option_value)
340+ UNIQUE KEY option_name (option_name(100) ),
341+ KEY composite (option_name, option_value(100) )
342342 ); "
343343 );
344344
@@ -353,8 +353,8 @@ public function testShowCreateTableQuoted() {
353353 `option_name` varchar(255) DEFAULT '',
354354 `option_value` text NOT NULL DEFAULT '',
355355 PRIMARY KEY (`ID`),
356- KEY `composite` (`option_name`, `option_value`),
357- UNIQUE KEY `option_name` (`option_name`)
356+ KEY `composite` (`option_name`(100) , `option_value`(100) ),
357+ UNIQUE KEY `option_name` (`option_name`(100) )
358358); " ,
359359 $ results [0 ]->{'Create Table ' }
360360 );
@@ -418,8 +418,8 @@ public function testCreateTablseWithIdenticalIndexNames() {
418418 ID BIGINT PRIMARY KEY AUTO_INCREMENT NOT NULL,
419419 option_name VARCHAR(255) default '',
420420 option_value TEXT NOT NULL,
421- KEY `option_name` (`option_name`),
422- KEY `double__underscores` (`option_name`, `ID`)
421+ KEY `option_name` (`option_name`(100) ),
422+ KEY `double__underscores` (`option_name`(100) , `ID`)
423423 ); "
424424 );
425425
@@ -428,8 +428,8 @@ public function testCreateTablseWithIdenticalIndexNames() {
428428 ID BIGINT PRIMARY KEY AUTO_INCREMENT NOT NULL,
429429 option_name VARCHAR(255) default '',
430430 option_value TEXT NOT NULL,
431- KEY `option_name` (`option_name`),
432- KEY `double__underscores` (`option_name`, `ID`)
431+ KEY `option_name` (`option_name`(100) ),
432+ KEY `double__underscores` (`option_name`(100) , `ID`)
433433 ); "
434434 );
435435 }
@@ -440,8 +440,8 @@ public function testShowCreateTablePreservesDoubleUnderscoreKeyNames() {
440440 ID BIGINT PRIMARY KEY AUTO_INCREMENT NOT NULL,
441441 option_name VARCHAR(255) default '',
442442 option_value TEXT NOT NULL,
443- KEY `option_name` (`option_name`),
444- KEY `double__underscores` (`option_name`, `ID`)
443+ KEY `option_name` (`option_name`(100) ),
444+ KEY `double__underscores` (`option_name`(100) , `ID`)
445445 ); "
446446 );
447447
@@ -455,8 +455,43 @@ public function testShowCreateTablePreservesDoubleUnderscoreKeyNames() {
455455 `option_name` varchar(255) DEFAULT \'\',
456456 `option_value` text NOT NULL DEFAULT \'\',
457457 PRIMARY KEY (`ID`),
458- KEY `double__underscores` (`option_name`, `ID`),
459- KEY `option_name` (`option_name`)
458+ KEY `double__underscores` (`option_name`(100), `ID`),
459+ KEY `option_name` (`option_name`(100))
460+ ); ' ,
461+ $ results [0 ]->{'Create Table ' }
462+ );
463+ }
464+
465+ public function testShowCreateTableLimitsKeyLengths () {
466+ $ this ->assertQuery (
467+ 'CREATE TABLE _tmp__table (
468+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
469+ `order_id` bigint(20) unsigned DEFAULT NULL,
470+ `meta_key` varchar(20) DEFAULT NULL,
471+ `meta_value` text DEFAULT NULL,
472+ `meta_data` mediumblob DEFAULT NULL,
473+ PRIMARY KEY (`id`),
474+ KEY `meta_key_value` (`meta_key`(20),`meta_value`(82)),
475+ KEY `order_id_meta_key_meta_value` (`order_id`,`meta_key`(100),`meta_value`(82)),
476+ KEY `order_id_meta_key_meta_data` (`order_id`,`meta_key`(100),`meta_data`(100))
477+ ); '
478+ );
479+
480+ $ this ->assertQuery (
481+ 'SHOW CREATE TABLE _tmp__table; '
482+ );
483+ $ results = $ this ->engine ->get_query_results ();
484+ $ this ->assertEquals (
485+ 'CREATE TABLE `_tmp__table` (
486+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
487+ `order_id` bigint(20) unsigned DEFAULT NULL,
488+ `meta_key` varchar(20) DEFAULT NULL,
489+ `meta_value` text DEFAULT NULL,
490+ `meta_data` mediumblob DEFAULT NULL,
491+ PRIMARY KEY (`id`),
492+ KEY `order_id_meta_key_meta_data` (`order_id`, `meta_key`(20), `meta_data`(100)),
493+ KEY `order_id_meta_key_meta_value` (`order_id`, `meta_key`(20), `meta_value`(100)),
494+ KEY `meta_key_value` (`meta_key`(20), `meta_value`(100))
460495); ' ,
461496 $ results [0 ]->{'Create Table ' }
462497 );
0 commit comments