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.
Problem was that auto_repair, is_crashed and check_and_repair was not
implemented in ha_partition.
Solution, implemented them as loop over all partitions for is_crashed and
check_and_repair, and using the first partition for auto_repair.
(Recommit after fixing review comments)
mysql-test/lib/mtr_report.pl:
Bug#35161: --myisam-recover does not work for partitioned MyISAM tables
Added filter for crashed tables, when testing auto repair
mysql-test/std_data/corrupt_t1#P#p1.MYI:
Bug#35161: --myisam-recover does not work for partitioned MyISAM tables
Corrupt MYI file for testing auto repair
mysql-test/std_data/corrupt_t1.MYI:
Bug#35161: --myisam-recover does not work for partitioned MyISAM tables
Corrupt MYI file for testing auto repair
mysql-test/suite/parts/r/partition_repair_myisam.result:
Bug#35161: --myisam-recover does not work for partitioned MyISAM tables
Result file for testing auto repair of crashed myisam partitions
mysql-test/suite/parts/t/partition_repair_myisam-master.opt:
Bug#35161: --myisam-recover does not work for partitioned MyISAM tables
opt file for testing auto repair of crashed myisam partitions
mysql-test/suite/parts/t/partition_repair_myisam.test:
Bug#35161: --myisam-recover does not work for partitioned MyISAM tables
Test file for testing auto repair of crashed myisam partitions
sql/ha_partition.cc:
Bug#35161: --myisam-recover does not work for partitioned MyISAM tables
Added auto_repair as returning the first partitions auto_repair
Added is_crashed and check_and_repair as loop over all partitions
sql/ha_partition.h:
Bug#35161: --myisam-recover does not work for partitioned MyISAM tables
Activating check_and_repair, auto_repair and is_crashed
The federated storage engine is now disabled by default.
mysql-test-run.pl is updated to enable it whenever it's required and available.
mysql-test/lib/mtr_cases.pl:
Bug#37069: mysql-test-run.pl automatically enables federated
for federated related tests
sql/sql_plugin.cc:
Bug#37069: federated is disabled by default
--parallel hasn't been specified
Add lib/My/SysInfo.pm
mysql-test/Makefile.am:
Add SysInfo.pm
mysql-test/mysql-test-run.pl:
Use SysInfo.pm to find a suitable value for number of workers when
--parallel hasn't been specified
mysql-test/lib/My/SysInfo.pm:
Add SysInfo.pm
Use opt_start_timeout also for ndb
Remove the .result files generated by 'check_testcase'
mysql-test/lib/mtr_report.pm:
Use "failures" to keep track of if test has previously failed
oportunity to check if any other process fails during this.
Add possiblitiy to store "user_data" in a Safeprocess
Add function to get pid from a SafeProcess
mysql-test/lib/My/SafeProcess.pm:
Add possiblitiy to store "user_data" in a Safeprocess
Add function to get pid from a SafeProcess
mysql-test/lib/mtr_report.pm:
Print and detected test case sideffect also in the test server
mysql-test/mysql-test-run.pl:
Run all check-warning and check-testcase in parallel, this also give the
oportunity to check if any other process fails during this.