Make WordPress Core


Ignore:
Timestamp:
03/27/2017 07:33:55 PM (7 years ago)
Author:
jeremyfelt
Message:

Tests: Use utf8mb4 max index length when creating keys.

In [31349], core varchar column key lengths were changed from 255 to 191 to support the 767 byte index size limit on standard utf8mb4 MySQL installs. This changes the DB schema tests to match.

Props caseypatrickdriscoll, clarinetlord.
Fixes #35958.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/dbdelta.php

    r39921 r40339  
    1010
    1111    /**
     12     * The maximum size of an index with utf8mb4 collation and charset with a standard
     13     * byte limit of 767. floor(767/4) = 191 characters.
     14     */
     15    protected $max_index_length = 191;
     16
     17    /**
    1218     * Make sure the upgrade code is loaded before the tests are run.
    1319     */
     
    3541                column_3 blob,
    3642                PRIMARY KEY  (id),
    37                 KEY key_1 (column_1),
    38                 KEY compound_key (id,column_1),
     43                KEY key_1 (column_1($this->max_index_length)),
     44                KEY compound_key (id,column_1($this->max_index_length)),
    3945                FULLTEXT KEY fulltext_key (column_1)
    4046            ) ENGINE=MyISAM
     
    107113                column_1 varchar(255) NOT NULL,
    108114                PRIMARY KEY  (id),
    109                 KEY key_1 (column_1),
    110                 KEY compound_key (id,column_1)
     115                KEY key_1 (column_1($this->max_index_length)),
     116                KEY compound_key (id,column_1($this->max_index_length))
    111117            )
    112118            "
     
    130136                column_1 varchar(255) NOT NULL,
    131137                PRIMARY KEY  (id),
    132                 KEY key_1 (column_1),
    133                 KEY compound_key (id,column_1)
     138                KEY key_1 (column_1($this->max_index_length)),
     139                KEY compound_key (id,column_1($this->max_index_length))
    134140            )
    135141            "
     
    159165                extra_col longtext,
    160166                PRIMARY KEY  (id),
    161                 KEY key_1 (column_1),
    162                 KEY compound_key (id,column_1)
     167                KEY key_1 (column_1($this->max_index_length)),
     168                KEY compound_key (id,column_1($this->max_index_length))
    163169            )
    164170            "
     
    192198                id bigint(20) NOT NULL AUTO_INCREMENT,
    193199                PRIMARY KEY  (id),
    194                 KEY key_1 (column_1),
    195                 KEY compound_key (id,column_1)
     200                KEY key_1 (column_1($this->max_index_length)),
     201                KEY compound_key (id,column_1($this->max_index_length))
    196202            )
    197203            "
     
    218224                extra_col longtext,
    219225                PRIMARY KEY  (id),
    220                 KEY key_1 (column_1),
    221                 KEY compound_key (id,column_1)
     226                KEY key_1 (column_1({$this->max_index_length})),
     227                KEY compound_key (id,column_1($this->max_index_length))
    222228            )
    223229            "
     
    268274                column_1 varchar(255) NOT NULL,
    269275                PRIMARY KEY  (id),
    270                 KEY key_1 (column_1),
    271                 KEY compound_key (id,column_1),
     276                KEY key_1 (column_1($this->max_index_length)),
     277                KEY compound_key (id,column_1($this->max_index_length)),
    272278                FULLTEXT KEY fulltext_key (column_1)
    273279            )
     
    380386                column_3 blob,
    381387                PRIMARY KEY  (id),
    382                 KEY key_1 (column_1),
    383                 KEY compound_key (id,column_1),
     388                KEY key_1 (column_1({$this->max_index_length})),
     389                KEY compound_key (id,column_1($this->max_index_length)),
    384390                FULLTEXT KEY fulltext_key (column_1)
    385391            ) ENGINE=MyISAM
     
    403409                column_3 tinyblob,
    404410                PRIMARY KEY  (id),
    405                 KEY key_1 (column_1),
    406                 KEY compound_key (id,column_1),
     411                KEY key_1 (column_1({$this->max_index_length})),
     412                KEY compound_key (id,column_1($this->max_index_length)),
    407413                FULLTEXT KEY fulltext_key (column_1)
    408414            ) ENGINE=MyISAM
     
    426432                column_3 blob,
    427433                PRIMARY KEY  (id),
    428                 KEY key_1 (column_1),
    429                 KEY compound_key (id,column_1),
     434                KEY key_1 (column_1({$this->max_index_length})),
     435                KEY compound_key (id,column_1($this->max_index_length)),
    430436                FULLTEXT KEY fulltext_key (column_1)
    431437            ) ENGINE=MyISAM
     
    453459                column_3 mediumblob,
    454460                PRIMARY KEY  (id),
    455                 KEY key_1 (column_1),
    456                 KEY compound_key (id,column_1),
     461                KEY key_1 (column_1({$this->max_index_length})),
     462                KEY compound_key (id,column_1($this->max_index_length)),
    457463                FULLTEXT KEY fulltext_key (column_1)
    458464            ) ENGINE=MyISAM
     
    477483                `column_1` varchar(255) NOT NULL,
    478484                PRIMARY KEY  (id),
    479                 KEY compound_key (id,column_1)
     485                KEY compound_key (id,column_1($this->max_index_length))
    480486            )
    481487        ";
     
    549555                `references` varchar(255) NOT NULL,
    550556                PRIMARY KEY  (`id`),
    551                 KEY `compound_key` (`id`,`references`)
     557                KEY `compound_key` (`id`,`references`($this->max_index_length))
    552558            )
    553559        ";
     
    581587                `references` varchar(255) NOT NULL,
    582588                PRIMARY KEY  (id),
    583                 KEY key_1 (column_1),
    584                 KEY compound_key (id , column_1),
    585                 KEY compound_key2 (id,`references`),
     589                KEY key_1 (column_1($this->max_index_length)),
     590                KEY compound_key (id , column_1($this->max_index_length)),
     591                KEY compound_key2 (id,`references`($this->max_index_length)),
    586592                FULLTEXT KEY fulltext_key (column_1)
    587593            ) ENGINE=MyISAM
     
    596602            array(
    597603                "{$wpdb->prefix}dbdelta_test.references" => "Added column {$wpdb->prefix}dbdelta_test.references",
    598                 0 => "Added index {$wpdb->prefix}dbdelta_test KEY `compound_key2` (`id`,`references`)",
     604                0 => "Added index {$wpdb->prefix}dbdelta_test KEY `compound_key2` (`id`,`references`($this->max_index_length))",
    599605            ),
    600606            $updates
     
    624630                column_3 blob,
    625631                PRIMARY KEY  (id),
    626                 KEY key_1 (column_1),
    627                 KEY compound_key (id,column_1),
     632                KEY key_1 (column_1($this->max_index_length)),
     633                KEY compound_key (id,column_1($this->max_index_length)),
    628634                FULLTEXT KEY fulltext_key (column_1),
    629                 INDEX key_2 (column_1),
    630                 UNIQUE KEY key_3 (column_1),
    631                 UNIQUE INDEX key_4 (column_1),
     635                INDEX key_2 (column_1($this->max_index_length)),
     636                UNIQUE KEY key_3 (column_1($this->max_index_length)),
     637                UNIQUE INDEX key_4 (column_1($this->max_index_length)),
    632638                FULLTEXT INDEX key_5 (column_1),
    633639            ) ENGINE=MyISAM
     
    637643        $this->assertSame(
    638644            array(
    639                 0 => "Added index {$wpdb->prefix}dbdelta_test KEY `key_2` (`column_1`)",
    640                 1 => "Added index {$wpdb->prefix}dbdelta_test UNIQUE KEY `key_3` (`column_1`)",
    641                 2 => "Added index {$wpdb->prefix}dbdelta_test UNIQUE KEY `key_4` (`column_1`)",
     645                0 => "Added index {$wpdb->prefix}dbdelta_test KEY `key_2` (`column_1`($this->max_index_length))",
     646                1 => "Added index {$wpdb->prefix}dbdelta_test UNIQUE KEY `key_3` (`column_1`($this->max_index_length))",
     647                2 => "Added index {$wpdb->prefix}dbdelta_test UNIQUE KEY `key_4` (`column_1`($this->max_index_length))",
    642648                3 => "Added index {$wpdb->prefix}dbdelta_test FULLTEXT KEY `key_5` (`column_1`)",
    643649            ),
     
    663669                column_3 blob,
    664670                PRIMARY KEY  (id),
    665                 INDEX key_1 (column_1),
    666                 INDEX compound_key (id,column_1),
     671                INDEX key_1 (column_1($this->max_index_length)),
     672                INDEX compound_key (id,column_1($this->max_index_length)),
    667673                FULLTEXT INDEX fulltext_key (column_1)
    668674            ) ENGINE=MyISAM
     
    686692                column_3 blob,
    687693                PRIMARY KEY  (id),
    688                 KEY key_1 (column_1),
    689                 KEY compound_key (id,column_1),
     694                KEY key_1 (column_1($this->max_index_length)),
     695                KEY compound_key (id,column_1($this->max_index_length)),
    690696                FULLTEXT KEY fulltext_key (column_1),
    691697                KEY key_2 (column_1(10)),
     
    721727                column_3 blob,
    722728                PRIMARY KEY  (id),
    723                 KEY key_1 (column_1 DESC),
    724                 KEY compound_key (id,column_1 ASC),
     729                KEY key_1 (column_1($this->max_index_length) DESC),
     730                KEY compound_key (id,column_1($this->max_index_length) ASC),
    725731                FULLTEXT KEY fulltext_key (column_1)
    726732            ) ENGINE=MyISAM
     
    745751                column_3 blob,
    746752                PRIMARY KEY (id),
    747                 KEY key_1 (column_1),
    748                 KEY compound_key (id,column_1),
     753                KEY key_1 (column_1($this->max_index_length)),
     754                KEY compound_key (id,column_1($this->max_index_length)),
    749755                FULLTEXT KEY fulltext_key (column_1)
    750756            ) ENGINE=MyISAM
     
    769775                column_3 blob,
    770776                PRIMARY KEY  (id),
    771                 KEY key_1        (         column_1),
    772                 KEY compound_key (id,      column_1),
     777                KEY key_1        (         column_1($this->max_index_length)),
     778                KEY compound_key (id,      column_1($this->max_index_length)),
    773779                FULLTEXT KEY fulltext_key (column_1)
    774780            ) ENGINE=MyISAM
     
    793799                column_3 blob,
    794800                PRIMARY KEY  (id),
    795                 key key_1 (column_1),
    796                 key compound_key (id,column_1),
     801                key key_1 (column_1($this->max_index_length)),
     802                key compound_key (id,column_1($this->max_index_length)),
    797803                FULLTEXT KEY fulltext_key (column_1)
    798804            ) ENGINE=MyISAM
     
    817823                column_3 blob,
    818824                PRIMARY KEY  (id),
    819                 KEY KEY_1 (column_1),
    820                 KEY compOUND_key (id,column_1),
     825                KEY KEY_1 (column_1($this->max_index_length)),
     826                KEY compOUND_key (id,column_1($this->max_index_length)),
    821827                FULLTEXT KEY FULLtext_kEY (column_1)
    822828            ) ENGINE=MyISAM
     
    840846                column_3 blob,
    841847                PRIMARY KEY  (id),
    842                 KEY key_1 (column_1(255)),
    843                 KEY compound_key (id,column_1),
     848                KEY key_1 (column_1({$this->max_index_length})),
     849                KEY compound_key (id,column_1($this->max_index_length)),
    844850                FULLTEXT KEY fulltext_key (column_1)
    845851            ) ENGINE=MyISAM
     
    863869                column_3 blob,
    864870                PRIMARY KEY  (id),
    865                 KEY key_1 (column_1),
    866                 KEY compound_key (id,column_1),
     871                KEY key_1 (column_1($this->max_index_length)),
     872                KEY compound_key (id,column_1($this->max_index_length)),
    867873                KEY changing_key_length (column_1(20)),
    868874                FULLTEXT KEY fulltext_key (column_1)
     
    882888                column_3 blob,
    883889                PRIMARY KEY  (id),
    884                 KEY key_1 (column_1),
    885                 KEY compound_key (id,column_1),
     890                KEY key_1 (column_1($this->max_index_length)),
     891                KEY compound_key (id,column_1($this->max_index_length)),
    886892                KEY changing_key_length (column_1(50)),
    887893                FULLTEXT KEY fulltext_key (column_1)
     
    899905                column_3 blob,
    900906                PRIMARY KEY  (id),
    901                 KEY key_1 (column_1),
    902                 KEY compound_key (id,column_1),
     907                KEY key_1 (column_1($this->max_index_length)),
     908                KEY compound_key (id,column_1($this->max_index_length)),
    903909                KEY changing_key_length (column_1(1)),
    904910                FULLTEXT KEY fulltext_key (column_1)
Note: See TracChangeset for help on using the changeset viewer.