• Mattias Jonsson's avatar
    Bug#37402: Mysql cant read partitioned table with capital letter in the name · c1e54765
    Mattias Jonsson authored
    Problem was that ha_partition had HA_FILE_BASED flag set
    (since it uses a .par file), but after open it uses the first partitions
    flags, which results in different case handling for create and for
    open.
    
    Solution was to change the underlying partition name so it was consistent.
    (Only happens when lower_case_table_names = 2, i.e. Mac OS X and storage
    engines without HA_FILE_BASED, like InnoDB and Memory.)
    
    (Recommit after adding rename of check_lowercase_names to
    get_canonical_filename, and moved it from handler.h to mysql_priv.h)
    
    NOTE: if a mixed case name for a partitioned table was created when
    lower_case_table_name = 2 it should be renamed or dropped before using
    the updated version (See bug#37402 for more info)
    
    mysql-test/include/have_case_insensitive_file_system.inc:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      Added include file.
    mysql-test/include/have_lowercase0.inc:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      moved case insensitive file system to a new file, leaving only
      lower_case_table_names.
    mysql-test/include/have_lowercase2.inc:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      Added include file.
    mysql-test/lib/mtr_report.pl:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      Removed a duplicate row and suppressed warning about setting
      lower_case_table_names to 2 on case sensitive file systems.
    mysql-test/r/case_insensitive_file_system.require:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      Added requirement file.
    mysql-test/r/lowercase0.require:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      moved case insensitive file system to a new file, leaving only
      lower_case_table_names.
    mysql-test/suite/parts/inc/partition_mgm.inc:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New include file for testing partitioning management functions for different
      settings of lower_case_table_names.
    mysql-test/suite/parts/r/partition_mgm_lc0_archive.result:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New result file.
    mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New result file.
    mysql-test/suite/parts/r/partition_mgm_lc0_memory.result:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New result file.
    mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New result file.
    mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New result file.
    mysql-test/suite/parts/r/partition_mgm_lc1_archive.result:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New result file.
    mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New result file.
    mysql-test/suite/parts/r/partition_mgm_lc1_memory.result:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New result file.
    mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New result file.
    mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New result file.
    mysql-test/suite/parts/r/partition_mgm_lc2_archive.result:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New result file.
    mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New result file.
    mysql-test/suite/parts/r/partition_mgm_lc2_memory.result:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New result file.
    mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New result file.
    mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New result file.
    mysql-test/suite/parts/t/partition_mgm_lc0_archive.test:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New test file.
    mysql-test/suite/parts/t/partition_mgm_lc0_innodb.test:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New test file.
    mysql-test/suite/parts/t/partition_mgm_lc0_memory.test:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New test file.
    mysql-test/suite/parts/t/partition_mgm_lc0_myisam.test:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New test file.
    mysql-test/suite/parts/t/partition_mgm_lc0_ndb.test:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New test file.
    mysql-test/suite/parts/t/partition_mgm_lc1_archive-master.opt:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New opt file.
    mysql-test/suite/parts/t/partition_mgm_lc1_archive.test:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New test file.
    mysql-test/suite/parts/t/partition_mgm_lc1_innodb-master.opt:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New opt file.
    mysql-test/suite/parts/t/partition_mgm_lc1_innodb.test:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New test file.
    mysql-test/suite/parts/t/partition_mgm_lc1_memory-master.opt:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New opt file.
    mysql-test/suite/parts/t/partition_mgm_lc1_memory.test:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New test file.
    mysql-test/suite/parts/t/partition_mgm_lc1_myisam-master.opt:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New opt file.
    mysql-test/suite/parts/t/partition_mgm_lc1_myisam.test:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New test file.
    mysql-test/suite/parts/t/partition_mgm_lc1_ndb-master.opt:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New opt file.
    mysql-test/suite/parts/t/partition_mgm_lc1_ndb.test:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New test file.
    mysql-test/suite/parts/t/partition_mgm_lc2_archive-master.opt:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New opt file.
    mysql-test/suite/parts/t/partition_mgm_lc2_archive.test:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New test file.
    mysql-test/suite/parts/t/partition_mgm_lc2_innodb-master.opt:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New opt file.
    mysql-test/suite/parts/t/partition_mgm_lc2_innodb.test:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New test file.
    mysql-test/suite/parts/t/partition_mgm_lc2_memory-master.opt:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New opt file.
    mysql-test/suite/parts/t/partition_mgm_lc2_memory.test:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New test file.
    mysql-test/suite/parts/t/partition_mgm_lc2_myisam-master.opt:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New opt file.
    mysql-test/suite/parts/t/partition_mgm_lc2_myisam.test:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New test file.
    mysql-test/suite/parts/t/partition_mgm_lc2_ndb-master.opt:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New opt file.
    mysql-test/suite/parts/t/partition_mgm_lc2_ndb.test:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      New test file.
    mysql-test/t/lowercase_table3.test:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      Moved case sensitive file system to a specific inc-file instead of
      included in lowercase0.inc
    sql/ha_partition.cc:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      Problem was that ha_partition had HA_FILE_BASED set
      (since it uses a .par file), but after open it uses the first partitions
      table_flags(), which results in different case handling for create and for
      open.
      
      Solution was to change the underlying partition name so it was consistent.
      (Only happens when lower_case_table_names = 2, i.e. Mac OS X)
    sql/handler.cc:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      Renamed check_lowercase_names to get_canonical_filename, and exported it
      so that ha_partition.cc can use the function.
    sql/mysql_priv.h:
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      Renamed check_lowercase_names to get_canonical_filename, and exported it
      so that ha_partition.cc can use the function.
    c1e54765
have_lowercase0.inc 116 Bytes