• Marko Mäkelä's avatar
    MDEV-14904 Backport innodb_default_row_format · 8ef727b3
    Marko Mäkelä authored
    InnoDB in Debian uses utf8mb4 as default character set since
    version 10.0.20-2. This leads to major pain due to keys longer
    than 767 bytes.
    
    MariaDB 10.2 (and MySQL 5.7) introduced the setting
    innodb_default_row_format that is DYNAMIC by default. These
    versions also changed the default values of the parameters
    innodb_large_prefix=ON and innodb_file_format=Barracuda.
    This would allow longer column index prefixes to be created.
    The original purpose of these parameters was to allow InnoDB
    to be downgraded to MySQL 5.1, which is long out of support.
    
    Every InnoDB version since MySQL 5.5 does support operation
    with the relaxed limits.
    
    We backport the parameter innodb_default_row_format to
    MariaDB 10.1, but we will keep its default value at COMPACT.
    This allows MariaDB 10.1 to be configured so that CREATE TABLE
    is less likely to encounter a problem with the limitation:
    
    	loose_innodb_large_prefix=ON
    	loose_innodb_default_row_format=DYNAMIC
    
    (Note that the setting innodb_large_prefix was deprecated in
    MariaDB 10.2 and removed in MariaDB 10.3.)
    
    The only observable difference in the behaviour with the default
    settings should be that ROW_FORMAT=DYNAMIC tables can be created
    both in the system tablespace and in .ibd files, no matter what
    innodb_file_format has been assigned to. Unlike MariaDB 10.2,
    we are not changing the default value of innodb_file_format,
    so ROW_FORMAT=COMPRESSED tables cannot be created without
    changing the parameter.
    8ef727b3
dict0crea.cc 52.1 KB