mariadb/mysql-test/suite/parts/t/partition_special_innodb.test

262 lines
7.5 KiB
Text
Raw Normal View History

################################################################################
# t/partition_special_innodb.test #
# #
# Purpose: #
# different Tests #
# InnoDB branch #
# #
#------------------------------------------------------------------------------#
# Original Author: HH #
# Original Date: 2006-08-01 #
# Change Author: MattiasJ #
# Change Date: 2008-08-20 #
# Change: added test for bug#34604 #
################################################################################
#
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
# THE SOURCED FILES ONLY.
#
Fixes for the bugs Bug#31610 Remove outdated and redundant tests: partition_02myisam partition_03ndb Bug#32405 testsuite parts: partition_char_myisam wrong content and cleanup of testsuite - remove/correct wrong comments - remove workarounds for fixed bugs - replace error numbers with error names - exclude subtests from execution which fail now because of new limitations for partitioning functions - remove code for the no more intended dual use fast test in regression tests/slow test in testsuite - analyze and fix problems with partition_char_innodb - fix problems caused by last change of error numbers - Introduce error name to error number mapping which makes maintenance after next error renumbering easier BitKeeper/deleted/.del-partition_03ndb.result: Rename: mysql-test/suite/ndb/r/partition_03ndb.result -> BitKeeper/deleted/.del-partition_03ndb.result BitKeeper/deleted/.del-partition_03ndb.test: Rename: mysql-test/suite/ndb/t/partition_03ndb.test -> BitKeeper/deleted/.del-partition_03ndb.test BitKeeper/deleted/.del-partition_1.inc: Rename: mysql-test/include/partition_1.inc -> BitKeeper/deleted/.del-partition_1.inc BitKeeper/deleted/.del-partition_02myisam.result: Rename: mysql-test/r/partition_02myisam.result -> BitKeeper/deleted/.del-partition_02myisam.result BitKeeper/deleted/.del-partition_02myisam.test: Rename: mysql-test/t/partition_02myisam.test -> BitKeeper/deleted/.del-partition_02myisam.test BitKeeper/deleted/.del-partition_char_myisam.result: Rename: mysql-test/suite/parts/r/partition_char_myisam.result -> BitKeeper/deleted/.del-partition_char_myisam.result mysql-test/suite/parts/inc/methods1.inc: Fixes + cleanup mysql-test/suite/parts/inc/part_blocked_sql_funcs_main.inc: Fixes + cleanup mysql-test/suite/parts/inc/part_supported_sql_funcs_delete.inc: Fixes + cleanup mysql-test/suite/parts/inc/part_supported_sql_funcs_main.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition.pre: Fixes + cleanup mysql-test/suite/parts/inc/partition_10.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_11.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_12.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_20.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_alter1.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_alter2.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_alter3.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_alter4.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_alter_1.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_alter_11.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_alter_13.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_alter_41.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_basic.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_binary.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_bit.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_blob.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_char.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_check.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_check_drop.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_check_read.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_check_read1.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_check_read2.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_cleanup.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_directory.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_engine.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_enum.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_layout.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_layout_check1.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_layout_check2.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_methods1.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_methods2.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_set.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_supported_sql_funcs.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_syntax.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_syntax_1.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_syntax_2.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_text.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_trigg1.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_trigg2.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_trigg3.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_value.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_varbinary.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_varchar.inc: Fixes + cleanup mysql-test/suite/parts/r/partition_alter1_innodb.result: Updated result mysql-test/suite/parts/r/partition_alter1_myisam.result: Updated result mysql-test/suite/parts/r/partition_alter2_innodb.result: Updated result mysql-test/suite/parts/r/partition_alter2_myisam.result: Updated result mysql-test/suite/parts/r/partition_alter3_innodb.result: Updated result mysql-test/suite/parts/r/partition_alter3_myisam.result: Updated result mysql-test/suite/parts/r/partition_alter4_innodb.result: Updated result mysql-test/suite/parts/r/partition_alter4_myisam.result: Updated result mysql-test/suite/parts/r/partition_basic_innodb.result: Updated result mysql-test/suite/parts/r/partition_basic_myisam.result: Updated result mysql-test/suite/parts/r/partition_bit_myisam.result: Updated result mysql-test/suite/parts/r/partition_char_innodb.result: Updated result mysql-test/suite/parts/r/partition_datetime_myisam.result: Updated result mysql-test/suite/parts/r/partition_decimal_myisam.result: Updated result mysql-test/suite/parts/r/partition_engine_innodb.result: Updated result mysql-test/suite/parts/r/partition_engine_myisam.result: Updated result mysql-test/suite/parts/r/partition_float_innodb.result: Updated result mysql-test/suite/parts/r/partition_float_myisam.result: Updated result mysql-test/suite/parts/r/partition_int_myisam.result: Updated result mysql-test/suite/parts/r/partition_special_myisam.result: Updated result mysql-test/suite/parts/r/partition_syntax_innodb.result: Updated result mysql-test/suite/parts/r/partition_syntax_myisam.result: Updated result mysql-test/suite/parts/t/disabled.def: Fixes + cleanup mysql-test/suite/parts/t/part_blocked_sql_func_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/part_blocked_sql_func_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/part_supported_sql_func_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/part_supported_sql_func_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/part_supported_sql_func_ndb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter1_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter1_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter1_ndb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter2_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter2_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter2_ndb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter3_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter3_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter4_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter4_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_basic_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_basic_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_basic_ndb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_bit_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_bit_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_bit_ndb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_char_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_char_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_datetime_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_datetime_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_decimal_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_decimal_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_engine_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_engine_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_engine_ndb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_float_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_float_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_int_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_int_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_int_ndb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_special_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_special_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_syntax_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_syntax_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_syntax_ndb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_value_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_value_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_value_ndb.test: Fixes + cleanup mysql-test/suite/parts/r/partition_char_myisam.result: Updated result bk rm + new file is caused by bk complaining about filetype
2007-11-20 16:04:07 +01:00
# Please read the README at the end of inc/partition.pre before changing
# any of the variables.
#
#------------------------------------------------------------------------------#
# General not engine specific settings and requirements
##### Options, for debugging support #####
let $debug= 0;
# The server must support partitioning.
--source include/have_partition.inc
#------------------------------------------------------------------------------#
# Engine specific settings and requirements
##### Storage engine to be tested
--source include/have_innodb.inc
Fixes for the bugs Bug#31610 Remove outdated and redundant tests: partition_02myisam partition_03ndb Bug#32405 testsuite parts: partition_char_myisam wrong content and cleanup of testsuite - remove/correct wrong comments - remove workarounds for fixed bugs - replace error numbers with error names - exclude subtests from execution which fail now because of new limitations for partitioning functions - remove code for the no more intended dual use fast test in regression tests/slow test in testsuite - analyze and fix problems with partition_char_innodb - fix problems caused by last change of error numbers - Introduce error name to error number mapping which makes maintenance after next error renumbering easier BitKeeper/deleted/.del-partition_03ndb.result: Rename: mysql-test/suite/ndb/r/partition_03ndb.result -> BitKeeper/deleted/.del-partition_03ndb.result BitKeeper/deleted/.del-partition_03ndb.test: Rename: mysql-test/suite/ndb/t/partition_03ndb.test -> BitKeeper/deleted/.del-partition_03ndb.test BitKeeper/deleted/.del-partition_1.inc: Rename: mysql-test/include/partition_1.inc -> BitKeeper/deleted/.del-partition_1.inc BitKeeper/deleted/.del-partition_02myisam.result: Rename: mysql-test/r/partition_02myisam.result -> BitKeeper/deleted/.del-partition_02myisam.result BitKeeper/deleted/.del-partition_02myisam.test: Rename: mysql-test/t/partition_02myisam.test -> BitKeeper/deleted/.del-partition_02myisam.test BitKeeper/deleted/.del-partition_char_myisam.result: Rename: mysql-test/suite/parts/r/partition_char_myisam.result -> BitKeeper/deleted/.del-partition_char_myisam.result mysql-test/suite/parts/inc/methods1.inc: Fixes + cleanup mysql-test/suite/parts/inc/part_blocked_sql_funcs_main.inc: Fixes + cleanup mysql-test/suite/parts/inc/part_supported_sql_funcs_delete.inc: Fixes + cleanup mysql-test/suite/parts/inc/part_supported_sql_funcs_main.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition.pre: Fixes + cleanup mysql-test/suite/parts/inc/partition_10.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_11.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_12.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_20.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_alter1.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_alter2.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_alter3.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_alter4.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_alter_1.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_alter_11.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_alter_13.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_alter_41.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_basic.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_binary.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_bit.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_blob.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_char.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_check.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_check_drop.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_check_read.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_check_read1.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_check_read2.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_cleanup.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_directory.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_engine.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_enum.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_layout.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_layout_check1.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_layout_check2.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_methods1.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_methods2.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_set.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_supported_sql_funcs.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_syntax.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_syntax_1.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_syntax_2.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_text.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_trigg1.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_trigg2.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_trigg3.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_value.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_varbinary.inc: Fixes + cleanup mysql-test/suite/parts/inc/partition_varchar.inc: Fixes + cleanup mysql-test/suite/parts/r/partition_alter1_innodb.result: Updated result mysql-test/suite/parts/r/partition_alter1_myisam.result: Updated result mysql-test/suite/parts/r/partition_alter2_innodb.result: Updated result mysql-test/suite/parts/r/partition_alter2_myisam.result: Updated result mysql-test/suite/parts/r/partition_alter3_innodb.result: Updated result mysql-test/suite/parts/r/partition_alter3_myisam.result: Updated result mysql-test/suite/parts/r/partition_alter4_innodb.result: Updated result mysql-test/suite/parts/r/partition_alter4_myisam.result: Updated result mysql-test/suite/parts/r/partition_basic_innodb.result: Updated result mysql-test/suite/parts/r/partition_basic_myisam.result: Updated result mysql-test/suite/parts/r/partition_bit_myisam.result: Updated result mysql-test/suite/parts/r/partition_char_innodb.result: Updated result mysql-test/suite/parts/r/partition_datetime_myisam.result: Updated result mysql-test/suite/parts/r/partition_decimal_myisam.result: Updated result mysql-test/suite/parts/r/partition_engine_innodb.result: Updated result mysql-test/suite/parts/r/partition_engine_myisam.result: Updated result mysql-test/suite/parts/r/partition_float_innodb.result: Updated result mysql-test/suite/parts/r/partition_float_myisam.result: Updated result mysql-test/suite/parts/r/partition_int_myisam.result: Updated result mysql-test/suite/parts/r/partition_special_myisam.result: Updated result mysql-test/suite/parts/r/partition_syntax_innodb.result: Updated result mysql-test/suite/parts/r/partition_syntax_myisam.result: Updated result mysql-test/suite/parts/t/disabled.def: Fixes + cleanup mysql-test/suite/parts/t/part_blocked_sql_func_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/part_blocked_sql_func_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/part_supported_sql_func_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/part_supported_sql_func_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/part_supported_sql_func_ndb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter1_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter1_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter1_ndb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter2_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter2_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter2_ndb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter3_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter3_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter4_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_alter4_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_basic_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_basic_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_basic_ndb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_bit_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_bit_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_bit_ndb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_char_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_char_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_datetime_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_datetime_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_decimal_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_decimal_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_engine_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_engine_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_engine_ndb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_float_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_float_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_int_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_int_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_int_ndb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_special_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_special_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_syntax_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_syntax_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_syntax_ndb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_value_innodb.test: Fixes + cleanup mysql-test/suite/parts/t/partition_value_myisam.test: Fixes + cleanup mysql-test/suite/parts/t/partition_value_ndb.test: Fixes + cleanup mysql-test/suite/parts/r/partition_char_myisam.result: Updated result bk rm + new file is caused by bk complaining about filetype
2007-11-20 16:04:07 +01:00
let $engine= 'InnoDB';
#------------------------------------------------------------------------------#
# Execute the tests to be applied to all storage engines
shorten filenames mysql-test/suite/parts/r/ndb_blob_partition.result: Rename: mysql-test/suite/partitions/r/ndb_blob_partition.result -> mysql-test/suite/parts/r/ndb_blob_partition.result mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Rename: mysql-test/suite/partitions/r/ndb_dd_backuprestore.result -> mysql-test/suite/parts/r/ndb_dd_backuprestore.result mysql-test/suite/parts/r/ndb_partition_error.result: Rename: mysql-test/suite/partitions/r/ndb_partition_error.result -> mysql-test/suite/parts/r/ndb_partition_error.result mysql-test/suite/parts/r/ndb_partition_list.result: Rename: mysql-test/suite/partitions/r/ndb_partition_list.result -> mysql-test/suite/parts/r/ndb_partition_list.result mysql-test/suite/parts/r/ndb_partition_range.result: Rename: mysql-test/suite/partitions/r/ndb_partition_range.result -> mysql-test/suite/parts/r/ndb_partition_range.result mysql-test/suite/parts/r/partition_alter1_innodb.result: Rename: mysql-test/suite/partitions/r/partition_alter1_innodb.result -> mysql-test/suite/parts/r/partition_alter1_innodb.result mysql-test/suite/parts/r/partition_alter1_myisam.result: Rename: mysql-test/suite/partitions/r/partition_alter1_myisam.result -> mysql-test/suite/parts/r/partition_alter1_myisam.result mysql-test/suite/parts/r/partition_alter2_innodb.result: Rename: mysql-test/suite/partitions/r/partition_alter2_innodb.result -> mysql-test/suite/parts/r/partition_alter2_innodb.result mysql-test/suite/parts/r/partition_alter2_myisam.result: Rename: mysql-test/suite/partitions/r/partition_alter2_myisam.result -> mysql-test/suite/parts/r/partition_alter2_myisam.result mysql-test/suite/parts/r/partition_alter3_innodb.result: Rename: mysql-test/suite/partitions/r/partition_alter3_innodb.result -> mysql-test/suite/parts/r/partition_alter3_innodb.result mysql-test/suite/parts/r/partition_alter3_myisam.result: Rename: mysql-test/suite/partitions/r/partition_alter3_myisam.result -> mysql-test/suite/parts/r/partition_alter3_myisam.result mysql-test/suite/parts/r/partition_alter4_innodb.result: Rename: mysql-test/suite/partitions/r/partition_alter4_innodb.result -> mysql-test/suite/parts/r/partition_alter4_innodb.result mysql-test/suite/parts/r/partition_alter4_myisam.result: Rename: mysql-test/suite/partitions/r/partition_alter4_myisam.result -> mysql-test/suite/parts/r/partition_alter4_myisam.result mysql-test/suite/parts/r/partition_basic_innodb.result: Rename: mysql-test/suite/partitions/r/partition_basic_innodb.result -> mysql-test/suite/parts/r/partition_basic_innodb.result mysql-test/suite/parts/r/partition_basic_myisam.result: Rename: mysql-test/suite/partitions/r/partition_basic_myisam.result -> mysql-test/suite/parts/r/partition_basic_myisam.result mysql-test/suite/parts/r/partition_bit_innodb.result: Rename: mysql-test/suite/partitions/r/partition_bit_innodb.result -> mysql-test/suite/parts/r/partition_bit_innodb.result mysql-test/suite/parts/r/partition_bit_myisam.result: Rename: mysql-test/suite/partitions/r/partition_bit_myisam.result -> mysql-test/suite/parts/r/partition_bit_myisam.result mysql-test/suite/parts/r/partition_bit_ndb.result: Rename: mysql-test/suite/partitions/r/partition_bit_ndb.result -> mysql-test/suite/parts/r/partition_bit_ndb.result mysql-test/suite/parts/r/partition_char_innodb.result: Rename: mysql-test/suite/partitions/r/partition_char_innodb.result -> mysql-test/suite/parts/r/partition_char_innodb.result mysql-test/suite/parts/r/partition_char_myisam.result: Rename: mysql-test/suite/partitions/r/partition_char_myisam.result -> mysql-test/suite/parts/r/partition_char_myisam.result mysql-test/suite/parts/r/partition_datetime_innodb.result: Rename: mysql-test/suite/partitions/r/partition_datetime_innodb.result -> mysql-test/suite/parts/r/partition_datetime_innodb.result mysql-test/suite/parts/r/partition_datetime_myisam.result: Rename: mysql-test/suite/partitions/r/partition_datetime_myisam.result -> mysql-test/suite/parts/r/partition_datetime_myisam.result mysql-test/suite/parts/r/partition_decimal_innodb.result: Rename: mysql-test/suite/partitions/r/partition_decimal_innodb.result -> mysql-test/suite/parts/r/partition_decimal_innodb.result mysql-test/suite/parts/r/partition_decimal_myisam.result: Rename: mysql-test/suite/partitions/r/partition_decimal_myisam.result -> mysql-test/suite/parts/r/partition_decimal_myisam.result mysql-test/suite/parts/r/partition_engine_innodb.result: Rename: mysql-test/suite/partitions/r/partition_engine_innodb.result -> mysql-test/suite/parts/r/partition_engine_innodb.result mysql-test/suite/parts/r/partition_engine_myisam.result: Rename: mysql-test/suite/partitions/r/partition_engine_myisam.result -> mysql-test/suite/parts/r/partition_engine_myisam.result mysql-test/suite/parts/r/partition_engine_ndb.result: Rename: mysql-test/suite/partitions/r/partition_engine_ndb.result -> mysql-test/suite/parts/r/partition_engine_ndb.result mysql-test/suite/parts/r/partition_float_innodb.result: Rename: mysql-test/suite/partitions/r/partition_float_innodb.result -> mysql-test/suite/parts/r/partition_float_innodb.result mysql-test/suite/parts/r/partition_float_myisam.result: Rename: mysql-test/suite/partitions/r/partition_float_myisam.result -> mysql-test/suite/parts/r/partition_float_myisam.result mysql-test/suite/parts/r/partition_int_innodb.result: Rename: mysql-test/suite/partitions/r/partition_int_innodb.result -> mysql-test/suite/parts/r/partition_int_innodb.result mysql-test/suite/parts/r/partition_int_myisam.result: Rename: mysql-test/suite/partitions/r/partition_int_myisam.result -> mysql-test/suite/parts/r/partition_int_myisam.result mysql-test/suite/parts/r/partition_int_ndb.result: Rename: mysql-test/suite/partitions/r/partition_int_ndb.result -> mysql-test/suite/parts/r/partition_int_ndb.result mysql-test/suite/parts/r/partition_special_innodb.result: Rename: mysql-test/suite/partitions/r/partition_special_innodb.result -> mysql-test/suite/parts/r/partition_special_innodb.result mysql-test/suite/parts/r/partition_special_myisam.result: Rename: mysql-test/suite/partitions/r/partition_special_myisam.result -> mysql-test/suite/parts/r/partition_special_myisam.result mysql-test/suite/parts/r/partition_syntax_innodb.result: Rename: mysql-test/suite/partitions/r/partition_syntax_innodb.result -> mysql-test/suite/parts/r/partition_syntax_innodb.result mysql-test/suite/parts/r/partition_syntax_myisam.result: Rename: mysql-test/suite/partitions/r/partition_syntax_myisam.result -> mysql-test/suite/parts/r/partition_syntax_myisam.result mysql-test/suite/parts/r/partition_syntax_ndb.result: Rename: mysql-test/suite/partitions/r/partition_syntax_ndb.result -> mysql-test/suite/parts/r/partition_syntax_ndb.result mysql-test/suite/parts/r/partition_t55.out: Rename: mysql-test/suite/partitions/r/partition_t55.out -> mysql-test/suite/parts/r/partition_t55.out mysql-test/suite/parts/r/partition_value_innodb.result: Rename: mysql-test/suite/partitions/r/partition_value_innodb.result -> mysql-test/suite/parts/r/partition_value_innodb.result mysql-test/suite/parts/r/partition_value_myisam.result: Rename: mysql-test/suite/partitions/r/partition_value_myisam.result -> mysql-test/suite/parts/r/partition_value_myisam.result mysql-test/suite/parts/r/partition_value_ndb.result: Rename: mysql-test/suite/partitions/r/partition_value_ndb.result -> mysql-test/suite/parts/r/partition_value_ndb.result mysql-test/suite/parts/r/rpl_ndb_dd_partitions.result: Rename: mysql-test/suite/partitions/r/rpl_ndb_dd_partitions.result -> mysql-test/suite/parts/r/rpl_ndb_dd_partitions.result mysql-test/suite/parts/t/disabled.def: Rename: mysql-test/suite/partitions/t/disabled.def -> mysql-test/suite/parts/t/disabled.def mysql-test/suite/parts/t/ndb_blob_partition.test: Rename: mysql-test/suite/partitions/t/ndb_blob_partition.test -> mysql-test/suite/parts/t/ndb_blob_partition.test mysql-test/suite/parts/t/ndb_dd_backuprestore.test: Rename: mysql-test/suite/partitions/t/ndb_dd_backuprestore.test -> mysql-test/suite/parts/t/ndb_dd_backuprestore.test mysql-test/suite/parts/t/ndb_partition_error.test: Rename: mysql-test/suite/partitions/t/ndb_partition_error.test -> mysql-test/suite/parts/t/ndb_partition_error.test mysql-test/suite/parts/t/ndb_partition_key.test: Rename: mysql-test/suite/partitions/t/ndb_partition_key.test -> mysql-test/suite/parts/t/ndb_partition_key.test mysql-test/suite/parts/t/ndb_partition_list.test: Rename: mysql-test/suite/partitions/t/ndb_partition_list.test -> mysql-test/suite/parts/t/ndb_partition_list.test mysql-test/suite/parts/t/ndb_partition_range.test: Rename: mysql-test/suite/partitions/t/ndb_partition_range.test -> mysql-test/suite/parts/t/ndb_partition_range.test mysql-test/suite/parts/t/partition_sessions.test: Rename: mysql-test/suite/partitions/t/partition_sessions.test -> mysql-test/suite/parts/t/partition_sessions.test mysql-test/suite/parts/t/rpl_ndb_dd_partitions.test: Rename: mysql-test/suite/partitions/t/rpl_ndb_dd_partitions.test -> mysql-test/suite/parts/t/rpl_ndb_dd_partitions.test mysql-test/suite/parts/inc/partition.pre: Rename: mysql-test/suite/parts/include/partition.pre -> mysql-test/suite/parts/inc/partition.pre mysql-test/suite/parts/inc/partition_20.inc: Rename: mysql-test/suite/parts/include/partition_20.inc -> mysql-test/suite/parts/inc/partition_20.inc mysql-test/suite/parts/inc/partition_bigint.inc: Rename: mysql-test/suite/parts/include/partition_bigint.inc -> mysql-test/suite/parts/inc/partition_bigint.inc mysql-test/suite/parts/inc/partition_binary.inc: Rename: mysql-test/suite/parts/include/partition_binary.inc -> mysql-test/suite/parts/inc/partition_binary.inc mysql-test/suite/parts/inc/partition_bit.inc: Rename: mysql-test/suite/parts/include/partition_bit.inc -> mysql-test/suite/parts/inc/partition_bit.inc mysql-test/suite/parts/inc/partition_blob.inc: Rename: mysql-test/suite/parts/include/partition_blob.inc -> mysql-test/suite/parts/inc/partition_blob.inc mysql-test/suite/parts/inc/partition_blocked_sql_funcs.inc: Rename: mysql-test/suite/parts/include/partition_blocked_sql_funcs.inc -> mysql-test/suite/parts/inc/partition_blocked_sql_funcs.inc mysql-test/suite/parts/inc/partition_char.inc: Rename: mysql-test/suite/parts/include/partition_char.inc -> mysql-test/suite/parts/inc/partition_char.inc mysql-test/suite/parts/inc/partition_check_drop.inc: Rename: mysql-test/suite/parts/include/partition_check_drop.inc -> mysql-test/suite/parts/inc/partition_check_drop.inc mysql-test/suite/parts/inc/partition_check_read.inc: Rename: mysql-test/suite/parts/include/partition_check_read.inc -> mysql-test/suite/parts/inc/partition_check_read.inc mysql-test/suite/parts/inc/partition_check_read1.inc: Rename: mysql-test/suite/parts/include/partition_check_read1.inc -> mysql-test/suite/parts/inc/partition_check_read1.inc mysql-test/suite/parts/inc/partition_check_read2.inc: Rename: mysql-test/suite/parts/include/partition_check_read2.inc -> mysql-test/suite/parts/inc/partition_check_read2.inc mysql-test/suite/parts/inc/partition_cleanup.inc: Rename: mysql-test/suite/parts/include/partition_cleanup.inc -> mysql-test/suite/parts/inc/partition_cleanup.inc mysql-test/suite/parts/inc/partition_date.inc: Rename: mysql-test/suite/parts/include/partition_date.inc -> mysql-test/suite/parts/inc/partition_date.inc mysql-test/suite/parts/inc/partition_datetime.inc: Rename: mysql-test/suite/parts/include/partition_datetime.inc -> mysql-test/suite/parts/inc/partition_datetime.inc mysql-test/suite/parts/inc/partition_decimal.inc: Rename: mysql-test/suite/parts/include/partition_decimal.inc -> mysql-test/suite/parts/inc/partition_decimal.inc mysql-test/suite/parts/inc/partition_double.inc: Rename: mysql-test/suite/parts/include/partition_double.inc -> mysql-test/suite/parts/inc/partition_double.inc mysql-test/suite/parts/inc/partition_enum.inc: Rename: mysql-test/suite/parts/include/partition_enum.inc -> mysql-test/suite/parts/inc/partition_enum.inc mysql-test/suite/parts/inc/partition_float.inc: Rename: mysql-test/suite/parts/include/partition_float.inc -> mysql-test/suite/parts/inc/partition_float.inc mysql-test/suite/parts/inc/partition_int.inc: Rename: mysql-test/suite/parts/include/partition_int.inc -> mysql-test/suite/parts/inc/partition_int.inc mysql-test/suite/parts/inc/partition_key_16col.inc: Rename: mysql-test/suite/parts/include/partition_key_16col.inc -> mysql-test/suite/parts/inc/partition_key_16col.inc mysql-test/suite/parts/inc/partition_key_32col.inc: Rename: mysql-test/suite/parts/include/partition_key_32col.inc -> mysql-test/suite/parts/inc/partition_key_32col.inc mysql-test/suite/parts/inc/partition_key_4col.inc: Rename: mysql-test/suite/parts/include/partition_key_4col.inc -> mysql-test/suite/parts/inc/partition_key_4col.inc mysql-test/suite/parts/inc/partition_key_8col.inc: Rename: mysql-test/suite/parts/include/partition_key_8col.inc -> mysql-test/suite/parts/inc/partition_key_8col.inc mysql-test/suite/parts/inc/partition_layout_check1.inc: Rename: mysql-test/suite/parts/include/partition_layout_check1.inc -> mysql-test/suite/parts/inc/partition_layout_check1.inc mysql-test/suite/parts/inc/partition_layout_check2.inc: Rename: mysql-test/suite/parts/include/partition_layout_check2.inc -> mysql-test/suite/parts/inc/partition_layout_check2.inc mysql-test/suite/parts/inc/partition_mediumint.inc: Rename: mysql-test/suite/parts/include/partition_mediumint.inc -> mysql-test/suite/parts/inc/partition_mediumint.inc mysql-test/suite/parts/inc/partition_set.inc: Rename: mysql-test/suite/parts/include/partition_set.inc -> mysql-test/suite/parts/inc/partition_set.inc mysql-test/suite/parts/inc/partition_smallint.inc: Rename: mysql-test/suite/parts/include/partition_smallint.inc -> mysql-test/suite/parts/inc/partition_smallint.inc mysql-test/suite/parts/inc/partition_text.inc: Rename: mysql-test/suite/parts/include/partition_text.inc -> mysql-test/suite/parts/inc/partition_text.inc mysql-test/suite/parts/inc/partition_time.inc: Rename: mysql-test/suite/parts/include/partition_time.inc -> mysql-test/suite/parts/inc/partition_time.inc mysql-test/suite/parts/inc/partition_timestamp.inc: Rename: mysql-test/suite/parts/include/partition_timestamp.inc -> mysql-test/suite/parts/inc/partition_timestamp.inc mysql-test/suite/parts/inc/partition_tinyint.inc: Rename: mysql-test/suite/parts/include/partition_tinyint.inc -> mysql-test/suite/parts/inc/partition_tinyint.inc mysql-test/suite/parts/inc/partition_trigg1.inc: Rename: mysql-test/suite/parts/include/partition_trigg1.inc -> mysql-test/suite/parts/inc/partition_trigg1.inc mysql-test/suite/parts/inc/partition_trigg2.inc: Rename: mysql-test/suite/parts/include/partition_trigg2.inc -> mysql-test/suite/parts/inc/partition_trigg2.inc mysql-test/suite/parts/inc/partition_trigg3.inc: Rename: mysql-test/suite/parts/include/partition_trigg3.inc -> mysql-test/suite/parts/inc/partition_trigg3.inc mysql-test/suite/parts/inc/partition_value.inc: Rename: mysql-test/suite/parts/include/partition_value.inc -> mysql-test/suite/parts/inc/partition_value.inc mysql-test/suite/parts/inc/partition_varbinary.inc: Rename: mysql-test/suite/parts/include/partition_varbinary.inc -> mysql-test/suite/parts/inc/partition_varbinary.inc mysql-test/suite/parts/inc/partition_varchar.inc: Rename: mysql-test/suite/parts/include/partition_varchar.inc -> mysql-test/suite/parts/inc/partition_varchar.inc mysql-test/suite/parts/inc/partition_year.inc: Rename: mysql-test/suite/parts/include/partition_year.inc -> mysql-test/suite/parts/inc/partition_year.inc mysql-test/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc: Rename: mysql-test/suite/parts/inc/partition_supported_sql_funcs_int_ch1.in -> mysql-test/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc mysql-test/suite/parts/inc/part_supported_sql_funcs_int_date.inc: Rename: mysql-test/suite/parts/inc/partition_supported_sql_funcs_int_date.in -> mysql-test/suite/parts/inc/part_supported_sql_funcs_int_date.inc mysql-test/suite/parts/inc/part_supported_sql_funcs_int_float.inc: Rename: mysql-test/suite/parts/inc/partition_supported_sql_funcs_int_float.in -> mysql-test/suite/parts/inc/part_supported_sql_funcs_int_float.inc mysql-test/suite/parts/inc/part_supported_sql_funcs_int_int.inc: Rename: mysql-test/suite/parts/inc/partition_supported_sql_funcs_int_int.in -> mysql-test/suite/parts/inc/part_supported_sql_funcs_int_int.inc mysql-test/suite/parts/r/part_blocked_sql_func_innodb.result: Rename: mysql-test/suite/parts/r/partition_blocked_sql_func_innodb.result -> mysql-test/suite/parts/r/part_blocked_sql_func_innodb.result mysql-test/suite/parts/r/part_blocked_sql_func_myisam.result: Rename: mysql-test/suite/parts/r/partition_blocked_sql_func_myisam.result -> mysql-test/suite/parts/r/part_blocked_sql_func_myisam.result mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Rename: mysql-test/suite/parts/r/partition_supported_sql_func_ndb.result -> mysql-test/suite/parts/r/part_supported_sql_func_ndb.result mysql-test/suite/parts/inc/part_supported_sql_funcs_int_time.inc: Rename: mysql-test/suite/parts/inc/part_supported_sql_funcs_int_time.cin -> mysql-test/suite/parts/inc/part_supported_sql_funcs_int_time.inc
2007-04-30 16:24:13 +02:00
--source suite/parts/inc/partition_key_4col.inc
--source suite/parts/inc/partition_key_8col.inc
--source suite/parts/inc/partition_key_16col.inc
--source suite/parts/inc/partition_key_32col.inc
#------------------------------------------------------------------------------#
# Execute storage engine specific tests
--echo # Bug#34604 - Assertion 'inited==RND' failed in handler::ha_rnd_end
CREATE TABLE t1 (
a INT AUTO_INCREMENT,
b VARCHAR(255),
PRIMARY KEY (a))
ENGINE = InnoDB
PARTITION BY HASH (a)
PARTITIONS 2;
connect (con1, localhost, root,,);
connect (con2, localhost, root,,);
--connection con1
SET autocommit=OFF;
START TRANSACTION;
INSERT INTO t1 VALUES (NULL, 'first row t2');
--connection con2
SET autocommit=OFF;
SET SESSION lock_wait_timeout= 1;
--error ER_LOCK_WAIT_TIMEOUT
ALTER TABLE t1 AUTO_INCREMENT = 10;
--disconnect con2
--disconnect con1
--connection default
DROP TABLE t1;
Bug#53676: Unexpected errors and possible table corruption on ADD PARTITION and LOCK TABLE Bug#53770: Server crash at handler.cc:2076 on LOAD DATA after timed out COALESCE PARTITION 5.5 fix for: Bug#51042: REORGANIZE PARTITION can leave table in an inconsistent state in case of crash Needs to be back-ported to 5.1 5.5 fix for: Bug#50418: DROP PARTITION does not interact with transactions Main problem was non-persistent operations done before meta-data lock was taken (53770+53676). And 53676 needed to keep the table/partitions opened and locked while copying the data to the new partitions. Also added thorough tests to spot some additional bugs in the ddl_log code, which could result in bad state between the .frm and partitions. Collapsed patch, includes all fixes required from the reviewers. mysql-test/r/partition_innodb.result: updated result with new test mysql-test/suite/parts/inc/partition_crash.inc: crash test include file mysql-test/suite/parts/inc/partition_crash_add.inc: test all states in fast_alter_partition_table ADD PARTITION branch mysql-test/suite/parts/inc/partition_crash_change.inc: test all states in fast_alter_partition_table CHANGE PARTITION branch mysql-test/suite/parts/inc/partition_crash_drop.inc: test all states in fast_alter_partition_table DROP PARTITION branch mysql-test/suite/parts/inc/partition_fail.inc: recovery test including injecting errors mysql-test/suite/parts/inc/partition_fail_add.inc: test all states in fast_alter_partition_table ADD PARTITION branch mysql-test/suite/parts/inc/partition_fail_change.inc: test all states in fast_alter_partition_table CHANGE PARTITION branch mysql-test/suite/parts/inc/partition_fail_drop.inc: test all states in fast_alter_partition_table DROP PARTITION branch mysql-test/suite/parts/inc/partition_mgm_crash.inc: include file that runs all crash and failure injection tests. mysql-test/suite/parts/r/partition_debug_innodb.result: new test result file mysql-test/suite/parts/r/partition_debug_myisam.result: new test result file mysql-test/suite/parts/r/partition_special_innodb.result: updated result mysql-test/suite/parts/r/partition_special_myisam.result: updated result mysql-test/suite/parts/t/partition_debug_innodb-master.opt: opt file for using with crashing tests of partitioned innodb mysql-test/suite/parts/t/partition_debug_innodb.test: partitioned innodb test that require debug builds mysql-test/suite/parts/t/partition_debug_myisam-master.opt: opt file for using with crashing tests of partitioned myisam mysql-test/suite/parts/t/partition_debug_myisam.test: partitioned myisam test that require debug builds mysql-test/suite/parts/t/partition_special_innodb-master.opt: added innodb-file-per-table to easier verify partition status on disk mysql-test/suite/parts/t/partition_special_innodb.test: added test case mysql-test/suite/parts/t/partition_special_myisam.test: added test case mysql-test/t/partition_innodb.test: added test case sql/sql_base.cc: Moved alter_close_tables to sql_partition.cc sql/sql_base.h: removed some non existing and duplicated functions. sql/sql_partition.cc: fast_alter_partition_table: Spletted abort_and_upgrad_lock_and_close_table to its parts (wait_while_table_is_used and alter_close_tables) and always have wait_while_table_is_used before any persistent operations (including logs, which will be executed on failure) and alter_close_tables after create/read/write operations and before drop operations. moved alter_close_tables here from sql_base.cc Added error injections for better test coverage. write_log_final_change_partition: fixed a log_entry linking bug (delete_frm was not linked to change/drop partition) and drop partition must be executed before change partition (change partition can rename a partition to an old name, like REORG p1 INTO (p1,p2). write_log_add_change_partition: need to use drop_frm first, and relinking that entry and reusing its execute entry. sql/sql_table.cc: added initialization of next_active_log_entry. sql/table.h: removed a duplicate declaration.
2010-08-13 09:50:25 +02:00
--echo #
--echo # Bug#53676: Unexpected errors and possible table corruption on
--echo # ADD PARTITION and LOCK TABLE
--connect (con1,localhost,root,,)
CREATE TABLE t1 ( i INT NOT NULL AUTO_INCREMENT PRIMARY KEY, f INT )
ENGINE = InnoDB PARTITION BY HASH(i) PARTITIONS 2;
INSERT INTO t1 VALUES (2, 2), (3, 3), (4, 4), (5, 5);
Bug#53676: Unexpected errors and possible table corruption on ADD PARTITION and LOCK TABLE Bug#53770: Server crash at handler.cc:2076 on LOAD DATA after timed out COALESCE PARTITION 5.5 fix for: Bug#51042: REORGANIZE PARTITION can leave table in an inconsistent state in case of crash Needs to be back-ported to 5.1 5.5 fix for: Bug#50418: DROP PARTITION does not interact with transactions Main problem was non-persistent operations done before meta-data lock was taken (53770+53676). And 53676 needed to keep the table/partitions opened and locked while copying the data to the new partitions. Also added thorough tests to spot some additional bugs in the ddl_log code, which could result in bad state between the .frm and partitions. Collapsed patch, includes all fixes required from the reviewers. mysql-test/r/partition_innodb.result: updated result with new test mysql-test/suite/parts/inc/partition_crash.inc: crash test include file mysql-test/suite/parts/inc/partition_crash_add.inc: test all states in fast_alter_partition_table ADD PARTITION branch mysql-test/suite/parts/inc/partition_crash_change.inc: test all states in fast_alter_partition_table CHANGE PARTITION branch mysql-test/suite/parts/inc/partition_crash_drop.inc: test all states in fast_alter_partition_table DROP PARTITION branch mysql-test/suite/parts/inc/partition_fail.inc: recovery test including injecting errors mysql-test/suite/parts/inc/partition_fail_add.inc: test all states in fast_alter_partition_table ADD PARTITION branch mysql-test/suite/parts/inc/partition_fail_change.inc: test all states in fast_alter_partition_table CHANGE PARTITION branch mysql-test/suite/parts/inc/partition_fail_drop.inc: test all states in fast_alter_partition_table DROP PARTITION branch mysql-test/suite/parts/inc/partition_mgm_crash.inc: include file that runs all crash and failure injection tests. mysql-test/suite/parts/r/partition_debug_innodb.result: new test result file mysql-test/suite/parts/r/partition_debug_myisam.result: new test result file mysql-test/suite/parts/r/partition_special_innodb.result: updated result mysql-test/suite/parts/r/partition_special_myisam.result: updated result mysql-test/suite/parts/t/partition_debug_innodb-master.opt: opt file for using with crashing tests of partitioned innodb mysql-test/suite/parts/t/partition_debug_innodb.test: partitioned innodb test that require debug builds mysql-test/suite/parts/t/partition_debug_myisam-master.opt: opt file for using with crashing tests of partitioned myisam mysql-test/suite/parts/t/partition_debug_myisam.test: partitioned myisam test that require debug builds mysql-test/suite/parts/t/partition_special_innodb-master.opt: added innodb-file-per-table to easier verify partition status on disk mysql-test/suite/parts/t/partition_special_innodb.test: added test case mysql-test/suite/parts/t/partition_special_myisam.test: added test case mysql-test/t/partition_innodb.test: added test case sql/sql_base.cc: Moved alter_close_tables to sql_partition.cc sql/sql_base.h: removed some non existing and duplicated functions. sql/sql_partition.cc: fast_alter_partition_table: Spletted abort_and_upgrad_lock_and_close_table to its parts (wait_while_table_is_used and alter_close_tables) and always have wait_while_table_is_used before any persistent operations (including logs, which will be executed on failure) and alter_close_tables after create/read/write operations and before drop operations. moved alter_close_tables here from sql_base.cc Added error injections for better test coverage. write_log_final_change_partition: fixed a log_entry linking bug (delete_frm was not linked to change/drop partition) and drop partition must be executed before change partition (change partition can rename a partition to an old name, like REORG p1 INTO (p1,p2). write_log_add_change_partition: need to use drop_frm first, and relinking that entry and reusing its execute entry. sql/sql_table.cc: added initialization of next_active_log_entry. sql/table.h: removed a duplicate declaration.
2010-08-13 09:50:25 +02:00
--connect (con2,localhost,root,,)
SET lock_wait_timeout = 2;
--connection con1
--echo #Connection 1 locks the table
LOCK TABLE t1 READ;
--connection con2
--echo # Connection 2 tries to add partitions:
--echo # First attempt: lock wait timeout (as expected)
--error ER_LOCK_WAIT_TIMEOUT
ALTER TABLE t1 ADD PARTITION PARTITIONS 2;
--echo # Second attempt: says that partition already exists
--error ER_LOCK_WAIT_TIMEOUT
ALTER TABLE t1 ADD PARTITION PARTITIONS 2;
--echo # Check that we only can select, not insert/update/delete.
--error ER_LOCK_WAIT_TIMEOUT
INSERT INTO t1 VALUES (NULL, 6), (NULL, 7), (10, 10), (11, 11);
--error ER_LOCK_WAIT_TIMEOUT
UPDATE t1 SET i = 5 WHERE f = 2;
--error ER_LOCK_WAIT_TIMEOUT
DELETE FROM t1 WHERE i = 10;
--sorted_result
SELECT * FROM t1;
Bug#53676: Unexpected errors and possible table corruption on ADD PARTITION and LOCK TABLE Bug#53770: Server crash at handler.cc:2076 on LOAD DATA after timed out COALESCE PARTITION 5.5 fix for: Bug#51042: REORGANIZE PARTITION can leave table in an inconsistent state in case of crash Needs to be back-ported to 5.1 5.5 fix for: Bug#50418: DROP PARTITION does not interact with transactions Main problem was non-persistent operations done before meta-data lock was taken (53770+53676). And 53676 needed to keep the table/partitions opened and locked while copying the data to the new partitions. Also added thorough tests to spot some additional bugs in the ddl_log code, which could result in bad state between the .frm and partitions. Collapsed patch, includes all fixes required from the reviewers. mysql-test/r/partition_innodb.result: updated result with new test mysql-test/suite/parts/inc/partition_crash.inc: crash test include file mysql-test/suite/parts/inc/partition_crash_add.inc: test all states in fast_alter_partition_table ADD PARTITION branch mysql-test/suite/parts/inc/partition_crash_change.inc: test all states in fast_alter_partition_table CHANGE PARTITION branch mysql-test/suite/parts/inc/partition_crash_drop.inc: test all states in fast_alter_partition_table DROP PARTITION branch mysql-test/suite/parts/inc/partition_fail.inc: recovery test including injecting errors mysql-test/suite/parts/inc/partition_fail_add.inc: test all states in fast_alter_partition_table ADD PARTITION branch mysql-test/suite/parts/inc/partition_fail_change.inc: test all states in fast_alter_partition_table CHANGE PARTITION branch mysql-test/suite/parts/inc/partition_fail_drop.inc: test all states in fast_alter_partition_table DROP PARTITION branch mysql-test/suite/parts/inc/partition_mgm_crash.inc: include file that runs all crash and failure injection tests. mysql-test/suite/parts/r/partition_debug_innodb.result: new test result file mysql-test/suite/parts/r/partition_debug_myisam.result: new test result file mysql-test/suite/parts/r/partition_special_innodb.result: updated result mysql-test/suite/parts/r/partition_special_myisam.result: updated result mysql-test/suite/parts/t/partition_debug_innodb-master.opt: opt file for using with crashing tests of partitioned innodb mysql-test/suite/parts/t/partition_debug_innodb.test: partitioned innodb test that require debug builds mysql-test/suite/parts/t/partition_debug_myisam-master.opt: opt file for using with crashing tests of partitioned myisam mysql-test/suite/parts/t/partition_debug_myisam.test: partitioned myisam test that require debug builds mysql-test/suite/parts/t/partition_special_innodb-master.opt: added innodb-file-per-table to easier verify partition status on disk mysql-test/suite/parts/t/partition_special_innodb.test: added test case mysql-test/suite/parts/t/partition_special_myisam.test: added test case mysql-test/t/partition_innodb.test: added test case sql/sql_base.cc: Moved alter_close_tables to sql_partition.cc sql/sql_base.h: removed some non existing and duplicated functions. sql/sql_partition.cc: fast_alter_partition_table: Spletted abort_and_upgrad_lock_and_close_table to its parts (wait_while_table_is_used and alter_close_tables) and always have wait_while_table_is_used before any persistent operations (including logs, which will be executed on failure) and alter_close_tables after create/read/write operations and before drop operations. moved alter_close_tables here from sql_base.cc Added error injections for better test coverage. write_log_final_change_partition: fixed a log_entry linking bug (delete_frm was not linked to change/drop partition) and drop partition must be executed before change partition (change partition can rename a partition to an old name, like REORG p1 INTO (p1,p2). write_log_add_change_partition: need to use drop_frm first, and relinking that entry and reusing its execute entry. sql/sql_table.cc: added initialization of next_active_log_entry. sql/table.h: removed a duplicate declaration.
2010-08-13 09:50:25 +02:00
--connection con1
--echo # Connection 1 unlocks the table and locks it again:
UNLOCK TABLES;
--real_sleep 1
LOCK TABLE t1 READ;
--connection con2
--echo # Connection 2 tries again to add partitions:
--echo # Third attempt: says that the table does not exist
--error ER_LOCK_WAIT_TIMEOUT
ALTER TABLE t1 ADD PARTITION PARTITIONS 2;
Bug#56172: Server crashes in ha_partition::reset on REBUILD PARTITION under LOCK TABLE Collapsed patch including updates from the reviews. In case of failure in ALTER ... PARTITION under LOCK TABLE the server could crash, due to it had modified the locked table object, which was not reverted in case of failure, resulting in a bad table definition used after the failed command. Solved by instead of altering the locked table object and its partition_info struct, creating an internal temporary intermediate table object used for altering, just like the non partitioned mysql_alter_table. So if an error occur before the alter operation is complete, the original table is not modified at all. But if the alter operation have succeeded so far that it must be completed as whole, the table is properly closed and reopened. (The completion on failure is done by the ddl_log.) mysql-test/suite/parts/inc/partition_fail.inc: Added tests under LOCK TABLE mysql-test/suite/parts/r/partition_debug_innodb.result: Updated results mysql-test/suite/parts/r/partition_debug_myisam.result: Updated results mysql-test/suite/parts/r/partition_special_innodb.result: updated result mysql-test/suite/parts/t/partition_special_innodb.test: changing comment, since this patch also fixes this. sql/sql_partition.cc: Added TODO, to use DBUG_SUICIDE() instead of abort() to avoid core-files on expected crashes. Removed unused arguments to fast_end_partition. Opening a intermediate table in prep_alter_part_table, instead of altering (a possible locked) normally opened table. That way we do not have to do anything more than close the intermediate table on error, leaving the ordinary table opened and locked. Also making sure that the intermediate table are closed/destroyed on failure. If no error occur it is later destroyed in the end of fast_alter_partition_table. Added ha_external_lock to make sure MyISAM flushed the index file after copying the partitions. This also leads to removal of the special close and removal from the table cache for other instances of the table. sql/sql_partition.h: Changed the arguments for prep_alter_part_table and fast_alter_partition_table to use an intermediate table instead of altering a (possibly locked) normal table. sql/sql_table.cc: Using an intermediate table created in prep_alter_part_table to be used in fast_alter_partition_table, also closing/destroying it on failure.
2010-10-01 13:22:11 +02:00
--echo # Check table returns the same (not after fixing bug#56172!)
Bug#53676: Unexpected errors and possible table corruption on ADD PARTITION and LOCK TABLE Bug#53770: Server crash at handler.cc:2076 on LOAD DATA after timed out COALESCE PARTITION 5.5 fix for: Bug#51042: REORGANIZE PARTITION can leave table in an inconsistent state in case of crash Needs to be back-ported to 5.1 5.5 fix for: Bug#50418: DROP PARTITION does not interact with transactions Main problem was non-persistent operations done before meta-data lock was taken (53770+53676). And 53676 needed to keep the table/partitions opened and locked while copying the data to the new partitions. Also added thorough tests to spot some additional bugs in the ddl_log code, which could result in bad state between the .frm and partitions. Collapsed patch, includes all fixes required from the reviewers. mysql-test/r/partition_innodb.result: updated result with new test mysql-test/suite/parts/inc/partition_crash.inc: crash test include file mysql-test/suite/parts/inc/partition_crash_add.inc: test all states in fast_alter_partition_table ADD PARTITION branch mysql-test/suite/parts/inc/partition_crash_change.inc: test all states in fast_alter_partition_table CHANGE PARTITION branch mysql-test/suite/parts/inc/partition_crash_drop.inc: test all states in fast_alter_partition_table DROP PARTITION branch mysql-test/suite/parts/inc/partition_fail.inc: recovery test including injecting errors mysql-test/suite/parts/inc/partition_fail_add.inc: test all states in fast_alter_partition_table ADD PARTITION branch mysql-test/suite/parts/inc/partition_fail_change.inc: test all states in fast_alter_partition_table CHANGE PARTITION branch mysql-test/suite/parts/inc/partition_fail_drop.inc: test all states in fast_alter_partition_table DROP PARTITION branch mysql-test/suite/parts/inc/partition_mgm_crash.inc: include file that runs all crash and failure injection tests. mysql-test/suite/parts/r/partition_debug_innodb.result: new test result file mysql-test/suite/parts/r/partition_debug_myisam.result: new test result file mysql-test/suite/parts/r/partition_special_innodb.result: updated result mysql-test/suite/parts/r/partition_special_myisam.result: updated result mysql-test/suite/parts/t/partition_debug_innodb-master.opt: opt file for using with crashing tests of partitioned innodb mysql-test/suite/parts/t/partition_debug_innodb.test: partitioned innodb test that require debug builds mysql-test/suite/parts/t/partition_debug_myisam-master.opt: opt file for using with crashing tests of partitioned myisam mysql-test/suite/parts/t/partition_debug_myisam.test: partitioned myisam test that require debug builds mysql-test/suite/parts/t/partition_special_innodb-master.opt: added innodb-file-per-table to easier verify partition status on disk mysql-test/suite/parts/t/partition_special_innodb.test: added test case mysql-test/suite/parts/t/partition_special_myisam.test: added test case mysql-test/t/partition_innodb.test: added test case sql/sql_base.cc: Moved alter_close_tables to sql_partition.cc sql/sql_base.h: removed some non existing and duplicated functions. sql/sql_partition.cc: fast_alter_partition_table: Spletted abort_and_upgrad_lock_and_close_table to its parts (wait_while_table_is_used and alter_close_tables) and always have wait_while_table_is_used before any persistent operations (including logs, which will be executed on failure) and alter_close_tables after create/read/write operations and before drop operations. moved alter_close_tables here from sql_base.cc Added error injections for better test coverage. write_log_final_change_partition: fixed a log_entry linking bug (delete_frm was not linked to change/drop partition) and drop partition must be executed before change partition (change partition can rename a partition to an old name, like REORG p1 INTO (p1,p2). write_log_add_change_partition: need to use drop_frm first, and relinking that entry and reusing its execute entry. sql/sql_table.cc: added initialization of next_active_log_entry. sql/table.h: removed a duplicate declaration.
2010-08-13 09:50:25 +02:00
CHECK TABLE t1;
--connection con1
UNLOCK TABLES;
--connection con2
DROP TABLE t1;
# End of Test1
# Test2
--connection con1
CREATE TABLE t2 ( i INT NOT NULL AUTO_INCREMENT PRIMARY KEY, f INT )
ENGINE = InnoDB PARTITION BY HASH(i) PARTITIONS 2;
--connection con2
SET lock_wait_timeout = 2;
--connection con1
LOCK TABLE t2 READ;
--connection con2
--error ER_LOCK_WAIT_TIMEOUT
ALTER TABLE t2 ADD PARTITION PARTITIONS 2;
send ALTER TABLE t2 ADD PARTITION PARTITIONS 2;
--connection con1
UNLOCK TABLES;
--connection con2
--reap
--connect (con3,localhost,root,,)
CHECK TABLE t2;
SELECT * FROM t2;
DROP TABLE t2;
# End of Test2
# Test #3
--connection con1
CREATE TABLE t3 ( i INT NOT NULL AUTO_INCREMENT PRIMARY KEY, f INT )
ENGINE = InnoDB PARTITION BY HASH(i) PARTITIONS 2;
--connection con2
SET lock_wait_timeout = 2;
--connection con1
--echo # Connection 1 locks the table
LOCK TABLE t3 READ;
--connection con2
--echo # Connection 2 tries to add partitions (timeout):
--error ER_LOCK_WAIT_TIMEOUT
ALTER TABLE t3 ADD PARTITION PARTITIONS 2;
--connection con3
SET lock_wait_timeout = 2;
--echo # Connection 3 tries to add partitions (partition already exists):
--error ER_LOCK_WAIT_TIMEOUT
ALTER TABLE t3 ADD PARTITION PARTITIONS 2;
--connect (con4,localhost,root,,)
--echo # Connection 4 tries to rename the table:
send RENAME TABLE t3 TO t4;
--connection con1
--real_sleep 1
--echo # Connection 1 unlocks the table:
UNLOCK TABLES;
--connection con4
--echo # Connection 4 gets error on rename:
--reap
--connect (con5,localhost,root,,)
--echo # SHOW TABLES returns the table (not renamed):
SHOW TABLES;
--echo # Connection 5 attempts to read from the table (table does not exist):
--error ER_NO_SUCH_TABLE
SELECT * FROM t3;
DROP TABLE t4;
--disconnect con5
--disconnect con4
--disconnect con3
--disconnect con2
--disconnect con1
--connection default
# End of Test #3
# MDEV-21693 ALGORITHM=INSTANT does not work for partitioned tables
CREATE TABLE t1(
f1 INT, f2 VARCHAR(10) CHARSET ascii,
f3 CHAR(150) CHARSET ascii,
f4 TEXT CHARSET ascii)ENGINE=InnoDB
PARTITION BY RANGE(f1) (PARTITION p1 VALUES LESS THAN(10),
PARTITION p2 VALUES LESS THAN (100));
ALTER TABLE t1 convert to charset ascii collate ascii_bin, ALGORITHM=INSTANT;
DROP TABLE t1;
--echo # Test WRITE LOCK.
--connect (con1,localhost,root,,)
CREATE TABLE t1 ( i INT NOT NULL AUTO_INCREMENT PRIMARY KEY, f INT )
ENGINE = InnoDB PARTITION BY HASH(i) PARTITIONS 2;
INSERT INTO t1 VALUES (3, 3), (4, 4);
--connect (con2,localhost,root,,)
SET lock_wait_timeout = 2;
--connection con1
--echo #Connection 1 locks the table
LOCK TABLE t1 WRITE;
--connection con2
--echo # Check that we still can SELECT, but not insert/update/delete.
--echo # Check that we only can select, not insert/update/delete.
--error ER_LOCK_WAIT_TIMEOUT
INSERT INTO t1 VALUES (NULL, 1), (NULL, 2), (10, 10), (11, 11);
--error ER_LOCK_WAIT_TIMEOUT
UPDATE t1 SET i = 5 WHERE f = 2;
--error ER_LOCK_WAIT_TIMEOUT
DELETE FROM t1 WHERE i = 10;
--error ER_LOCK_WAIT_TIMEOUT
SELECT * FROM t1;
--connection con1
UNLOCK TABLES;
--connection con2
DROP TABLE t1;
--disconnect con1
--connection default