Skip to content
  • Sivert Sorumgard's avatar
    acf99470
    Bug#29842749: POSSIBLE TO CHANGE LOWER_CASE_TABLE_NAMES FROM 5.7 TO 8.0 · acf99470
    Sivert Sorumgard authored
    When upgrading from 5.7 to 8.0, there is no way to verify that the setting
    of lower_case_table_names (l_c_t_n) used in 5.7 is retained in 8.0. Hence,
    when starting 8.0, we need to check that the invariants imposed by the
    requested l_c_t_n setting are followed, and to emit an error and abort
    upgrade if the invariants are broken. We do not expect this to be a common
    use case, as most people will use the same l_c_t_n setting for 8.0 as
    they did for 5.7, but we shuold at least avoid server crashes if the
    l_c_t_n setting is changed.
    
    This patch adds a check during upgrade from 5.7 to 8.0 to verify that if
    setting l_c_t_n = 1, then all table- and schema names must be in lower
    case. If there are upper case names, upgrade fails with an error in the
    error log.
    
    There is already a check in InnoDB that emits an error if if the tablespace
    file cannot be opened - this will catch situations where the character
    case of the tablespace file is not as expected.
    
    This patch also adds MTR tests to check the behavior for various combinations
    of source- and target l_c_t_n settings as well as file system case
    sensitivities.
    
    Unrelated to the above, this patch also:
    
    * Adds two new test cases for upgrade involving recent public releases.
    * Re-classifies the following tests to 'big-test': dd_upgrade_cs,
      mysql_57_inplace_upgrade, mysql_80_inplace_upgrade, mysql_upgrade
    
    Change-Id: If401c01fee279a72b28eb938fb99a62273f4a503
    acf99470
    Bug#29842749: POSSIBLE TO CHANGE LOWER_CASE_TABLE_NAMES FROM 5.7 TO 8.0
    Sivert Sorumgard authored
    When upgrading from 5.7 to 8.0, there is no way to verify that the setting
    of lower_case_table_names (l_c_t_n) used in 5.7 is retained in 8.0. Hence,
    when starting 8.0, we need to check that the invariants imposed by the
    requested l_c_t_n setting are followed, and to emit an error and abort
    upgrade if the invariants are broken. We do not expect this to be a common
    use case, as most people will use the same l_c_t_n setting for 8.0 as
    they did for 5.7, but we shuold at least avoid server crashes if the
    l_c_t_n setting is changed.
    
    This patch adds a check during upgrade from 5.7 to 8.0 to verify that if
    setting l_c_t_n = 1, then all table- and schema names must be in lower
    case. If there are upper case names, upgrade fails with an error in the
    error log.
    
    There is already a check in InnoDB that emits an error if if the tablespace
    file cannot be opened - this will catch situations where the character
    case of the tablespace file is not as expected.
    
    This patch also adds MTR tests to check the behavior for various combinations
    of source- and target l_c_t_n settings as well as file system case
    sensitivities.
    
    Unrelated to the above, this patch also:
    
    * Adds two new test cases for upgrade involving recent public releases.
    * Re-classifies the following tests to 'big-test': dd_upgrade_cs,
      mysql_57_inplace_upgrade, mysql_80_inplace_upgrade, mysql_upgrade
    
    Change-Id: If401c01fee279a72b28eb938fb99a62273f4a503
Loading