summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <istruewing@stella.local>2008-03-26 10:27:00 +0100
committerunknown <istruewing@stella.local>2008-03-26 10:27:00 +0100
commit03c110ea217b89c308b7f08c8eb400f47a074b2e (patch)
tree69df040c98a9edd26de9be04066dff14eb50319e
parent2daa01682775d42bbe00d3fb41e0865079240de8 (diff)
parenta1de91e7082816f05bcafc2b321e5f82eb66054b (diff)
downloadmariadb-git-03c110ea217b89c308b7f08c8eb400f47a074b2e.tar.gz
Merge stella.local:/home2/mydev/mysql-5.1-amain
into stella.local:/home2/mydev/mysql-5.1-axmrg mysql-test/r/ctype_big5.result: Auto merged mysql-test/r/ctype_euckr.result: Auto merged mysql-test/r/ctype_gb2312.result: Auto merged mysql-test/r/ctype_gbk.result: Auto merged mysql-test/r/ctype_uca.result: Auto merged mysql-test/r/ctype_ucs.result: Auto merged mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result: Auto merged mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result: Auto merged mysql-test/t/ctype_ucs.test: Auto merged sql/item_func.cc: Auto merged sql/item_func.h: Auto merged sql/log.cc: Auto merged sql/log_event.cc: Auto merged sql/rpl_rli.cc: Auto merged sql/slave.cc: Auto merged sql/sql_yacc.yy: Auto merged mysql-test/lib/mtr_report.pl: SCCS merged
-rwxr-xr-xBUILD/build_mccge.sh1516
-rwxr-xr-xBUILD/check-cpu145
-rw-r--r--cmd-line-utils/libedit/el.h2
-rw-r--r--cmd-line-utils/libedit/key.c4
-rw-r--r--cmd-line-utils/libedit/map.c2
-rw-r--r--cmd-line-utils/libedit/read.c2
-rw-r--r--cmd-line-utils/libedit/refresh.c6
-rw-r--r--include/mysql/plugin.h2
-rw-r--r--mysql-test/include/ctype_common.inc16
-rw-r--r--mysql-test/include/wait_for_slave_sql_to_stop.inc5
-rw-r--r--mysql-test/lib/mtr_report.pl2
-rw-r--r--mysql-test/r/csv.result9
-rw-r--r--mysql-test/r/ctype_big5.result19
-rw-r--r--mysql-test/r/ctype_cp1250_ch.result186
-rw-r--r--mysql-test/r/ctype_euckr.result19
-rw-r--r--mysql-test/r/ctype_gb2312.result19
-rw-r--r--mysql-test/r/ctype_gbk.result19
-rw-r--r--mysql-test/r/ctype_uca.result19
-rw-r--r--mysql-test/r/ctype_ucs.result93
-rw-r--r--mysql-test/r/ctype_ucs2_def.result10
-rw-r--r--mysql-test/r/federated.result24
-rw-r--r--mysql-test/r/func_misc.result3
-rw-r--r--mysql-test/r/information_schema.result2
-rw-r--r--mysql-test/r/log_tables.result11
-rw-r--r--mysql-test/r/merge-big.result51
-rw-r--r--mysql-test/r/merge.result26
-rw-r--r--mysql-test/r/myisam.result181
-rw-r--r--mysql-test/r/partition.result34
-rw-r--r--mysql-test/r/partition_datatype.result90
-rw-r--r--mysql-test/r/partition_error.result13
-rw-r--r--mysql-test/r/partition_innodb.result9
-rw-r--r--mysql-test/r/partition_not_windows.result43
-rw-r--r--mysql-test/r/partition_range.result33
-rw-r--r--mysql-test/r/partition_symlink.result38
-rw-r--r--mysql-test/r/partition_windows.result40
-rw-r--r--mysql-test/r/plugin_load.result3
-rw-r--r--mysql-test/r/query_cache.result26
-rw-r--r--mysql-test/r/symlink.result30
-rw-r--r--mysql-test/r/type_set.result1
-rw-r--r--mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result19
-rwxr-xr-xmysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result19
-rw-r--r--mysql-test/suite/ndb/r/ndb_partition_key.result7
-rw-r--r--mysql-test/suite/ndb/t/ndb_partition_key.test13
-rw-r--r--mysql-test/suite/parts/inc/partition_alter4.inc16
-rw-r--r--mysql-test/suite/parts/inc/partition_basic.inc37
-rw-r--r--mysql-test/suite/parts/inc/partition_basic_symlink.inc44
-rw-r--r--mysql-test/suite/parts/inc/partition_bigint.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_binary.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_bit.inc31
-rw-r--r--mysql-test/suite/parts/inc/partition_blob.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_char.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_date.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_datetime.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_decimal.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_directory.inc71
-rw-r--r--mysql-test/suite/parts/inc/partition_double.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_engine.inc60
-rw-r--r--mysql-test/suite/parts/inc/partition_enum.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_float.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_int.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_key_16col.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_key_32col.inc28
-rw-r--r--mysql-test/suite/parts/inc/partition_key_4col.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_key_8col.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_layout_check1.inc3
-rw-r--r--mysql-test/suite/parts/inc/partition_layout_check2.inc5
-rw-r--r--mysql-test/suite/parts/inc/partition_mediumint.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_methods1.inc164
-rw-r--r--mysql-test/suite/parts/inc/partition_methods2.inc199
-rw-r--r--mysql-test/suite/parts/inc/partition_set.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_smallint.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_text.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_time.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_timestamp.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_tinyint.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_varbinary.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_varchar.inc20
-rw-r--r--mysql-test/suite/parts/inc/partition_year.inc20
-rw-r--r--mysql-test/suite/parts/r/ndb_partition_key.result7
-rw-r--r--mysql-test/suite/parts/r/partition_alter1_innodb.result1008
-rw-r--r--mysql-test/suite/parts/r/partition_alter1_myisam.result512
-rw-r--r--mysql-test/suite/parts/r/partition_alter2_innodb.result1440
-rw-r--r--mysql-test/suite/parts/r/partition_alter2_myisam.result1152
-rw-r--r--mysql-test/suite/parts/r/partition_basic_innodb.result7981
-rw-r--r--mysql-test/suite/parts/r/partition_basic_myisam.result7623
-rw-r--r--mysql-test/suite/parts/r/partition_basic_symlink_innodb.result32
-rw-r--r--mysql-test/suite/parts/r/partition_basic_symlink_myisam.result20558
-rw-r--r--mysql-test/suite/parts/r/partition_bit_innodb.result86
-rw-r--r--mysql-test/suite/parts/r/partition_bit_myisam.result84
-rw-r--r--mysql-test/suite/parts/r/partition_char_innodb.result140
-rw-r--r--mysql-test/suite/parts/r/partition_char_myisam.result140
-rw-r--r--mysql-test/suite/parts/r/partition_datetime_innodb.result90
-rw-r--r--mysql-test/suite/parts/r/partition_datetime_myisam.result90
-rw-r--r--mysql-test/suite/parts/r/partition_decimal_innodb.result18
-rw-r--r--mysql-test/suite/parts/r/partition_decimal_myisam.result18
-rw-r--r--mysql-test/suite/parts/r/partition_engine_innodb.result1440
-rw-r--r--mysql-test/suite/parts/r/partition_engine_myisam.result1496
-rw-r--r--mysql-test/suite/parts/r/partition_float_innodb.result36
-rw-r--r--mysql-test/suite/parts/r/partition_float_myisam.result36
-rw-r--r--mysql-test/suite/parts/r/partition_int_innodb.result90
-rw-r--r--mysql-test/suite/parts/r/partition_int_myisam.result90
-rw-r--r--mysql-test/suite/parts/r/partition_special_innodb.result88
-rw-r--r--mysql-test/suite/parts/r/partition_special_myisam.result88
-rw-r--r--mysql-test/suite/parts/t/disabled.def9
-rw-r--r--mysql-test/suite/parts/t/ndb_partition_key.test12
-rw-r--r--mysql-test/suite/parts/t/partition_basic_innodb.test4
-rw-r--r--mysql-test/suite/parts/t/partition_basic_myisam.test3
-rw-r--r--mysql-test/suite/parts/t/partition_basic_symlink_innodb.test163
-rw-r--r--mysql-test/suite/parts/t/partition_basic_symlink_myisam.test86
-rw-r--r--mysql-test/suite/parts/t/partition_sessions.test31
-rw-r--r--mysql-test/suite/rpl/r/rpl_dual_pos_advance.result40
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_create_table.result8
-rw-r--r--mysql-test/suite/rpl/t/rpl_dual_pos_advance-slave.opt1
-rw-r--r--mysql-test/suite/rpl/t/rpl_dual_pos_advance.test61
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction.test4
-rw-r--r--mysql-test/t/csv.test11
-rw-r--r--mysql-test/t/ctype_cp1250_ch.test10
-rw-r--r--mysql-test/t/ctype_ucs.test4
-rw-r--r--mysql-test/t/ctype_ucs2_def.test13
-rw-r--r--mysql-test/t/federated.test22
-rw-r--r--mysql-test/t/func_misc.test6
-rw-r--r--mysql-test/t/information_schema.test44
-rw-r--r--mysql-test/t/log_tables.test10
-rw-r--r--mysql-test/t/merge-big.test84
-rw-r--r--mysql-test/t/merge.test13
-rw-r--r--mysql-test/t/myisam.test184
-rw-r--r--mysql-test/t/partition.test55
-rw-r--r--mysql-test/t/partition_datatype.test65
-rw-r--r--mysql-test/t/partition_error.test18
-rw-r--r--mysql-test/t/partition_innodb.test7
-rw-r--r--mysql-test/t/partition_not_windows.test84
-rw-r--r--mysql-test/t/partition_range.test45
-rw-r--r--mysql-test/t/partition_symlink.test55
-rw-r--r--mysql-test/t/partition_windows.test37
-rw-r--r--mysql-test/t/plugin_load-master.opt3
-rw-r--r--mysql-test/t/plugin_load.test3
-rw-r--r--mysql-test/t/query_cache.test19
-rw-r--r--mysql-test/t/symlink.test41
-rw-r--r--mysql-test/t/type_set.test2
-rw-r--r--mysql-test/valgrind.supp13
-rw-r--r--mysys/base64.c5
-rw-r--r--sql/field.cc28
-rw-r--r--sql/field.h3
-rw-r--r--sql/ha_partition.cc26
-rw-r--r--sql/item.cc1
-rw-r--r--sql/item_create.cc4
-rw-r--r--sql/item_func.cc14
-rw-r--r--sql/item_func.h4
-rw-r--r--sql/key.cc7
-rw-r--r--sql/log.cc1
-rw-r--r--sql/log_event.cc3
-rw-r--r--sql/mysql_priv.h1
-rw-r--r--sql/partition_info.cc300
-rw-r--r--sql/partition_info.h2
-rw-r--r--sql/repl_failsafe.cc15
-rw-r--r--sql/rpl_rli.cc9
-rw-r--r--sql/rpl_rli.h2
-rw-r--r--sql/slave.cc63
-rw-r--r--sql/sql_base.cc1
-rw-r--r--sql/sql_parse.cc32
-rw-r--r--sql/sql_partition.cc289
-rw-r--r--sql/sql_plugin.cc127
-rw-r--r--sql/sql_show.cc7
-rw-r--r--sql/sql_string.cc62
-rw-r--r--sql/sql_string.h3
-rw-r--r--sql/sql_table.cc49
-rw-r--r--sql/sql_yacc.yy2
-rw-r--r--sql/table.cc41
-rw-r--r--storage/archive/azio.c10
-rw-r--r--storage/csv/ha_tina.cc47
-rw-r--r--storage/csv/ha_tina.h1
-rw-r--r--storage/federated/ha_federated.cc23
-rw-r--r--storage/myisam/ft_static.c1
-rw-r--r--storage/myisam/ha_myisam.cc86
-rw-r--r--storage/myisam/mi_dynrec.c32
-rw-r--r--storage/myisam/mi_open.c14
-rw-r--r--storage/myisammrg/ha_myisammrg.cc6
-rw-r--r--strings/strmake.c6
178 files changed, 29518 insertions, 21371 deletions
diff --git a/BUILD/build_mccge.sh b/BUILD/build_mccge.sh
new file mode 100755
index 00000000000..fc0f8181692
--- /dev/null
+++ b/BUILD/build_mccge.sh
@@ -0,0 +1,1516 @@
+#!/bin/sh
+
+die()
+{
+ echo "ERROR: $@"; exit 1;
+}
+
+get_key_value()
+{
+ echo "$1" | sed 's/^--[a-zA-Z_-]*=//'
+}
+
+developer_usage()
+{
+cat <<EOF
+
+ This script can be used by developers of MySQL, early adopters wanting
+ to try out early versions of MySQL before binary versions are
+ available, anyone needing a version with a special patch included that
+ needs to be built from source code, or anyone else wanting to exercise
+ full control over the MySQL build process.
+
+ This help text is targeted towards those that want to debug and test
+ MySQL using source code releases. If you have downloaded a source code
+ release and simply want to build a usable binary, you should read the
+ --sysadmin-help instead.
+
+ The script is also designed to be used by anyone receiving a source
+ code release of MySQL Cluster Carrier Grade Edition. The default
+ behaviour is to build the standard MySQL Cluster Carrier Grade Edition
+ package. Three environment variables can be used to change the
+ default behaviour:
+
+ MYSQL_DEVELOPER
+ Defining this variable is similar to setting the --developer flag
+ MYSQL_DEVELOPER_PACKAGE=package
+ Defining this variable is similar to setting the --package=*
+ variable
+ MYSQL_DEVELOPER_DEBUG
+ Defining this variable sets the --with-debug flag
+
+ Options used with this script always override any default behaviour.
+ The default package is MySQL Cluster Carrier Grade (standard) Edition.
+ For developers, the default package is MySQL Cluster Carrier Grade
+ Extended Edition, and the default build behaviour is to build with
+ autotools. If you want to skip autotools and start from a source code
+ release you can use the --no-autotools flag.
+
+ More information for developers can be found in --help,
+ --sysadmin-help, and --extended-help.
+
+ The most common usage for developers is to set the three variables
+ mentioned previously and then simply to run the script without any
+ additional parameters, using them only when needing to change some
+ things like not requiring debug build. If some of these environment
+ variables have already been set, you can use the corresponding options
+ to unset them and reverse their effects.
+EOF
+}
+
+sysadmin_usage()
+{
+cat <<EOF
+
+ This script can be used to build MySQL Cluster Carrier Grade Edition
+ based on a source code release you received from MySQL.
+
+ It is assumed that you are building on a computer which is of the
+ same type as that on which you intend to run MySQL Cluster.
+
+ The simplest possible way to run this script is to allow it to use the
+ built-in defaults everywhere, invoking it simply as:
+
+ shell> ./build_mccge.sh
+
+ This performs the following operations:
+ 1) Detects the operating system. Currently, Linux, FreeBSD, Solaris
+ 10/11, and Mac OS X are supported by this script.
+ 2) Detect the type of CPU being used. Currently supported processors
+ are: x86 for all supported operating systems, Itanium for Linux
+ with GCC, and SPARC for Solaris using the Forte compiler.
+ 3) Invokes the GCC compiler.
+ 4) Builds a set of MySQL Cluster Carrier Grade Edition binaries; for
+ more information about these, see --extended-help.
+
+ The default version assumes that you have a source code tarball from
+ which you are building, and thus autoconf and automake do not need to
+ be run. If you have downloaded a BitKeeper tree then you should read
+ --developer-help.
+
+ If you are building MySQL Cluster Carrier Grade Edition for commercial
+ use then you need to set the --commercial flag to ensure that the
+ commercial libraries are compiled in, rather than the GPL-only
+ libraries. The default is to build a GPL version of MySQL Cluster
+ Carrier Grade Edition.
+
+ If your building on a Solaris SPARC machine you must set
+ --compiler=forte; if you want to build using the Intel compiler on
+ Linux, you need to set --compiler=icc.
+
+ If you want to make sure that a 64-bit version is built then you
+ should add the flag --64. This is always set on Solaris machines and
+ when check-cpu is able to discover that a 64-bit CPU is being used. If
+ you want to ensure that a 32-bit binary is produced, use --32 instead.
+
+ If you need the binaries to be installed in a different location from
+ /usr/local/mysql, then you should set --prefix to point to where you
+ want the binaries installed.
+
+ Using a data directory other than the default (PREFIX/data) can be
+ done when starting the MySQL Server, or by invoking this script with
+ the --datadir option.
+
+ If you want your binaries stripped of surplus debug or other
+ information, use the --strip option.
+
+ If you want debug information in the binary (for example, to be
+ able to send gdb core dumps to MySQL Support), then you should add the
+ flag --with-debug; if you want a production build with only debugging
+ information in the binary then use --debug.
+
+ If your aim is not to build MySQL Cluster Carrier Grade Edition, you
+ can also use this script to build MySQL Classic and MySQL Pro
+ versions; see the --extended-help for descriptions of these packages.
+EOF
+}
+
+usage()
+{
+cat <<EOF
+
+Usage: $0 [options]
+ --help Show this help message.
+ --sysadmin-help Show help for system administrators wishing
+ to build MySQL Cluster Carrier Grade Edition
+ --developer-help Show help for developers trying to build MySQL
+ --with-help Show extended help on --with-xxx options to
+ configure
+ --extended-help Show extended help message
+ --without-debug Build non-debug version
+ --with-debug Build debug version
+ --with-debug=full Build with full debug.
+ --configure-only Stop after running configure.
+ --use-autotools Start by running autoconf, automake,.. tools
+ --no-autotools Start from configure
+ --print-only Print commands that the script will execute,
+ but do not actually execute
+ --prefix=path Build with prefix 'path'
+ --datadir=path Build with data directory set to non-standard
+ 'path'
+ --debug Build normal version, but add debug
+ information to binary
+ --developer Use extensions that most MySQL developers use
+ --no-developer Do not use extensions that most developers of
+ MySQL use
+ --commercial Use commercial libraries
+ --gpl Use gpl libraries
+ --compiler=[gcc|icc|forte] Select compiler
+ --cpu=[x86|x86_64|sparc] Select CPU type
+ x86 => 32-bit binary
+ x86_64 => 64 bit binary unless Mac OS X
+ --warning-mode=[extra|pedantic|normal|no] Set warning mode level
+ --warnings Set warning mode to normal
+ --32 Build a 32-bit binary even if CPU is 64-bit
+ --64 Build a 64-bit binary even if not sure a
+ 64-bit CPU is being used
+ --package=[cge|extended|pro|classic] Select package to build
+ --parallelism=number Define parallelism in make
+ --strip Strip binaries
+ --error-inject Enable error injection into MySQL Server and
+ data nodes
+ --valgrind Build with valgrind
+ --fast Optimise for CPU architecture buildt on
+ --static-linking Statically link system libraries into binaries
+ --with-flags * Pass extra --with-xxx options to configure
+EOF
+ if test "x$1" != "x" ; then
+ echo "Failure Message: $1"
+ fi
+}
+
+extended_usage()
+{
+ cat <<EOF
+
+ Extended help text for this script:
+ -----------------------------------
+ This script is intended to make it easier for customers using MySQL
+ Cluster Carrier Grade Edition to build the product from source on
+ these platforms/compilers: Linux/x86 (32-bit and 64-bit),
+ Solaris 10 and 11/x86/gcc, Solaris 9/Sparc/Forte, and MacOSX/x86/gcc.
+ The script automatically detects CPU type and operating system; in
+ most cases this also determines which compiler to use, the exception
+ being Linux/x86 where you can choose between gcc and icc (gcc is the
+ default).
+
+ To build on other platforms you can use the --print-only option on a
+ supported platform and edit the output for a proper set of commands on
+ the specific platform you are using. MySQL also provides custom builds
+ for any type of platform that is officially supported for MySQL
+ Cluster. For a list of supported platforms, see
+ http://www.mysql.com/support/supportedplatforms/cluster.html.
+
+ Using the --package option, it is also possible to build a "classic"
+ version of MySQL having only the MyISAM storage engine, a "Pro"
+ package including all storage engines and other features except MySQL
+ Cluster, and an "extended" package including these features plus MySQL
+ Cluster (this is the default if the --developer option is used).
+
+ Different MySQL storage engines are included in the build, depending
+ on which --package option is used. The comment and version strong
+ suffix are also set according to the package selected.
+
+ --package=cge
+ storage engines:
+ ARCHIVE, BLACKHOLE, CSV, EXAMPLE, FEDERATED, MYISAM, NDB
+ (All storage engines except InnoDB)
+ comment: MySQL Cluster Carrier Grade Edition GPL/Commercial version
+ built from source
+ version string suffix: -cge
+
+ --package=extended
+ storage engines:
+ ARCHIVE, BLACKHOLE, CSV, EXAMPLE, FEDERATED, MYISAM, INNODB, NDB
+ (All storage engines)
+ comment: MySQL Cluster Carrier Grade Extended Edition GPL/Commercial
+ version built from source
+ version string suffix: -cge-extended
+
+ --package=pro
+ storage engines:
+ ARCHIVE, BLACKHOLE, CSV, EXAMPLE, FEDERATED, INNODB, MYISAM
+ (All storage engines except NDB)
+ comment: MySQL Pro GPL/Commercial version built from
+ source
+ version string suffix: [none]
+
+ --package=classic
+ storage engines: CSV, MYISAM
+ comment: MySQL Classic GPL/Commercial version built
+ from source
+ version string suffix: [none]
+
+ All packages except Classic include support for user-defined
+ partitioning.
+
+ If --with-debug is used, an additional "-debug" is appended to the
+ version string.
+
+ --commercial
+ This flag prevents the use of GPL libraries which cannot be used
+ under a commercial license, such as the readline library.
+
+ --with-debug[=full]
+ This option will ensure that the version is built with debug
+ information enabled; the optimisation level is decreased to -O.
+
+ --developer
+ This option changes a number of things to make the version built
+ more appropriate to the debugging and testing needs of developers.
+ It changes the default package to "extended". It also changes the
+ default warning mode from "none" to "normal", which allows an
+ extensive list of warnings to be generated.
+
+ --error-inject
+ This flag is used only when the --developer option is also used, and
+ enables error injection in both the MySQL Server and in MySQL
+ Cluster data nodes.
+
+ The following is a list of the default configure options used for all
+ packages:
+
+ --prefix: /usr/local/mysql (can be overridden)
+
+ --libexecdir: <prefix>/bin (can be overridden)
+
+ --localstatedir: <prefix>/data, unless --datadir is used, in which
+ case it defaults to <datadir>/data (can be overridden by setting
+ --localstatedir explicitly).
+
+ --enable-local-infile: Enable use of the LOAD DATA FROM LOCAL INFILE
+ command (cannot be overridden).
+
+ --enable-thread-safe-client: Enable the multi-threaded mysql client
+ library (cannot be overridden).
+
+ --with-big-tables: Enable use of tables with more than 4G rows (cannot
+ be overridden).
+
+ --with-extra-charsets=all: Enable use of all character sets supported
+ by MySQL (cannot be overridden).
+
+ --with-ssl: Enable use of yaSSL library included in the MySQL source
+ (cannot be overridden).
+
+ --with-pic: Build all binaries using position independent assembler
+ to avoid problems with dynamic linkers (cannot be overridden).
+
+ --with-csv-storage-engine: Ensure that the CSV storage engine is
+ included in all builds. Since CSV is required for log tables in
+ MySQL 5.1, this option cannot be overridden.
+
+ (Note that MyISAM support is always built into the MySQL Server; the
+ server *cannot* be built without MyISAM.)
+
+ --with-mysqld-ldflags=-static
+ --with-client-ldflags=-static
+ Ensures that binaries for, respectively, the MySQL server and client
+ are built with static libraries except for the system libraries,
+ which use dynamically loaded libraries provided by the operating
+ system. Building with --developer sets these to all-static instead,
+ to build everything statically.
+
+ In addition there are some configure options that are specific to
+ Linux operating systems:
+
+ --with-fast-mutexes
+ Include an alternative implementation of mutexes that is faster on
+ Linux systems
+
+ --enable-assembler
+ Include assembler code optimisations for a number of mostly string
+ methods. Used for x86 processors only.
+
+ Neither of the preceding options can be disabled.
+
+ MySQL Cluster Carrier Grade edition also adds the following options
+ (also used by the extended package):
+
+ --with-ndbcluster
+ Include the NDB Cluster storage engine, its kernel, management
+ server, and client, as well as support for the NDB and MGM APIs.
+
+ --without-ndb-debug
+ Do not include specific NDB debug code, not even in debug versions
+ (cannot be overridden).
+
+ Package-specific options:
+ -------------------------
+ --with-innodb
+ Specifically included in the "pro" and "extended" packages, and not
+ in any of the others.
+
+ --with-comment
+ Sets the comment for the MySQL version, by package, as described
+ above.
+
+ --with-server-suffix
+ Sets the server suffix on the MySQL version, by package, as
+ described above.
+
+ Other options used:
+ -------------------
+ --with-readline
+ Use the GPL readline library for command editing functions; not
+ available with commercial packages.
+
+ --with-libedit
+ Use the BSD licensed library for command editing functions; used for
+ commercial packages.
+
+ --with-zlib-dir=bundled
+ Use the zlib package bundled with MySQL.
+
+ --with-mysqld-libs=-lmtmalloc
+ Used on Solaris to ensure that the proper malloc library is used.
+
+ Compiler options:
+ -----------------
+
+ This section describes the compiler options for each of the different
+ platforms supported by thisscript.
+
+ The --fast option adds -mtune=cpu_arg to the C/C++ flags (provides
+ support for Nocona, K8, and other processors).
+
+ Use of the --debug option adds -g to the C/C++ flags.
+
+ FreeBSD/x86/gcc
+ ---------------
+ No flags are used. Instead, configure determines the proper flags to
+ use.
+
+ Linux/x86+Itanium/gcc
+ -------------
+ No flags are used. Instead the configure script determines the
+ proper flags to use for both normal and debug builds. Discovery of a
+ Nocona or Core 2 Duo CPU causes a 64-bit binary to be built;
+ otherwise, the binary is 32-bit. To build a 64-bit binary, -m64 is
+ added to the C/C++ flags. (To build a 32-bit binary on a 64-bit CPU,
+ use the --32 option as described previously.)
+
+ Linux/x86+Itanium/icc
+ -------------
+ Flags used:
+ CC = icc -static-libgcc -static-libcxa -i-static
+ C++ = icpc -static-libgcc -static-libcxa -i-static
+ C/C++ flags = -mp -restrict
+
+ On Itanium we also add -no-ftz and -no-prefetch to CC and C++ flags.
+
+ The non-debug versions also add the following:
+ C/C++ flags += -O3 unroll2 -ip
+
+ The fast version adds:
+ C/C++ flags += -ipo
+
+ On discovery of a Core 2 Duo architecture while using icc, -xT is also
+ added to the C/C++ flags; this provides optimisations specific to Core
+ 2 Duo. This is added only when the --fast flag is set.
+
+ Solaris/x86/gcc
+ ---------------
+ All builds on Solaris are 64-bit, so -m64 is always used in the
+ C/C++ flags. LDFLAGS is set to -m64 -static-libgcc -O/-O2.
+
+ Solaris/Sparc/Forte
+ -------------------
+ Uses cc-5.0 as CC
+ Sets ASFLAGS=LDFLAGS=xarch=v9, so that we compile Sparc v9 binaries
+ C flags = -Xa -strconst -xc99=none
+ C++ flags = -noex
+ C/C++ flags = -mt -D_FORTEC -xarch=v9
+
+ For non-debug builds, the following flags are also used:
+
+ C/C++ flags = -xO3
+
+ MacOSX/x86/gcc
+ --------------
+ C/C++ flags include -fno-common -arch i386.
+
+ Non-debug versions also add -Os -felide-constructors, where "-Os"
+ means the build is space-optimised as long as the space optimisations
+ do not negatively affect performance. Debug versions use -O.
+EOF
+}
+with_usage()
+{
+ cat <<EOF
+
+ To obtain extended help on the --with-* options available, run this
+ script with --configure-only to create a configuration file. Then
+ issue the command ./configure --help to get an extensive list of
+ possible configure options.
+
+ The remainder of this text focuses on those options which are useful
+ in building binaries for MySQL Cluster Carrier Grade Edition.
+
+ --with-ndb-sci=/opt/DIS
+ Used to build a MySQL Cluster Carrier Grade Edition that can use the
+ SCI Transporter. The Dolphin SCI installation must be completed
+ first (see
+ http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-interconnects.html
+ for more information).
+
+ --with-ndb-test
+ Compile the MySQL Cluster test programs.
+
+ --with-ndb-port=PORT
+ Change the default port for the MySQL Cluster management server.
+
+ --with-ndb-port-base=PORT
+ Change the default port base for MySQL Cluster data nodes.
+
+ --without-query-cache
+ Build the MySQL Server without the query cache, which is often not
+ of value in MySQL Cluster applications.
+
+ --with-atomic-ops=rwlocks|smp|up
+ Implement atomic operations using pthread
+ rwlocks or atomic CPU instructions for
+ multi-processor (default) or single-processor
+ configurations.
+
+ --without-geometry Do not build geometry-related portions of the
+ MySQL Server. Seldom used in MySQL Cluster
+ applications.
+
+ --with-ndb-cc-flags=FLAGS
+ This option can be used to build MySQL Cluster with error injection
+ on the data nodes. It can be used to pass special options to
+ programs in the NDB kernel for special test builds.
+ The option for enabling data node error injection is -DERROR_INSERT.
+EOF
+}
+
+parse_package()
+{
+ case "$package" in
+ classic )
+ package="classic"
+ ;;
+ pro )
+ package="pro"
+ ;;
+ extended )
+ package=""
+ ;;
+ cge )
+ package="cge"
+ ;;
+ *)
+ echo "Unknown package '$package'"
+ exit 1
+ ;;
+ esac
+}
+
+parse_warning_mode()
+{
+ case "$warning_mode" in
+ pedantic )
+ warning_mode="pedantic"
+ ;;
+ extra_warnings | extra-warnings | extra )
+ warning_mode="extra"
+ ;;
+ no )
+ warning_mode=
+ ;;
+ normal )
+ warning_mode="normal"
+ ;;
+ *)
+ echo "Unknown warning mode '$warning_mode'"
+ exit 1
+ ;;
+ esac
+}
+
+#
+# We currently only support x86, Itanium and UltraSparc processors.
+#
+parse_cpu_type()
+{
+ case "$cpu_type" in
+ x86 )
+ cpu_type="x86"
+ m32="yes"
+ ;;
+ x86_64 )
+ cpu_type="x86"
+ m64="yes"
+ ;;
+ itanium )
+ cpu_type="itanium"
+ ;;
+ sparc )
+ cpu_type="sparc"
+ ;;
+ * )
+ echo "Unknown CPU type $cpu_type"
+ exit 1
+ ;;
+ esac
+ return
+}
+
+#
+# We currently only support gcc, icc and Forte.
+#
+parse_compiler()
+{
+ case "$compiler" in
+ gcc )
+ compiler="gcc"
+ ;;
+ icc )
+ compiler="icc"
+ ;;
+ forte )
+ compiler="forte"
+ ;;
+ *)
+ echo "Unknown compiler '$compiler'"
+ exit 1
+ ;;
+ esac
+}
+
+parse_options()
+{
+ while test $# -gt 0
+ do
+ case "$1" in
+ --prefix=*)
+ prefix=`get_key_value "$1"`
+ ;;
+ --datadir=*)
+ datadir=`get_key_value "$1"`
+ ;;
+ --with-debug=full)
+ full_debug="=full"
+ with_debug_flag="yes"
+ fast_flag="no"
+ ;;
+ --without-debug)
+ with_debug_flag="no"
+ if test "x$fast_flag" != "xyes" ; then
+ fast_flag="generic"
+ fi
+ ;;
+ --with-debug)
+ with_debug_flag="yes"
+ fast_flag="no"
+ ;;
+ --debug)
+ compile_debug_flag="yes"
+ ;;
+ --no-developer)
+ developer_flag="no"
+ ;;
+ --developer)
+ developer_flag="yes"
+ ;;
+ --commercial)
+ gpl="no"
+ ;;
+ --gpl)
+ gpl="yes"
+ ;;
+ --compiler=*)
+ compiler=`get_key_value "$1"`
+ parse_compiler
+ ;;
+ --cpu=*)
+ cpu_type=`get_key_value "$1"`
+ parse_cpu_type
+ ;;
+ --warning-mode=*)
+ warning_mode=`get_key_value "$1"`
+ parse_warning_mode
+ ;;
+ --warnings)
+ warning_mode="normal"
+ ;;
+ --32)
+ if test "x$m64" != "x" ; then
+ echo "Cannot set both --32 and --64"
+ exit 1
+ fi
+ m32="yes"
+ ;;
+ --64)
+ if test "x$m32" != "x" ; then
+ echo "Cannot set both --32 and --64"
+ exit 1
+ fi
+ m64="yes"
+ ;;
+ --package=*)
+ package=`get_key_value "$1"`
+ parse_package
+ ;;
+ --parallelism=*)
+ parallelism=`get_key_value "$1"`
+ ;;
+ --use-autotools)
+ use_autotools="yes"
+ ;;
+ --no-autotools)
+ use_autotools="no"
+ ;;
+ --configure-only)
+ just_configure="yes"
+ ;;
+ --print-only)
+ just_print="yes"
+ ;;
+ --static-linking)
+ static_linking_flag="yes"
+ ;;
+ --strip)
+ strip_flag="yes"
+ ;;
+ --error-inject)
+ error_inject_flag="yes"
+ ;;
+ --valgrind)
+ valgrind="yes"
+ ;;
+ --fast)
+ fast_flag="yes"
+ ;;
+ --with-flags)
+ shift
+ break
+ ;;
+ --with-help)
+ with_usage
+ exit 0
+ ;;
+ --sysadmin-help)
+ sysadmin_usage
+ exit 0
+ ;;
+ --developer-help)
+ developer_usage
+ exit 0
+ ;;
+ --extended-help)
+ extended_usage
+ exit 0
+ ;;
+ --help)
+ usage
+ exit 0
+ ;;
+ *)
+ echo "Unknown option '$1'"
+ exit 1
+ ;;
+ esac
+ shift
+ done
+ for flag in $@
+ do
+ with_flags="$with_flags $flag"
+ done
+}
+
+#
+# We currently only support Linux, FreeBSD/OpenBSD, Mac OS X and Solaris
+#
+check_os()
+{
+ case "`uname -s`" in
+ Linux)
+ os="linux"
+ ;;
+ FreeBSD|OpenBSD)
+ os="bsd"
+ ;;
+ Darwin)
+ os="MacOSX"
+ ;;
+ SunOS)
+ os="Solaris"
+ ;;
+ *)
+ os="Unknown"
+ ;;
+ esac
+
+}
+
+set_cpu_base()
+{
+ if test "x$cpu_type" = "x" ; then
+ if test "x$cpu_arg" = "x" ; then
+ usage "CPU type not discovered, cannot proceed"
+ return 1
+ fi
+ case "$cpu_arg" in
+ core2 | nocona | prescott | pentium* | i*86 )
+ cpu_base_type="x86"
+ ;;
+ athlon* | opteron* )
+ cpu_base_type="x86"
+ ;;
+ sparc )
+ cpu_base_type="sparc"
+ ;;
+ itanium )
+ cpu_base_type="itanium"
+ ;;
+ * )
+ usage "CPU type $cpu_arg not handled by this script"
+ exit 1
+ ;;
+ esac
+ else
+ cpu_base_type="$cpu_type"
+ check_cpu_cflags=""
+ fi
+ if test "x$os" = "xMacOSX" ; then
+ m64="no"
+ elif test "x$os" = "xSolaris" ; then
+ m64="yes"
+ elif test "x$m32" = "x" ; then
+ if test "x$cpu_arg" = "xnocona" || test "x$cpu_arg" = "xcore2" || \
+ test "x$cpu_arg" = "xathlon64" || test "x$cpu_arg" = "xopteron" ; then
+ m64="yes"
+ elif test "x$m64" != "xyes" ; then
+ m64="no"
+ fi
+ else
+ m64="no"
+ fi
+ echo "Discovered CPU of type $cpu_base_type ($cpu_arg) on $os"
+ if test "x$m64" = "xyes" ; then
+ echo "Will compile 64-bit binaries"
+ else
+ echo "Will compile 32-bit binaries"
+ fi
+ return 0
+}
+
+#
+# Add to the variable commands with the configure command
+#
+init_configure_commands()
+{
+ cflags="$c_warnings $base_cflags $compiler_flags"
+ cxxflags="$cxx_warnings $base_cxxflags $compiler_flags"
+ configure="./configure $base_configs $with_flags"
+
+ commands="$commands
+ CC=\"$CC\" CFLAGS=\"$cflags\" CXX=\"$CXX\" CXXFLAGS=\"$cxxflags\""
+ if test "x$LDFLAGS" != "x" ; then
+ commands="$commands
+ LDFLAGS=\"$LDFLAGS\""
+ fi
+ if test "x$ASFLAGS" != "x" ; then
+ commands="$commands
+ ASFLAGS=\"$ASFLAGS\""
+ fi
+ commands="$commands
+ $configure"
+}
+
+#
+# Initialise the variable commands with the commands needed to generate
+# the configure script.
+#
+init_auto_commands()
+{
+ set_libtoolize_version
+ commands="\
+ $make -k maintainer-clean || true
+ /bin/rm -rf */.deps/*.P configure config.cache
+ /bin/rm -rf storage/*/configure storage/*/config.cache autom4te.cache
+ /bin/rm -rf storage/*/autom4te.cache;"
+#
+# --add-missing instructs automake to install missing auxiliary files
+# and --force to overwrite them if they already exist
+#
+ commands="$commands
+ aclocal || die \"Can't execute aclocal\"
+ autoheader || die \"Can't execute autoheader\"
+ $LIBTOOLIZE --automake --copy --force || die \"Can't execute libtoolize\"
+ automake --add-missing --copy --force || die \"Can't execute automake\"
+ autoconf || die \"Can't execute autoconf\""
+}
+
+#
+# Add to the variable commands the make command and possibly also
+# strip commands
+#
+add_make_commands()
+{
+ AM_MAKEFLAGS="-j $parallelism"
+ commands="$commands
+ $make $AM_MAKEFLAGS"
+
+ if test "x$strip_flag" = "xyes" ; then
+ commands="$commands
+ mkdir -p tmp
+ nm --numeric-sort sql/mysqld > tmp/mysqld.sym
+ objdump -d sql/mysqld > tmp/mysqld.S
+ strip sql/mysqld
+ strip storage/ndb/src/kernel/ndbd
+ strip storage/ndb/src/mgmsrv/ndb_mgmd
+ strip storage/ndb/src/mgmclient/ndb_mgm"
+ fi
+}
+
+#
+# Set make version, but only gmake is supported :)
+#
+set_make_version()
+{
+ if gmake --version > /dev/null 2>&1
+ then
+ make=gmake
+ else
+ make=make
+ fi
+ if test "x`$make --version | grep GNU`" = "x" ; then
+ die "Only gmake is supported"
+ fi
+}
+
+#
+# Find a libtoolize binary, both libtoolize and glibtoolize are
+# ok, use first found.
+#
+set_libtoolize_version()
+{
+ LIBTOOLIZE=not_found
+ save_ifs="$IFS"; IFS=':'
+ for dir in $PATH
+ do
+ if test -x $dir/libtoolize
+ then
+ LIBTOOLIZE=libtoolize
+ echo "Found libtoolize in $dir"
+ break
+ fi
+ if test -x $dir/glibtoolize
+ then
+ LIBTOOLIZE=glibtoolize
+ echo "Found glibtoolize in $dir"
+ break
+ fi
+ done
+ IFS="$save_ifs"
+ if test "x$LIBTOOLIZE" = "xnot_found" ; then
+ die "Found no libtoolize version, quitting here"
+ fi
+ return
+}
+
+#
+# If ccache (a compiler cache which reduces build time)
+# (http://samba.org/ccache) is installed, use it.
+# We use 'grep' and hope that 'grep' works as expected
+# (returns 0 if finds lines)
+# We do not use ccache when gcov is used. Also only when
+# gcc is used.
+#
+set_up_ccache()
+{
+ if test "x$compiler" = "xgcc" ; then
+ if ccache -V > /dev/null 2>&1 && test "$USING_GCOV" != "1"
+ then
+ echo "$CC" | grep "ccache" > /dev/null || CC="ccache $CC"
+ echo "$CXX" | grep "ccache" > /dev/null || CXX="ccache $CXX"
+ fi
+ fi
+}
+
+#
+# Set flags for various build configurations.
+# Used in -valgrind builds
+#
+set_valgrind_flags()
+{
+ if test "x$valgrind_flag" = "xyes" ; then
+ loc_valgrind_flags="-USAFEMALLOC -UFORCE_INIT_OF_VARS -DHAVE_purify "
+ loc_valgrind_flags="$loc_valgrind_flags -DMYSQL_SERVER_SUFFIX=-valgrind-max"
+ compiler_flags="$compiler_flags $loc_valgrind_flags"
+ fi
+}
+
+#
+# Set up warnings; default is to use no warnings, but if warning_mode
+# is used a lot of warning flags are set up. These flags are valid only
+# for gcc, so for other compilers we ignore the warning_mode.
+#
+set_warning_flags()
+{
+ if test "x$developer_flag" = "xyes" && test "x$warning_mode" = "x" ; then
+ warning_mode="normal"
+ fi
+ if test "x$compiler" = "xgcc" ; then
+ if test "x$warning_mode" = "normal" || test "x$warning_mode" = "extra" ; then
+# Both C and C++ warnings
+ warnings="$warnings -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs"
+ warnings="$warnings -Wcomment -W"
+ warnings="$warnings -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare"
+ warnings="$warnings -Wwrite-strings -Wunused-function -Wunused-label"
+ warnings="$warnings -Wunused-value -Wunused-variable"
+
+ if test "x$warning_mode" = "extra" ; then
+ warnings="$warnings -Wshadow"
+ fi
+# C warnings
+ c_warnings="$warnings -Wunused-parameter"
+# C++ warnings
+ cxx_warnings="$warnings -Woverloaded-virtual -Wsign-promo -Wreorder"
+ cxx_warnings="$warnings -Wctor-dtor-privacy -Wnon-virtual-dtor"
+# Added unless --with-debug=full
+ if test "x$full_debug" = "x" ; then
+ compiler_flags="$compiler_flags -Wuninitialized"
+ fi
+ elif test "x$warning_mode" = "xpedantic" ; then
+ warnings="-W -Wall -ansi -pedantic -Wno-long-long -D_POSIX_SOURCE"
+ c_warnings="$warnings"
+ cxx_warnings="$warnings -std=c++98"
+# Reset CPU flags (-mtune), they don't work in -pedantic mode
+ check_cpu_cflags=""
+ fi
+ fi
+}
+
+#
+# Used in -debug builds
+#
+set_with_debug_flags()
+{
+ if test "x$with_debug_flag" = "xyes" ; then
+ if test "x$developer_flag" = "xyes" ; then
+ loc_debug_flags="-DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS "
+ loc_debug_flags="$loc_debug_cflags -DSAFEMALLOC -DPEDANTIC_SAFEMALLOC"
+ compiler_flags="$compiler_flags $loc_debug_flags"
+ fi
+ fi
+}
+
+#
+# Flag for optimizing builds for developers.
+#
+set_no_omit_frame_pointer_for_developers()
+{
+ if test "x$fast_flag" != "xno" ; then
+ if test "x$developer_flag" = "xyes" && test "x$compiler" = "xgcc" ; then
+# Be as fast as we can be without losing our ability to backtrace.
+ compiler_flags="$compiler_flags -fno-omit-frame-pointer"
+ fi
+ fi
+}
+
+#
+# Add -g to all builds that requested debug information in build
+#
+set_debug_flag()
+{
+ if test "x$compile_debug_flags" = "xyes" ; then
+ compiler_flags="$compiler_flags -g"
+ fi
+}
+
+#
+# Base options used by all packages
+#
+# SSL library to use. --with-ssl selects the bundled yaSSL
+# implementation of SSL. To use openSSL, you must point out the location
+# of the openSSL headers and libs on your system.
+# For example: --with-ssl=/usr
+#
+set_base_configs()
+{
+ base_configs="$base_configs --prefix=$prefix"
+ base_configs="$base_configs --libexecdir=$prefix/bin"
+ base_configs="$base_configs --with-zlib-dir=bundled"
+ if test "x$datadir" = "x" ; then
+ base_configs="$base_configs --localstatedir=$prefix/data"
+ else
+ base_configs="$base_configs --localstatedir=$datadir"
+ fi
+ if test "x$with_debug_flag" = "xyes" ; then
+ base_configs="$base_configs --with-debug$full_debug"
+ fi
+ base_configs="$base_configs --enable-local-infile"
+ base_configs="$base_configs --enable-thread-safe-client"
+ base_configs="$base_configs --with-big-tables"
+ base_configs="$base_configs --with-extra-charsets=all"
+ base_configs="$base_configs --with-ssl"
+ base_configs="$base_configs --with-pic"
+ base_configs="$base_configs --with-csv-storage-engine"
+}
+
+#
+# Add all standard engines and partitioning (included as part of MySQL
+# Cluster storage engine as well) as part of MySQL Server. These are
+# added in all packages except the classic package.
+#
+set_base_engines()
+{
+ engine_configs="$engine_configs --with-archive-storage-engine"
+ engine_configs="$engine_configs --with-blackhole-storage-engine"
+ engine_configs="$engine_configs --with-example-storage-engine"
+ engine_configs="$engine_configs --with-federated-storage-engine"
+ engine_configs="$engine_configs --with-partition"
+}
+
+set_pro_package()
+{
+ base_configs="$base_configs $engine_configs"
+ base_configs="$base_configs --with-innodb"
+ base_configs="$base_configs --with-comment=\"MySQL Pro $version_text built from source\""
+ if test "x$with_debug_flag" = "xyes" ; then
+ base_configs="$base_configs --with-server-suffix=\"-debug\""
+ fi
+}
+
+set_cge_extended_package()
+{
+ if test "x$gpl" = "xno" ; then
+ echo "Cannot build Extended Carrier Grade Edition as Commercial version"
+ fi
+ base_configs="$base_configs --with-ndbcluster"
+ base_configs="$base_configs --without-ndb-debug"
+ base_configs="$base_configs $engine_configs"
+ base_configs="$base_configs --with-innodb"
+ base_configs="$base_configs --with-comment=\"MySQL Cluster Carrier Grade Extended Edition $version_text built from source\""
+ if test "x$with_debug_flag" = "xyes" ; then
+ base_configs="$base_configs --with-server-suffix=\"-cge-extended-debug\""
+ else
+ base_configs="$base_configs --with-server-suffix=\"-cge-extended"\"
+ fi
+}
+
+set_cge_package()
+{
+ base_configs="$base_configs --with-ndbcluster"
+ base_configs="$base_configs --without-ndb-debug"
+ base_configs="$base_configs $engine_configs"
+ base_configs="$base_configs --with-comment=\"MySQL Cluster Carrier Grade Edition $version_text built from source\""
+ if test "x$with_debug_flag" = "xyes" ; then
+ base_configs="$base_configs --with-server-suffix=\"-cge-debug\""
+ else
+ base_configs="$base_configs --with-server-suffix=\"-cge"\"
+ fi
+}
+
+set_classic_package()
+{
+ base_configs="$base_configs --with-comment=\"MySQL Classic $version_text built from source\""
+ if test "x$with_debug_flag" = "xyes" ; then
+ base_configs="$base_configs --with-server-suffix=\"-debug\""
+ fi
+}
+
+#
+# Special handling of readline; use readline from the MySQL
+# distribution if building a GPL version, otherwise use libedit.
+#
+set_readline_package()
+{
+ if test -d "$path/../cmd-line-utils/readline" && test "x$gpl" = "xyes" ; then
+ base_configs="$base_configs --with-readline"
+ elif test -d "$path/../cmd-line-utils/libedit" ; then
+ base_configs="$base_configs --with-libedit"
+ fi
+}
+
+#
+# If fast flag set by user we also add architecture as discovered to
+# compiler flags to make binary optimised for architecture at hand.
+# We use this feature on gcc compilers.
+#
+set_gcc_special_options()
+{
+ if test "x$fast_flag" = "xyes" && test "x$compiler" = "xgcc" ; then
+ compiler_flags="$compiler_flags $check_cpu_cflags"
+ fi
+}
+
+#
+# If we discover a Core 2 Duo architecture and we have enabled the fast
+# flag, we enable a compile especially optimised for Core 2 Duo. This
+# feature is currently available on Intel's icc compiler only.
+#
+set_icc_special_options()
+{
+ if test "x$fast_flag" = "xyes" && test "x$cpu_arg" = "xcore2" && \
+ test "x$compiler" = "xicc" ; then
+ compiler_flags="$compiler_flags -xT"
+ fi
+}
+
+#
+# FreeBSD Section
+#
+set_bsd_configs()
+{
+ if test "x$cpu_base_type" != "xx86" ; then
+ usage "Only x86 CPUs supported for FreeBSD"
+ exit 1
+ fi
+ if test "x$compiler" != "xgcc" ; then
+ usage "Only gcc supported for FreeBSD"
+ exit 1
+ fi
+ base_configs="$base_configs --enable-assembler"
+ CC="gcc"
+ CXX="gcc"
+}
+
+#
+# Linux Section
+#
+set_linux_configs()
+{
+ if test "x$cpu_base_type" != "xx86" && \
+ test "x$cpu_base_type" != "xitanium" ; then
+ usage "Only x86 and Itanium CPUs supported for 32-bit Linux"
+ exit 1
+ fi
+ base_configs="$base_configs --with-fast-mutexes"
+ if test "x$cpu_base_type" = "xx86" ; then
+ base_configs="$base_configs --enable-assembler"
+ fi
+ if test "x$compiler" = "xgcc" ; then
+ CC="gcc"
+ CXX="gcc"
+ if test "x$m64" = "xyes" ; then
+ compiler_flags="$compiler_flags -m64"
+ fi
+# configure will set proper compiler flags for gcc on Linux
+ elif test "x$compiler" = "xicc" ; then
+ compiler_flags="$compiler_flags -mp -restrict"
+ CC="icc -static-intel"
+ CXX="icpc -static-intel"
+ if test "x$cpu_base_type" = "xitanium" ; then
+ compiler_flags="$compiler_flags -no-ftz"
+ fi
+ if test "x$fast_flag" != "xno" ; then
+ compiler_flags="$compiler_flags -O3 -unroll2 -ip"
+ if test "x$fast_flag" = "xyes" ; then
+ compiler_flags="$compiler_flags -ipo"
+ fi
+ fi
+ else
+ usage "Only gcc and icc compilers supported for Linux"
+ exit 1
+ fi
+}
+
+#
+# Solaris Section
+#
+set_solaris_configs()
+{
+ base_configs="$base_configs --with-mysqld-libs=-lmtmalloc"
+ case "`uname -a`" in
+ *5.10*|*5.11*)
+ ;;
+ *)
+ die "Only versions 10 and 11 supported for Solaris"
+ esac
+ if test "x$cpu_base_type" != "xx86" && \
+ test "x$cpu_base_type" != "xsparc" ; then
+ usage "Only x86 and Sparc CPUs supported for Solaris"
+ exit 1
+ fi
+ if test "x$compiler" = "xgcc" ; then
+ CC="gcc"
+ CXX="gcc"
+ if test "x$cpu_base_type" != "xx86" ; then
+ usage "Only gcc supported for Solaris 10/11 on SPARC"
+ fi
+ compiler_flags="$compiler_flags -m64 -DMY_ATOMIC_MODE_RWLOCKS"
+ LDFLAGS="-m64 -static-libgcc"
+ if test "x$fast_flag" != "xno" ; then
+ LDFLAGS="$LDFLAGS -O2"
+ compiler_flags="$compiler_flags -O2"
+ else
+ LDFLAGS="$LDFLAGS -O"
+ compiler_flags="$compiler_flags -O"
+ fi
+ elif test "x$compiler" = "xforte" ; then
+ if test "x$cpu_base_type" = "xx86" ; then
+ usage "Only gcc supported for Solaris/x86"
+ fi
+ if test "x$cpu_base_type" != "xsparc" ; then
+ usage "Forte compiler supported for Solaris 9/SPARC only"
+ fi
+ CC="cc-5.0"
+ CXX=CC
+ ASFLAGS="xarch=v9"
+ LDFLAGS="xarch=v9"
+ base_cflags="$base_cflags -Xa -xstrconst -xc99=none"
+ base_cxxflags="$base_cxxflags -noex"
+ compiler_flags="$compiler_flags -mt -D_FORTEC -xarch=v9"
+ if test "x$fast_flag" != "xno" ; then
+ compiler_flags="$compiler_flags -xO3"
+ fi
+ else
+ usage "Only gcc and Forte compilers supported for Solaris"
+ exit 1
+ fi
+}
+
+#
+# Mac OS X Section
+#
+set_macosx_configs()
+{
+ base_cxxflags="$base_cxxflags -fno-common"
+ if test "x$cpu_base_type" = "xx86" && test "x$compiler" = "xgcc" ; then
+ compiler_flags="$compiler_flags -arch i386"
+ else
+ usage "Only gcc/x86 supported for Mac OS X"
+ exit 1
+ fi
+#
+# Optimize for space as long as it doesn't affect performance, use some
+# optimisations also when not in fast mode.
+#
+ if test "x$fast_flag" != "xno" ; then
+ compiler_flags="$compiler_flags -Os"
+ base_cxxflags="$base_cxxflags -felide-constructors"
+ else
+ compiler_flags="$compiler_flags -O"
+ fi
+ CC="gcc"
+ CXX="gcc"
+}
+
+#
+# Use static linking for own modules and dynamic linking for system
+# modules unless specifically requested to do everything statically.
+# Should normally not be used; static_linking_flag kept in case someone
+# really needs it. Available only if developer flag is also set.
+#
+set_static_link_configs()
+{
+ if test "x$static_linking_flag" = "xyes" && test "x$developer_flag" = "xyes" ; then
+ loc_static_link="--with-mysqld-ldflags=\"-all-static\""
+ loc_static_link="$loc_static_link --with-client-ldflags=\"-all-static\""
+ else
+ loc_static_link="--with-mysqld-ldflags=\"-static\""
+ loc_static_link="$loc_static_link --with-client-ldflags=\"-static\""
+ fi
+ base_configs="$base_configs $loc_static_link"
+}
+
+#
+# Enable error injection in MySQL Server (for developer build only -
+# extra check for developer flag required).
+#
+set_error_inject_configs()
+{
+ if test "x$error_inject_flag" = "xyes" && test "x$developer_flag" = "xyes" ; then
+ base_configs="$base_configs --with-error-inject"
+ if test "x$package" = "xndb" || test "x$package" = "xextended" ; then
+ base_configs="$base_configs --with-ndb-ccflags='-DERROR_INSERT'"
+ fi
+ fi
+}
+
+set_default_package()
+{
+ if test "x$package" = "x" ; then
+ if test "x$developer_flag" = "xyes" ; then
+ package="extended"
+ else
+ package="cge"
+ fi
+ fi
+}
+
+set_autotool_flags()
+{
+ if test "x$use_autotools" = "x" ; then
+ if test "x$developer_flag" = "xno" ; then
+ use_autotools="no"
+ else
+ use_autotools="yes"
+ fi
+ fi
+}
+
+set_defaults_based_on_environment()
+{
+ if test ! -z "$MYSQL_DEVELOPER" ; then
+ developer_flag="yes"
+ fi
+ if test ! -z "$MYSQL_DEVELOPER_DEBUG" ; then
+ with_debug_flag="yes"
+ fast_flag="no"
+ fi
+ if test ! -z "$MYSQL_DEVELOPER_PACKAGE" ; then
+ package="$MYSQL_DEVELOPER_PACKAGE"
+ parse_package
+ fi
+}
+
+########################################################################
+
+if test ! -f sql/mysqld.cc ; then
+ die "You must run this script from the MySQL top-level directory"
+fi
+
+cpu_type=
+package=
+prefix="/usr/local/mysql"
+parallelism="4"
+fast_flag="generic"
+compiler="gcc"
+gpl="yes"
+version_text=
+developer_flag="no"
+just_configure=
+full_debug=
+warning_mode=
+with_flags=
+error_inject_flag=
+with_debug_flag=
+compile_debug_flag=
+strip_flag=
+valgrind_flag=
+static_linking_flag=
+compiler_flags=
+os=
+cpu_base_type=
+warnings=
+c_warnings=
+cflags=
+base_cflags=
+cxx_warnings=
+base_cxxflags=
+base_configs=
+debug_flags=
+cxxflags=
+m32=
+m64=
+datadir=
+commands=
+use_autotools=
+
+set_defaults_based_on_environment
+
+parse_options "$@"
+
+set_autotool_flags
+set_default_package
+
+set -e
+
+#
+# Check for the CPU and set up CPU specific flags. We may reset them
+# later.
+# This call sets the cpu_arg and check_cpu_args parameters
+#
+path=`dirname $0`
+. "$path/check-cpu"
+set_cpu_base
+if test "x$?" = "x1" ; then
+ exit 1
+fi
+
+#
+# Set up c_warnings and cxx_warnings; add to compiler_flags.
+# Possibly reset check_cpu_flags.
+#
+set_warning_flags
+
+#
+# Add to compiler_flags.
+#
+set_valgrind_flags
+set_with_debug_flags
+set_no_omit_frame_pointer_for_developers
+set_debug_flag
+set_gcc_special_options
+set_icc_special_options
+
+#
+# Definitions of various packages possible to compile. The default is to
+# build a source variant of MySQL Cluster Carrier Grade Edition
+# including all storage engines except InnoDB, and to use GPL libraries.
+#
+set_base_configs
+set_base_engines
+if test "x$gpl" = "xyes" ; then
+ version_text="GPL version"
+else
+ version_text="Commercial version"
+fi
+if test "x$package" = "xpro" ; then
+ set_pro_package
+elif test "x$package" = "xextended" ; then
+ set_cge_extended_package
+elif test "x$package" = "xcge" ; then
+ set_cge_package
+elif test "x$package" = "xclassic" ; then
+ set_classic_package
+else
+ die "No supported package was used, internal error"
+fi
+set_readline_package
+set_static_link_configs
+set_error_inject_configs
+
+#
+# This section handles flags for specific combinations of compilers,
+# operating systems, and processors.
+#
+
+check_os
+if test "x$os" = "xlinux" ; then
+ set_linux_configs
+elif test "x$os" = "xSolaris" ; then
+ set_solaris_configs
+elif test "x$os" = "xMacOSX" ; then
+ set_macosx_configs
+elif test "x$os" = "xbsd" ; then
+ set_bsd_configs
+else
+ die "Operating system not supported by this script"
+fi
+
+#
+# Final step before setting up commands is to set up proper make and
+# proper libtoolize versions, and to determine whether to use ccache.
+#
+set_make_version
+set_up_ccache
+
+#
+# Set up commands variable from variables prepared for base
+# configurations, compiler flags, and warnings flags.
+#
+if test "x$use_autotools" = "xyes" ; then
+ init_auto_commands
+fi
+init_configure_commands
+
+if test "x$just_configure" != "xyes" ; then
+ add_make_commands
+fi
+
+#
+# The commands variable now contains the entire command to be run for
+# the build; we either execute it, or merely print it out.
+#
+if test "x$just_print" = "xyes" ; then
+ echo "$commands"
+else
+ eval "set -x; $commands"
+fi
diff --git a/BUILD/check-cpu b/BUILD/check-cpu
index 0720a53c54d..45dd8404f0d 100755
--- a/BUILD/check-cpu
+++ b/BUILD/check-cpu
@@ -2,6 +2,9 @@
#
# Check cpu of current machine and find the
# best compiler optimization flags for gcc
+# Will return result in:
+# cpu_arg : Type of CPU
+# check_cpu_args : Arguments for GCC compiler settings
#
check_cpu () {
@@ -33,7 +36,7 @@ check_cpu () {
# parse CPU flags
for flag in `$cpuinfo | grep '^flags' | sed -e 's/^flags.*: //' -e 's/[^a-zA-Z0-9_ ]/_/g'`; do
- eval cpu_flag_$flag=yes
+ eval cpu_flag_$flag=yes
done
else
# Fallback when there is no /proc/cpuinfo
@@ -62,92 +65,95 @@ check_cpu () {
Alpha*EV6*)
cpu_arg="ev6";
;;
-
# Intel ia32
*Intel*Core*|*X[eE][oO][nN]*)
# a Xeon is just another pentium4 ...
# ... unless it has the "lm" (long-mode) flag set,
# in that case it's a Xeon with EM64T support
+ # If SSE3 support exists it is a Core2 Duo or newer
# So is Intel Core.
- if [ -z "$cpu_flag_lm" ]; then
- cpu_arg="pentium4";
- else
- cpu_arg="nocona";
+ if [ -z "$cpu_flag_lm" ]; then
+ cpu_arg="pentium4"
+ else
+ cpu_arg="nocona"
+ fi
+ if test -z "$cpu_flag_ssse3" ; then
+ core2="no"
+ else
+ core2="yes"
fi
;;
*Pentium*4*Mobile*)
- cpu_arg="pentium4m";
- ;;
+ cpu_arg="pentium4m"
+ ;;
*Pentium*4*)
- cpu_arg="pentium4";
+ cpu_arg="pentium4"
;;
*Pentium*III*Mobile*)
- cpu_arg="pentium3m";
- ;;
+ cpu_arg="pentium3m"
+ ;;
*Pentium*III*)
- cpu_arg="pentium3";
- ;;
+ cpu_arg="pentium3"
+ ;;
*Pentium*M*pro*)
- cpu_arg="pentium-m";
+ cpu_arg="pentium-m"
;;
*Celeron\(R\)*\ M*)
- cpu_arg="pentium-m";
- ;;
+ cpu_arg="pentium-m"
+ ;;
*Celeron*Coppermine*)
cpu_arg="pentium3"
- ;;
+ ;;
*Celeron\(R\)*)
cpu_arg="pentium4"
- ;;
+ ;;
*Celeron*)
- cpu_arg="pentium2";
- ;;
- *Athlon*64*)
- cpu_arg="athlon64";
+ cpu_arg="pentium2"
;;
*Turion*)
- cpu_arg="athlon64";
+ cpu_arg="athlon64"
;;
- *Opteron*)
- cpu_arg="athlon64";
+ *Athlon*64*)
+ cpu_arg="athlon64"
;;
*Athlon*)
- cpu_arg="athlon";
+ cpu_arg="athlon"
;;
*Opteron*)
- cpu_arg="opteron";
+ cpu_arg="opteron"
;;
# MacOSX / Intel
*i386*i486*)
- cpu_arg="pentium-m";
+ cpu_arg="pentium-m"
+ ;;
+ *i386*)
+ cpu_arg="i386"
;;
#Core 2 Duo
*Intel*Core\(TM\)2*)
- cpu_arg="nocona";
+ cpu_arg="nocona"
;;
-
# Intel ia64
*Itanium*)
- # Don't need to set any flags for itanium(at the moment)
- cpu_arg="";
+ cpu_arg="itanium"
;;
-
- #
+ # Solaris Sparc
+ *sparc*sun4u*)
+ cpu_arg="sparc"
+ ;;
+ # Power PC
*ppc*)
- cpu_arg='powerpc'
+ cpu_arg="powerpc"
;;
-
*powerpc*)
- cpu_arg='powerpc'
+ cpu_arg="powerpc"
;;
-
# unknown
*)
- cpu_arg="";
+ cpu_arg=""
;;
esac
-
if test -z "$cpu_arg" ; then
if test "$CPUINFO" != " " ; then
# fallback to uname if necessary
@@ -176,29 +182,22 @@ check_cpu () {
cc_minor=$2
cc_patch=$3
cc_comp=`expr $cc_major '*' 100 '+' $cc_minor`
-
+
case "$cc_ver--$cc_verno" in
*GCC*)
# different gcc backends (and versions) have different CPU flags
case `gcc -dumpmachine` in
- i?86-*)
- if test "$cc_comp" -lt 304
- then
- check_cpu_args='-mcpu=$cpu_arg'
+ i?86-* | x86_64-*)
+ if test "$cc_comp" -lt 304 ; then
+ check_cpu_cflags="-mcpu=${cpu_arg}"
+ elif test "$cc_comp" -ge 402 ; then
+ check_cpu_cflags="-mtune=native"
else
- check_cpu_args='-mtune=$cpu_arg'
+ check_cpu_cflags="-mtune=${cpu_arg}"
fi
;;
ppc-*)
- check_cpu_args='-mcpu=$cpu_arg -mtune=$cpu_arg'
- ;;
- x86_64-*)
- if test "$cc_comp" -lt 304
- then
- check_cpu_args='-mcpu=$cpu_arg'
- else
- check_cpu_args='-mtune=$cpu_arg'
- fi
+ check_cpu_cflags="-mcpu=${cpu_arg} -mtune=${cpu_arg}"
;;
*)
check_cpu_cflags=""
@@ -208,7 +207,7 @@ check_cpu () {
;;
2.95.*)
# GCC 2.95 doesn't expose its name in --version output
- check_cpu_args='-m$cpu_arg'
+ check_cpu_cflags="-m${cpu_arg}"
;;
*)
check_cpu_cflags=""
@@ -219,41 +218,23 @@ check_cpu () {
# now we check whether the compiler really understands the cpu type
touch __test.c
+ if test "x$core2" = "xyes" ; then
+ cpu_arg="core2"
+ fi
while [ "$cpu_arg" ] ; do
printf "testing $cpu_arg ... " >&2
# compile check
- check_cpu_cflags=`eval echo $check_cpu_args`
- if $cc -c $check_cpu_cflags __test.c 2>/dev/null; then
- echo ok >&2
- break;
+ eval "$cc -c $check_cpu_cflags __test.c" 2>/dev/null
+ if test "x$?" = "x0" ; then
+ echo ok >&2
+ break;
fi
echo failed >&2
check_cpu_cflags=""
-
- # if compile failed: check whether it supports a predecessor of this CPU
- # this list is not complete, feel free to add further entries
- case "$cpu_arg" in
- # Intel ia32
- nocona) cpu_arg=pentium4 ;;
- prescott) cpu_arg=pentium4 ;;
- pentium4m) cpu_arg=pentium4 ;;
- pentium4) cpu_arg=pentium3 ;;
- pentium3m) cpu_arg=pentium3 ;;
- pentium3) cpu_arg=pentium2 ;;
- pentium2) cpu_arg=pentiumpro ;;
- pentiumpro) cpu_arg=pentium ;;
- pentium) cpu_arg=i486 ;;
- i486) cpu_arg=i386 ;;
-
- # power / powerPC
- 7450) cpu_arg=7400 ;;
-
- *) cpu_arg="" ;;
- esac
+ break;
done
-
rm __test.*
}
diff --git a/cmd-line-utils/libedit/el.h b/cmd-line-utils/libedit/el.h
index c4b6cff2186..d9379d7c8aa 100644
--- a/cmd-line-utils/libedit/el.h
+++ b/cmd-line-utils/libedit/el.h
@@ -136,6 +136,8 @@ struct editline {
protected int el_editmode(EditLine *, int, const char **);
+#define el_isprint(x) ((unsigned char) (x) < 0x80 ? isprint(x) : 1)
+
#ifdef DEBUG
#define EL_ABORT(a) do { \
fprintf(el->el_errfile, "%s, %d: ", \
diff --git a/cmd-line-utils/libedit/key.c b/cmd-line-utils/libedit/key.c
index 090a2684e92..35fcf0651b2 100644
--- a/cmd-line-utils/libedit/key.c
+++ b/cmd-line-utils/libedit/key.c
@@ -618,7 +618,7 @@ key__decode_char(char *buf, int cnt, int ch)
} else if (ch == '\\') {
buf[cnt++] = '\\';
buf[cnt] = '\\';
- } else if (ch == ' ' || (isprint(ch) && !isspace(ch))) {
+ } else if (ch == ' ' || (el_isprint(ch) && !isspace(ch))) {
buf[cnt] = ch;
} else {
buf[cnt++] = '\\';
@@ -660,7 +660,7 @@ key__decode_str(const char *str, char *buf, const char *sep)
} else if (*p == '^' || *p == '\\') {
*b++ = '\\';
*b++ = *p;
- } else if (*p == ' ' || (isprint((unsigned char) *p) &&
+ } else if (*p == ' ' || (el_isprint((unsigned char) *p) &&
!isspace((unsigned char) *p))) {
*b++ = *p;
} else {
diff --git a/cmd-line-utils/libedit/map.c b/cmd-line-utils/libedit/map.c
index d99c36ff665..6be9279b5e5 100644
--- a/cmd-line-utils/libedit/map.c
+++ b/cmd-line-utils/libedit/map.c
@@ -961,7 +961,7 @@ map_init_nls(EditLine *el)
el_action_t *map = el->el_map.key;
for (i = 0200; i <= 0377; i++)
- if (isprint(i))
+ if (el_isprint(i))
map[i] = ED_INSERT;
}
diff --git a/cmd-line-utils/libedit/read.c b/cmd-line-utils/libedit/read.c
index 051f3e8e42e..51848c2038e 100644
--- a/cmd-line-utils/libedit/read.c
+++ b/cmd-line-utils/libedit/read.c
@@ -508,7 +508,7 @@ el_gets(EditLine *el, int *nread)
el->el_chared.c_redo.pos < el->el_chared.c_redo.lim) {
if (cmdnum == VI_DELETE_PREV_CHAR &&
el->el_chared.c_redo.pos != el->el_chared.c_redo.buf
- && isprint((unsigned char)el->el_chared.c_redo.pos[-1]))
+ && el_isprint((unsigned char)el->el_chared.c_redo.pos[-1]))
el->el_chared.c_redo.pos--;
else
*el->el_chared.c_redo.pos++ = ch;
diff --git a/cmd-line-utils/libedit/refresh.c b/cmd-line-utils/libedit/refresh.c
index b2833d215c5..46aca15ef08 100644
--- a/cmd-line-utils/libedit/refresh.c
+++ b/cmd-line-utils/libedit/refresh.c
@@ -88,7 +88,7 @@ private void
re_addc(EditLine *el, int c)
{
- if (isprint(c)) {
+ if (el_isprint(c)) {
re_putc(el, c, 1);
return;
}
@@ -964,7 +964,7 @@ re_refresh_cursor(EditLine *el)
h = 1;
v++;
}
- } else if (!isprint((unsigned char) c)) {
+ } else if (!el_isprint((unsigned char) c)) {
h += 3;
if (h > th) { /* if overflow, compensate */
h = h - th;
@@ -1057,7 +1057,7 @@ re_fastaddc(EditLine *el)
char mc = (c == '\177') ? '?' : (c | 0100);
re_fastputc(el, '^');
re_fastputc(el, mc);
- } else if (isprint((unsigned char) c)) { /* normal char */
+ } else if (el_isprint((unsigned char) c)) { /* normal char */
re_fastputc(el, c);
} else {
re_fastputc(el, '\\');
diff --git a/include/mysql/plugin.h b/include/mysql/plugin.h
index 7f96d3f33b7..a978d44b918 100644
--- a/include/mysql/plugin.h
+++ b/include/mysql/plugin.h
@@ -187,7 +187,7 @@ typedef int (*mysql_var_check_func)(MYSQL_THD thd,
*/
typedef void (*mysql_var_update_func)(MYSQL_THD thd,
struct st_mysql_sys_var *var,
- void *var_ptr, void *save);
+ void *var_ptr, const void *save);
/* the following declarations are for internal use only */
diff --git a/mysql-test/include/ctype_common.inc b/mysql-test/include/ctype_common.inc
index 89b7ceb0c72..7d92c3c7b8f 100644
--- a/mysql-test/include/ctype_common.inc
+++ b/mysql-test/include/ctype_common.inc
@@ -13,6 +13,8 @@
SET @safe_character_set_server= @@character_set_server;
SET @safe_collation_server= @@collation_server;
+SET @safe_character_set_client= @@character_set_client;
+SET @safe_character_set_results= @@character_set_results;
SET character_set_server= @test_character_set;
SET collation_server= @test_collation;
CREATE DATABASE d1;
@@ -62,8 +64,22 @@ select a sounds like a from t1;
select 1 from t1 order by cast(a as char(1));
drop table t1;
+#
+# Bug#27580 SPACE() function collation bug?
+#
+set names utf8;
+create table t1 (
+ name varchar(10),
+ level smallint unsigned);
+show create table t1;
+insert into t1 values ('string',1);
+select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
+drop table t1;
+
DROP DATABASE d1;
# Restore settings
USE test;
SET character_set_server= @safe_character_set_server;
SET collation_server= @safe_collation_server;
+SET character_set_client= @safe_character_set_client;
+SET character_set_results= @safe_character_set_results;
diff --git a/mysql-test/include/wait_for_slave_sql_to_stop.inc b/mysql-test/include/wait_for_slave_sql_to_stop.inc
index 7f435142901..cb5c437a586 100644
--- a/mysql-test/include/wait_for_slave_sql_to_stop.inc
+++ b/mysql-test/include/wait_for_slave_sql_to_stop.inc
@@ -9,7 +9,10 @@
# sql threads to stop
# 3) If loops too long die.
####################################################
-connection slave;
+if (!$keep_connection)
+{
+ connection slave;
+}
let $row_number= 1;
let $run= 1;
let $counter= 300;
diff --git a/mysql-test/lib/mtr_report.pl b/mysql-test/lib/mtr_report.pl
index 3afa9e158a2..eb8d942ab6e 100644
--- a/mysql-test/lib/mtr_report.pl
+++ b/mysql-test/lib/mtr_report.pl
@@ -279,6 +279,8 @@ sub mtr_report_stats ($) {
/Failed to open log/ or
/Failed to open the existing master info file/ or
/Forcing shutdown of [0-9]* plugins/ or
+ /Can't open shared library .*\bha_example\b/ or
+ /Couldn't load plugin .*\bha_example\b/ or
# Due to timing issues, it might be that this warning
# is printed when the server shuts down and the
diff --git a/mysql-test/r/csv.result b/mysql-test/r/csv.result
index b0033383f00..b91272f7e59 100644
--- a/mysql-test/r/csv.result
+++ b/mysql-test/r/csv.result
@@ -5379,4 +5379,13 @@ SHOW WARNINGS;
Level Code Message
Error 1178 The storage engine for the table doesn't support nullable columns
Error 1005 Can't create table 'test.t1' (errno: 138)
+create table t1 (c1 tinyblob not null) engine=csv;
+insert into t1 values("This");
+update t1 set c1="That" where c1="This";
+affected rows: 1
+info: Rows matched: 1 Changed: 1 Warnings: 0
+select * from t1;
+c1
+That
+drop table t1;
End of 5.1 tests
diff --git a/mysql-test/r/ctype_big5.result b/mysql-test/r/ctype_big5.result
index 9de10a5452b..b88ea14b559 100644
--- a/mysql-test/r/ctype_big5.result
+++ b/mysql-test/r/ctype_big5.result
@@ -3,6 +3,8 @@ SET @test_character_set= 'big5';
SET @test_collation= 'big5_chinese_ci';
SET @safe_character_set_server= @@character_set_server;
SET @safe_collation_server= @@collation_server;
+SET @safe_character_set_client= @@character_set_client;
+SET @safe_character_set_results= @@character_set_results;
SET character_set_server= @test_character_set;
SET collation_server= @test_collation;
CREATE DATABASE d1;
@@ -69,10 +71,27 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
+set names utf8;
+create table t1 (
+name varchar(10),
+level smallint unsigned);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `name` varchar(10) default NULL,
+ `level` smallint(5) unsigned default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=big5
+insert into t1 values ('string',1);
+select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
+concat(name,space(level)) concat(name, repeat(' ',level))
+string string
+drop table t1;
DROP DATABASE d1;
USE test;
SET character_set_server= @safe_character_set_server;
SET collation_server= @safe_collation_server;
+SET character_set_client= @safe_character_set_client;
+SET character_set_results= @safe_character_set_results;
SET NAMES big5;
SET collation_connection='big5_chinese_ci';
create table t1 select repeat('a',4000) a;
diff --git a/mysql-test/r/ctype_cp1250_ch.result b/mysql-test/r/ctype_cp1250_ch.result
index 4b02fa2182a..7f0cdf3f17b 100644
--- a/mysql-test/r/ctype_cp1250_ch.result
+++ b/mysql-test/r/ctype_cp1250_ch.result
@@ -3,6 +3,192 @@ DROP TABLE IF EXISTS t1;
SHOW COLLATION LIKE 'cp1250_czech_cs';
Collation Charset Id Default Compiled Sortlen
cp1250_czech_cs cp1250 34 Yes 2
+SET @test_character_set= 'cp1250';
+SET @test_collation= 'cp1250_general_ci';
+SET @safe_character_set_server= @@character_set_server;
+SET @safe_collation_server= @@collation_server;
+SET @safe_character_set_client= @@character_set_client;
+SET @safe_character_set_results= @@character_set_results;
+SET character_set_server= @test_character_set;
+SET collation_server= @test_collation;
+CREATE DATABASE d1;
+USE d1;
+CREATE TABLE t1 (c CHAR(10), KEY(c));
+SHOW FULL COLUMNS FROM t1;
+Field Type Collation Null Key Default Extra Privileges Comment
+c char(10) cp1250_general_ci YES MUL NULL
+INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa');
+SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%';
+want3results
+aaa
+aaaa
+aaaaa
+DROP TABLE t1;
+CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2)));
+SHOW FULL COLUMNS FROM t1;
+Field Type Collation Null Key Default Extra Privileges Comment
+c1 varchar(15) cp1250_general_ci YES MUL NULL
+INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab');
+SELECT c1 as want3results from t1 where c1 like 'l%';
+want3results
+location
+loberge
+lotre
+SELECT c1 as want3results from t1 where c1 like 'lo%';
+want3results
+location
+loberge
+lotre
+SELECT c1 as want1result from t1 where c1 like 'loc%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'loca%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'locat%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'locati%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'locatio%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'location%';
+want1result
+location
+DROP TABLE t1;
+create table t1 (a set('a') not null);
+insert into t1 values (),();
+Warnings:
+Warning 1364 Field 'a' doesn't have a default value
+select cast(a as char(1)) from t1;
+cast(a as char(1))
+
+
+select a sounds like a from t1;
+a sounds like a
+1
+1
+select 1 from t1 order by cast(a as char(1));
+1
+1
+1
+drop table t1;
+set names utf8;
+create table t1 (
+name varchar(10),
+level smallint unsigned);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `name` varchar(10) DEFAULT NULL,
+ `level` smallint(5) unsigned DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=cp1250
+insert into t1 values ('string',1);
+select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
+concat(name,space(level)) concat(name, repeat(' ',level))
+string string
+drop table t1;
+DROP DATABASE d1;
+USE test;
+SET character_set_server= @safe_character_set_server;
+SET collation_server= @safe_collation_server;
+SET character_set_client= @safe_character_set_client;
+SET character_set_results= @safe_character_set_results;
+SET @test_character_set= 'cp1250';
+SET @test_collation= 'cp1250_czech_cs';
+SET @safe_character_set_server= @@character_set_server;
+SET @safe_collation_server= @@collation_server;
+SET @safe_character_set_client= @@character_set_client;
+SET @safe_character_set_results= @@character_set_results;
+SET character_set_server= @test_character_set;
+SET collation_server= @test_collation;
+CREATE DATABASE d1;
+USE d1;
+CREATE TABLE t1 (c CHAR(10), KEY(c));
+SHOW FULL COLUMNS FROM t1;
+Field Type Collation Null Key Default Extra Privileges Comment
+c char(10) cp1250_czech_cs YES MUL NULL
+INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa');
+SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%';
+want3results
+aaa
+aaaa
+aaaaa
+DROP TABLE t1;
+CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2)));
+SHOW FULL COLUMNS FROM t1;
+Field Type Collation Null Key Default Extra Privileges Comment
+c1 varchar(15) cp1250_czech_cs YES MUL NULL
+INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab');
+SELECT c1 as want3results from t1 where c1 like 'l%';
+want3results
+location
+loberge
+lotre
+SELECT c1 as want3results from t1 where c1 like 'lo%';
+want3results
+location
+loberge
+lotre
+SELECT c1 as want1result from t1 where c1 like 'loc%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'loca%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'locat%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'locati%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'locatio%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'location%';
+want1result
+location
+DROP TABLE t1;
+create table t1 (a set('a') not null);
+insert into t1 values (),();
+Warnings:
+Warning 1364 Field 'a' doesn't have a default value
+select cast(a as char(1)) from t1;
+cast(a as char(1))
+
+
+select a sounds like a from t1;
+a sounds like a
+1
+1
+select 1 from t1 order by cast(a as char(1));
+1
+1
+1
+drop table t1;
+set names utf8;
+create table t1 (
+name varchar(10),
+level smallint unsigned);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `name` varchar(10) COLLATE cp1250_czech_cs DEFAULT NULL,
+ `level` smallint(5) unsigned DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=cp1250 COLLATE=cp1250_czech_cs
+insert into t1 values ('string',1);
+select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
+concat(name,space(level)) concat(name, repeat(' ',level))
+string string
+drop table t1;
+DROP DATABASE d1;
+USE test;
+SET character_set_server= @safe_character_set_server;
+SET collation_server= @safe_collation_server;
+SET character_set_client= @safe_character_set_client;
+SET character_set_results= @safe_character_set_results;
CREATE TABLE t1 (a char(16)) character set cp1250 collate cp1250_czech_cs;
INSERT INTO t1 VALUES ('');
SELECT a, length(a), a='', a=' ', a=' ' FROM t1;
diff --git a/mysql-test/r/ctype_euckr.result b/mysql-test/r/ctype_euckr.result
index c2a1b70eda9..6490044ea1a 100644
--- a/mysql-test/r/ctype_euckr.result
+++ b/mysql-test/r/ctype_euckr.result
@@ -3,6 +3,8 @@ SET @test_character_set= 'euckr';
SET @test_collation= 'euckr_korean_ci';
SET @safe_character_set_server= @@character_set_server;
SET @safe_collation_server= @@collation_server;
+SET @safe_character_set_client= @@character_set_client;
+SET @safe_character_set_results= @@character_set_results;
SET character_set_server= @test_character_set;
SET collation_server= @test_collation;
CREATE DATABASE d1;
@@ -69,10 +71,27 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
+set names utf8;
+create table t1 (
+name varchar(10),
+level smallint unsigned);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `name` varchar(10) DEFAULT NULL,
+ `level` smallint(5) unsigned DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=euckr
+insert into t1 values ('string',1);
+select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
+concat(name,space(level)) concat(name, repeat(' ',level))
+string string
+drop table t1;
DROP DATABASE d1;
USE test;
SET character_set_server= @safe_character_set_server;
SET collation_server= @safe_collation_server;
+SET character_set_client= @safe_character_set_client;
+SET character_set_results= @safe_character_set_results;
SET NAMES euckr;
SET collation_connection='euckr_korean_ci';
create table t1 select repeat('a',4000) a;
diff --git a/mysql-test/r/ctype_gb2312.result b/mysql-test/r/ctype_gb2312.result
index 42f6d6c6e3b..2f789ab5b13 100644
--- a/mysql-test/r/ctype_gb2312.result
+++ b/mysql-test/r/ctype_gb2312.result
@@ -3,6 +3,8 @@ SET @test_character_set= 'gb2312';
SET @test_collation= 'gb2312_chinese_ci';
SET @safe_character_set_server= @@character_set_server;
SET @safe_collation_server= @@collation_server;
+SET @safe_character_set_client= @@character_set_client;
+SET @safe_character_set_results= @@character_set_results;
SET character_set_server= @test_character_set;
SET collation_server= @test_collation;
CREATE DATABASE d1;
@@ -69,10 +71,27 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
+set names utf8;
+create table t1 (
+name varchar(10),
+level smallint unsigned);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `name` varchar(10) DEFAULT NULL,
+ `level` smallint(5) unsigned DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=gb2312
+insert into t1 values ('string',1);
+select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
+concat(name,space(level)) concat(name, repeat(' ',level))
+string string
+drop table t1;
DROP DATABASE d1;
USE test;
SET character_set_server= @safe_character_set_server;
SET collation_server= @safe_collation_server;
+SET character_set_client= @safe_character_set_client;
+SET character_set_results= @safe_character_set_results;
SET NAMES gb2312;
SET collation_connection='gb2312_chinese_ci';
create table t1 select repeat('a',4000) a;
diff --git a/mysql-test/r/ctype_gbk.result b/mysql-test/r/ctype_gbk.result
index 0a326c3bf65..98a6839be4c 100644
--- a/mysql-test/r/ctype_gbk.result
+++ b/mysql-test/r/ctype_gbk.result
@@ -3,6 +3,8 @@ SET @test_character_set= 'gbk';
SET @test_collation= 'gbk_chinese_ci';
SET @safe_character_set_server= @@character_set_server;
SET @safe_collation_server= @@collation_server;
+SET @safe_character_set_client= @@character_set_client;
+SET @safe_character_set_results= @@character_set_results;
SET character_set_server= @test_character_set;
SET collation_server= @test_collation;
CREATE DATABASE d1;
@@ -69,10 +71,27 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
+set names utf8;
+create table t1 (
+name varchar(10),
+level smallint unsigned);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `name` varchar(10) DEFAULT NULL,
+ `level` smallint(5) unsigned DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=gbk
+insert into t1 values ('string',1);
+select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
+concat(name,space(level)) concat(name, repeat(' ',level))
+string string
+drop table t1;
DROP DATABASE d1;
USE test;
SET character_set_server= @safe_character_set_server;
SET collation_server= @safe_collation_server;
+SET character_set_client= @safe_character_set_client;
+SET character_set_results= @safe_character_set_results;
SET NAMES gbk;
SET collation_connection='gbk_chinese_ci';
create table t1 select repeat('a',4000) a;
diff --git a/mysql-test/r/ctype_uca.result b/mysql-test/r/ctype_uca.result
index 706e764b281..04727f84ff2 100644
--- a/mysql-test/r/ctype_uca.result
+++ b/mysql-test/r/ctype_uca.result
@@ -2538,6 +2538,8 @@ SET @test_character_set= 'utf8';
SET @test_collation= 'utf8_swedish_ci';
SET @safe_character_set_server= @@character_set_server;
SET @safe_collation_server= @@collation_server;
+SET @safe_character_set_client= @@character_set_client;
+SET @safe_character_set_results= @@character_set_results;
SET character_set_server= @test_character_set;
SET collation_server= @test_collation;
CREATE DATABASE d1;
@@ -2604,10 +2606,27 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
+set names utf8;
+create table t1 (
+name varchar(10),
+level smallint unsigned);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `name` varchar(10) COLLATE utf8_swedish_ci DEFAULT NULL,
+ `level` smallint(5) unsigned DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci
+insert into t1 values ('string',1);
+select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
+concat(name,space(level)) concat(name, repeat(' ',level))
+string string
+drop table t1;
DROP DATABASE d1;
USE test;
SET character_set_server= @safe_character_set_server;
SET collation_server= @safe_collation_server;
+SET character_set_client= @safe_character_set_client;
+SET character_set_results= @safe_character_set_results;
create table t1 (a varchar(1)) character set utf8 collate utf8_estonian_ci;
insert into t1 values ('A'),('B'),('C'),('a'),('b'),('c');
select a, a regexp '[a]' from t1 order by binary a;
diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result
index dd9ceeb1450..20dd85834dd 100644
--- a/mysql-test/r/ctype_ucs.result
+++ b/mysql-test/r/ctype_ucs.result
@@ -1,4 +1,97 @@
DROP TABLE IF EXISTS t1;
+SET @test_character_set= 'ucs2';
+SET @test_collation= 'ucs2_general_ci';
+SET @safe_character_set_server= @@character_set_server;
+SET @safe_collation_server= @@collation_server;
+SET @safe_character_set_client= @@character_set_client;
+SET @safe_character_set_results= @@character_set_results;
+SET character_set_server= @test_character_set;
+SET collation_server= @test_collation;
+CREATE DATABASE d1;
+USE d1;
+CREATE TABLE t1 (c CHAR(10), KEY(c));
+SHOW FULL COLUMNS FROM t1;
+Field Type Collation Null Key Default Extra Privileges Comment
+c char(10) ucs2_general_ci YES MUL NULL
+INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa');
+SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%';
+want3results
+aaa
+aaaa
+aaaaa
+DROP TABLE t1;
+CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2)));
+SHOW FULL COLUMNS FROM t1;
+Field Type Collation Null Key Default Extra Privileges Comment
+c1 varchar(15) ucs2_general_ci YES MUL NULL
+INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab');
+SELECT c1 as want3results from t1 where c1 like 'l%';
+want3results
+location
+loberge
+lotre
+SELECT c1 as want3results from t1 where c1 like 'lo%';
+want3results
+location
+loberge
+lotre
+SELECT c1 as want1result from t1 where c1 like 'loc%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'loca%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'locat%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'locati%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'locatio%';
+want1result
+location
+SELECT c1 as want1result from t1 where c1 like 'location%';
+want1result
+location
+DROP TABLE t1;
+create table t1 (a set('a') not null);
+insert into t1 values (),();
+Warnings:
+Warning 1364 Field 'a' doesn't have a default value
+select cast(a as char(1)) from t1;
+cast(a as char(1))
+
+
+select a sounds like a from t1;
+a sounds like a
+1
+1
+select 1 from t1 order by cast(a as char(1));
+1
+1
+1
+drop table t1;
+set names utf8;
+create table t1 (
+name varchar(10),
+level smallint unsigned);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `name` varchar(10) DEFAULT NULL,
+ `level` smallint(5) unsigned DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=ucs2
+insert into t1 values ('string',1);
+select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
+concat(name,space(level)) concat(name, repeat(' ',level))
+string string
+drop table t1;
+DROP DATABASE d1;
+USE test;
+SET character_set_server= @safe_character_set_server;
+SET collation_server= @safe_collation_server;
+SET character_set_client= @safe_character_set_client;
+SET character_set_results= @safe_character_set_results;
SET NAMES latin1;
SET character_set_connection=ucs2;
select 'a' = 'a', 'a' = 'a ', 'a ' = 'a';
diff --git a/mysql-test/r/ctype_ucs2_def.result b/mysql-test/r/ctype_ucs2_def.result
index 6fd45428368..005d46062fb 100644
--- a/mysql-test/r/ctype_ucs2_def.result
+++ b/mysql-test/r/ctype_ucs2_def.result
@@ -21,4 +21,14 @@ INSERT INTO t1 VALUES('A', 'A'), ('B', 'B'), ('C', 'C');
INSERT INTO t1 VALUES('A ', 'A ');
ERROR 23000: Duplicate entry '' for key 'key1'
DROP TABLE t1;
+CREATE TABLE t1 (
+c1 CHAR(255) CHARACTER SET UCS2 COLLATE UCS2_BIN NOT NULL,
+KEY(c1)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES ('marshall\'s');
+INSERT INTO t1 VALUES ('marsh');
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+DROP TABLE t1;
End of 5.0 tests
diff --git a/mysql-test/r/federated.result b/mysql-test/r/federated.result
index 00287338459..98e6569fa36 100644
--- a/mysql-test/r/federated.result
+++ b/mysql-test/r/federated.result
@@ -2066,6 +2066,30 @@ select 1 from t1 order by a;
drop table t1;
drop table t1;
drop view v1;
+CREATE TABLE t1 (a INT, b INT, KEY(a,b));
+INSERT INTO t1 VALUES(NULL,1),(1,NULL),(NULL,NULL),(1,1),(2,2);
+CREATE TABLE t1 (a INT, b INT, KEY(a,b)) ENGINE=federated
+CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/test/t1';
+SELECT * FROM t1 WHERE a IS NULL;
+a b
+NULL NULL
+NULL 1
+SELECT * FROM t1 WHERE a IS NOT NULL;
+a b
+1 NULL
+1 1
+2 2
+SELECT * FROM t1 WHERE a=1 AND b=1;
+a b
+1 1
+SELECT * FROM t1 WHERE a IS NULL AND b=1;
+a b
+NULL 1
+SELECT * FROM t1 WHERE a IS NOT NULL AND b=1;
+a b
+1 1
+DROP TABLE t1;
+DROP TABLE t1;
End of 5.1 tests
DROP TABLE IF EXISTS federated.t1;
DROP DATABASE IF EXISTS federated;
diff --git a/mysql-test/r/func_misc.result b/mysql-test/r/func_misc.result
index ec8c187e1f6..a6b912b4e0a 100644
--- a/mysql-test/r/func_misc.result
+++ b/mysql-test/r/func_misc.result
@@ -249,6 +249,9 @@ select min(a) from t1 group by inet_ntoa(a);
min(a)
-2
drop table t1;
+SELECT NAME_CONST('var', 'value') COLLATE latin1_general_cs;
+NAME_CONST('var', 'value') COLLATE latin1_general_cs
+value
End of 5.0 tests
select connection_id() > 0;
connection_id() > 0
diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result
index 18864148d29..f42b201b8b7 100644
--- a/mysql-test/r/information_schema.result
+++ b/mysql-test/r/information_schema.result
@@ -1633,4 +1633,6 @@ show open tables where f1()=0;
show open tables where f1()=0;
drop table t1;
drop function f1;
+select * from information_schema.tables where 1=sleep(100000);
+select * from information_schema.columns where 1=sleep(100000);
End of 5.1 tests.
diff --git a/mysql-test/r/log_tables.result b/mysql-test/r/log_tables.result
index 0a7634df85a..2a4cee9fbbc 100644
--- a/mysql-test/r/log_tables.result
+++ b/mysql-test/r/log_tables.result
@@ -107,6 +107,17 @@ Database Table In_use Name_locked
SET GLOBAL GENERAL_LOG=ON;
SET GLOBAL SLOW_QUERY_LOG=ON;
truncate table mysql.general_log;
+set names binary;
+select _koi8r'ÔÅÓÔ' as test;
+test
+ÔÅÓÔ
+select * from mysql.general_log;
+event_time user_host thread_id server_id command_type argument
+TIMESTAMP USER_HOST THREAD_ID 1 Query set names binary
+TIMESTAMP USER_HOST THREAD_ID 1 Query select _koi8r'\xD4\xC5\xD3\xD4' as test
+TIMESTAMP USER_HOST THREAD_ID 1 Query select * from mysql.general_log
+set names utf8;
+truncate table mysql.general_log;
set names utf8;
create table bug16905 (s char(15) character set utf8 default 'пуÑто');
insert into bug16905 values ('новое');
diff --git a/mysql-test/r/merge-big.result b/mysql-test/r/merge-big.result
index 82fedc1df73..e34ebbd9578 100644
--- a/mysql-test/r/merge-big.result
+++ b/mysql-test/r/merge-big.result
@@ -24,54 +24,3 @@ UNLOCK TABLES;
SET SESSION debug="-d,sleep_open_and_lock_after_open";
# connection default
DROP TABLE t1;
-#
-# Extra tests for Bug#26379 - Combination of FLUSH TABLE and
-# REPAIR TABLE corrupts a MERGE table
-#
-CREATE TABLE t1 (c1 INT);
-CREATE TABLE t2 (c1 INT);
-CREATE TABLE t3 (c1 INT);
-INSERT INTO t1 VALUES (1);
-INSERT INTO t2 VALUES (2);
-INSERT INTO t3 VALUES (3);
-#
-# CREATE ... SELECT
-# try to access parent from another thread.
-#
-# connection con1
-SET SESSION debug="+d,sleep_create_select_before_lock";
-CREATE TABLE t4 (c1 INT) ENGINE=MRG_MYISAM UNION=(t1,t2)
-INSERT_METHOD=FIRST SELECT * FROM t3;
-# connection default
-# Now try to access the parent.
-# If 3 is in table, SELECT had to wait.
-SELECT * FROM t4 ORDER BY c1;
-c1
-1
-2
-3
-# connection con1
-SET SESSION debug="-d,sleep_create_select_before_lock";
-# connection default
-# Cleanup for next test.
-DROP TABLE t4;
-DELETE FROM t1 WHERE c1 != 1;
-#
-# CREATE ... SELECT
-# try to access child from another thread.
-#
-# connection con1
-SET SESSION debug="+d,sleep_create_select_before_lock";
-CREATE TABLE t4 (c1 INT) ENGINE=MRG_MYISAM UNION=(t1,t2)
-INSERT_METHOD=FIRST SELECT * FROM t3;
-# connection default
-# Now try to access a child.
-# If 3 is in table, SELECT had to wait.
-SELECT * FROM t1 ORDER BY c1;
-c1
-1
-3
-# connection con1
-SET SESSION debug="-d,sleep_create_select_before_lock";
-# connection default
-DROP TABLE t1, t2, t3, t4;
diff --git a/mysql-test/r/merge.result b/mysql-test/r/merge.result
index a709817b7ef..4c05000573c 100644
--- a/mysql-test/r/merge.result
+++ b/mysql-test/r/merge.result
@@ -964,6 +964,28 @@ id ref
3 2
4 5
DROP TABLE t1, t2, t3;
+CREATE TABLE t1(a INT);
+CREATE TABLE m1(a INT) ENGINE=MERGE;
+SHOW CREATE TABLE m1;
+Table Create Table
+m1 CREATE TABLE `m1` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1
+DROP TABLE m1;
+CREATE TABLE m1(a INT) ENGINE=MERGE UNION=();
+SHOW CREATE TABLE m1;
+Table Create Table
+m1 CREATE TABLE `m1` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1
+ALTER TABLE m1 UNION=(t1);
+ALTER TABLE m1 UNION=();
+SHOW CREATE TABLE m1;
+Table Create Table
+m1 CREATE TABLE `m1` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t1, m1;
End of 5.0 tests
create table t1 (c1 int, index(c1));
create table t2 (c1 int, index(c1)) engine=merge union=(t1);
@@ -1129,7 +1151,7 @@ SHOW CREATE TABLE t4;
Table Create Table
t4 CREATE TABLE `t4` (
`c1` int(11) DEFAULT NULL
-) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=()
+) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1
INSERT INTO t4 VALUES (4);
ERROR HY000: Table 't4' is read only
DROP TABLE t4;
@@ -1146,7 +1168,7 @@ SHOW CREATE TABLE t4;
Table Create Table
t4 CREATE TABLE `t4` (
`c1` int(11) DEFAULT NULL
-) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=()
+) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1
INSERT INTO t4 VALUES (4);
ERROR HY000: Table 't4' is read only
DROP TABLE t4;
diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result
index 264d1567003..112a7b7649b 100644
--- a/mysql-test/r/myisam.result
+++ b/mysql-test/r/myisam.result
@@ -2024,4 +2024,185 @@ CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
DROP TABLE t1;
+CREATE TABLE t1 (
+c1 CHAR(130),
+c2 VARCHAR(1)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES(REPEAT("a",128), 'b');
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+1
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+REPAIR TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+1
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 CHAR(130),
+c2 VARCHAR(1)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES(REPEAT("a",128), 'b');
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+1
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+1
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 CHAR(130),
+c2 VARCHAR(1)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES(REPEAT("a",128), 'b');
+INSERT INTO t1 VALUES('b', 'b');
+INSERT INTO t1 VALUES('c', 'b');
+DELETE FROM t1 WHERE c1='b';
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+2
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+2
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 CHAR(130),
+c2 VARCHAR(1),
+KEY (c1)
+) ENGINE=MyISAM;
+# Insert 100 rows. Query log disabled.
+UPDATE t1 SET c1=REPEAT("a",128) LIMIT 90;
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+100
+ALTER TABLE t1 ENGINE=MyISAM;
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+100
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 CHAR(50),
+c2 VARCHAR(1)
+) ENGINE=MyISAM DEFAULT CHARSET UTF8;
+INSERT INTO t1 VALUES(REPEAT(_utf8 x'e0ae85',43), 'b');
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+1
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+REPAIR TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+1
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 CHAR(50),
+c2 VARCHAR(1)
+) ENGINE=MyISAM DEFAULT CHARSET UTF8;
+INSERT INTO t1 VALUES(REPEAT(_utf8 x'e0ae85',43), 'b');
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+1
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+1
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 CHAR(50),
+c2 VARCHAR(1)
+) ENGINE=MyISAM DEFAULT CHARSET UTF8;
+INSERT INTO t1 VALUES(REPEAT(_utf8 x'e0ae85',43), 'b');
+INSERT INTO t1 VALUES('b', 'b');
+INSERT INTO t1 VALUES('c', 'b');
+DELETE FROM t1 WHERE c1='b';
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+2
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+2
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 CHAR(50),
+c2 VARCHAR(1),
+KEY (c1)
+) ENGINE=MyISAM DEFAULT CHARSET UTF8;
+# Insert 100 rows. Query log disabled.
+UPDATE t1 SET c1=REPEAT(_utf8 x'e0ae85',43) LIMIT 90;
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+100
+ALTER TABLE t1 ENGINE=MyISAM;
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+100
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 VARCHAR(10) NOT NULL,
+c2 CHAR(10) DEFAULT NULL,
+c3 VARCHAR(10) NOT NULL,
+KEY (c1),
+KEY (c2)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;
+
+MyISAM file: MYSQLTEST_VARDIR/master-data/test/t1
+Record format: Packed
+Character set: utf8_general_ci (33)
+Data records: 0 Deleted blocks: 0
+Recordlength: 94
+
+table description:
+Key Start Len Index Type
+1 2 30 multip. varchar
+2 33 30 multip. char NULL
+DROP TABLE t1;
End of 5.1 tests
diff --git a/mysql-test/r/partition.result b/mysql-test/r/partition.result
index a0719d51670..b13010f8471 100644
--- a/mysql-test/r/partition.result
+++ b/mysql-test/r/partition.result
@@ -1,4 +1,7 @@
drop table if exists t1;
+create table t1 (a int) partition by list ((a/3)*10 div 1)
+(partition p0 values in (0), partition p1 values in (1));
+ERROR HY000: This partition function is not allowed
CREATE TABLE t1 (
d DATE NOT NULL
)
@@ -44,15 +47,6 @@ partition by key(a)
partitions 1e+300;
ERROR 42000: Only integers allowed as number here near '1e+300' at line 3
create table t1 (a int)
-partition by key (a)
-(partition p0 DATA DIRECTORY 'part-data' INDEX DIRECTORY 'part-data');
-ERROR 42000: Incorrect table name 'part-data'
-create table t1 (a int)
-partition by key (a)
-(partition p0,
-partition p1 DATA DIRECTORY 'part-data' INDEX DIRECTORY 'part-data');
-ERROR 42000: Incorrect table name 'part-data'
-create table t1 (a int)
partition by list (a)
(partition p0 values in (1));
create procedure pz()
@@ -342,7 +336,7 @@ PARTITION BY LIST (a)
(PARTITION x1 VALUES IN (10), PARTITION x2 VALUES IN (20));
analyze table t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
drop table t1;
create table t1
(a int)
@@ -536,11 +530,9 @@ t1 CREATE TABLE `t1` (
alter table t1
partition by key(a)
(partition p0, partition p1 engine=heap);
-ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
alter table t1
partition by key(a)
(partition p0 engine=heap, partition p1);
-ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
alter table t1
engine=heap
partition by key (a)
@@ -1045,9 +1037,7 @@ SHOW TABLE STATUS;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 MyISAM 10 Fixed 1 14 14 0 0 7 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned
ALTER TABLE t1 OPTIMIZE PARTITION p0;
-SHOW TABLE STATUS;
-Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 MyISAM 10 Fixed 1 7 7 0 1024 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned
+ERROR 42000: The storage engine for the table doesn't support optimize partition
DROP TABLE t1;
CREATE TABLE t1 (a int, index(a)) PARTITION BY KEY(a);
ALTER TABLE t1 DISABLE KEYS;
@@ -1062,6 +1052,12 @@ test.t1 repair note The storage engine for the table doesn't support repair
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize note The storage engine for the table doesn't support optimize
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
drop table t1;
drop procedure if exists mysqltest_1;
create table t1 (a int)
@@ -1300,6 +1296,14 @@ ALTER TABLE t1 OPTIMIZE PARTITION p1 EXTENDED;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXTENDED' at line 1
ALTER TABLE t1 ANALYZE PARTITION p1 EXTENDED;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXTENDED' at line 1
+ALTER TABLE t1 ANALYZE PARTITION p1;
+ERROR 42000: The storage engine for the table doesn't support analyze partition
+ALTER TABLE t1 CHECK PARTITION p1;
+ERROR 42000: The storage engine for the table doesn't support check partition
+ALTER TABLE t1 REPAIR PARTITION p1;
+ERROR 42000: The storage engine for the table doesn't support repair partition
+ALTER TABLE t1 OPTIMIZE PARTITION p1;
+ERROR 42000: The storage engine for the table doesn't support optimize partition
DROP TABLE t1;
CREATE TABLE t1 (s1 BIGINT UNSIGNED)
PARTITION BY RANGE (s1) (
diff --git a/mysql-test/r/partition_datatype.result b/mysql-test/r/partition_datatype.result
index c6506178b03..43d9aac13b7 100644
--- a/mysql-test/r/partition_datatype.result
+++ b/mysql-test/r/partition_datatype.result
@@ -1,4 +1,11 @@
drop table if exists t1;
+# test with not null
+create table t1 (a bit not null) partition by key (a);
+insert into t1 values (b'1');
+select hex(a) from t1 where a = b'1';
+hex(a)
+1
+drop table t1;
create table t1 (a tinyint not null) partition by key (a);
insert into t1 values (2);
select * from t1 where a = 2;
@@ -30,22 +37,22 @@ a
2
drop table t1;
create table t1 (a float not null) partition by key (a);
-insert into t1 values (2.1);
-select * from t1 where a = 2.1;
+insert into t1 values (0.5);
+select * from t1 where a = 0.5;
a
+0.5
drop table t1;
create table t1 (a double not null) partition by key (a);
-insert into t1 values (2.1);
-select * from t1 where a = 2.1;
+insert into t1 values (0.5);
+select * from t1 where a = 0.5;
a
-2.1
+0.5
drop table t1;
-create table t1 (a decimal not null) partition by key (a);
+create table t1 (a decimal(4,2) not null) partition by key (a);
insert into t1 values (2.1);
-Warnings:
-Note 1265 Data truncated for column 'a' at row 1
select * from t1 where a = 2.1;
a
+2.10
drop table t1;
create table t1 (a date not null) partition by key (a);
insert into t1 values ('2001-01-01');
@@ -125,6 +132,21 @@ select * from t1 where a = 'y';
a
y
drop table t1;
+# test with null allowed
+create table t1 (a bit) partition by key (a);
+insert into t1 values (b'1');
+insert into t1 values (NULL);
+select hex(a) from t1 where a = b'1';
+hex(a)
+1
+select hex(a) from t1 where a is NULL;
+hex(a)
+NULL
+select hex(a) from t1 order by a;
+hex(a)
+NULL
+1
+drop table t1;
create table t1 (a tinyint) partition by key (a);
insert into t1 values (2);
select * from t1 where a = 2;
@@ -156,22 +178,22 @@ a
2
drop table t1;
create table t1 (a float) partition by key (a);
-insert into t1 values (2.1);
-select * from t1 where a = 2.1;
+insert into t1 values (0.5);
+select * from t1 where a = 0.5;
a
+0.5
drop table t1;
create table t1 (a double) partition by key (a);
-insert into t1 values (2.1);
-select * from t1 where a = 2.1;
+insert into t1 values (0.5);
+select * from t1 where a = 0.5;
a
-2.1
+0.5
drop table t1;
-create table t1 (a decimal) partition by key (a);
+create table t1 (a decimal(4,2)) partition by key (a);
insert into t1 values (2.1);
-Warnings:
-Note 1265 Data truncated for column 'a' at row 1
select * from t1 where a = 2.1;
a
+2.10
drop table t1;
create table t1 (a date) partition by key (a);
insert into t1 values ('2001-01-01');
@@ -254,25 +276,41 @@ drop table t1;
create table t1 (a varchar(65531)) partition by key (a);
insert into t1 values ('bbbb');
insert into t1 values ('aaaa');
-select * from t1 where a = 'aaa%';
+select * from t1 where a = 'aaaa';
a
+aaaa
select * from t1 where a like 'aaa%';
a
aaaa
+select * from t1 where a = 'bbbb';
+a
+bbbb
drop table t1;
create table t1 (a varchar(65532)) partition by key (a);
insert into t1 values ('bbbb');
insert into t1 values ('aaaa');
-select * from t1 where a = 'aaa%';
+select * from t1 where a = 'aaaa';
a
+aaaa
select * from t1 where a like 'aaa%';
a
aaaa
+select * from t1 where a = 'bbbb';
+a
+bbbb
drop table t1;
create table t1 (a varchar(65533) not null) partition by key (a);
+insert into t1 values ('bbbb');
insert into t1 values ('aaaa');
-select * from t1 where a = 'aaa%';
+select * from t1 where a = 'aaaa';
+a
+aaaa
+select * from t1 where a like 'aaa%';
a
+aaaa
+select * from t1 where a = 'bbbb';
+a
+bbbb
drop table t1;
create table t1 (a varchar(65533)) partition by key (a);
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
@@ -280,3 +318,17 @@ create table t1 (a varchar(65534) not null) partition by key (a);
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
create table t1 (a varchar(65535)) partition by key (a);
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
+create table t1 (a bit(27), primary key (a)) engine=myisam
+partition by hash (a)
+(partition p0, partition p1, partition p2);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` bit(27) NOT NULL DEFAULT '\0\0\0\0',
+ PRIMARY KEY (`a`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION p0 ENGINE = MyISAM, PARTITION p1 ENGINE = MyISAM, PARTITION p2 ENGINE = MyISAM) */
+insert into t1 values (1),(4),(7),(10),(13),(16),(19),(22),(25),(28),(31),(34);
+select hex(a) from t1 where a = 7;
+hex(a)
+7
+drop table t1;
diff --git a/mysql-test/r/partition_error.result b/mysql-test/r/partition_error.result
index 46532cb32ab..585447ff333 100644
--- a/mysql-test/r/partition_error.result
+++ b/mysql-test/r/partition_error.result
@@ -1,4 +1,17 @@
drop table if exists t1;
+CREATE TABLE t1 (a INT)
+PARTITION BY HASH (a)
+( PARTITION p0 ENGINE=MyISAM,
+PARTITION p1);
+ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
+CREATE TABLE t1 (a INT)
+PARTITION BY LIST (a)
+SUBPARTITION BY HASH (a)
+( PARTITION p0 VALUES IN (0)
+( SUBPARTITION s0, SUBPARTITION s1 ENGINE=MyISAM, SUBPARTITION s2),
+PARTITION p1 VALUES IN (1)
+( SUBPARTITION s3 ENGINE=MyISAM, SUBPARTITION s4, SUBPARTITION s5 ENGINE=MyISAM));
+ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
CREATE TABLE t1 (
a int
)
diff --git a/mysql-test/r/partition_innodb.result b/mysql-test/r/partition_innodb.result
index 8cb8bc7c13f..6e56f9023eb 100644
--- a/mysql-test/r/partition_innodb.result
+++ b/mysql-test/r/partition_innodb.result
@@ -79,8 +79,7 @@ engine = innodb
partition by list (a)
(partition p0 values in (0));
alter table t1 engine = x;
-Warnings:
-Warning 1286 Unknown table engine 'x'
+ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -151,9 +150,11 @@ DROP TABLE t1;
create table t1 (int_column int, char_column char(5))
PARTITION BY RANGE (int_column) subpartition by key (char_column) subpartitions 2
(PARTITION p1 VALUES LESS THAN (5) ENGINE = InnoDB);
-alter table t1 PARTITION BY RANGE (int_column)
+alter table t1
+ENGINE = MyISAM
+PARTITION BY RANGE (int_column)
subpartition by key (char_column) subpartitions 2
-(PARTITION p1 VALUES LESS THAN (5) ENGINE = myisam);
+(PARTITION p1 VALUES LESS THAN (5));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
diff --git a/mysql-test/r/partition_not_windows.result b/mysql-test/r/partition_not_windows.result
index 501d3a469a1..44afdea3855 100644
--- a/mysql-test/r/partition_not_windows.result
+++ b/mysql-test/r/partition_not_windows.result
@@ -3,13 +3,13 @@ partition by range (a)
subpartition by hash (a)
(partition p0 VALUES LESS THAN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp'
(SUBPARTITION subpart00, SUBPARTITION subpart01));
-Checking if file exists before alter
+# Checking if file exists before alter
ALTER TABLE t1 REORGANIZE PARTITION p0 INTO
(partition p1 VALUES LESS THAN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp'
(SUBPARTITION subpart10, SUBPARTITION subpart11),
partition p2 VALUES LESS THAN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp'
(SUBPARTITION subpart20, SUBPARTITION subpart21));
-Checking if file exists after alter
+# Checking if file exists after alter
drop table t1;
set @org_mode=@@sql_mode;
set @@sql_mode='NO_DIR_IN_CREATE';
@@ -23,6 +23,9 @@ partition p01 values less than (1000)
data directory='/not/existing'
index directory='/not/existing'
);
+Warnings:
+Warning 0 DATA DIRECTORY option ignored
+Warning 0 INDEX DIRECTORY option ignored
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
@@ -33,11 +36,11 @@ set @@sql_mode=@org_mode;
CREATE TABLE t1(a INT)
PARTITION BY KEY (a)
(PARTITION p0 DATA DIRECTORY 'TEST_DIR/master-data/test');
-ERROR HY000: Incorrect arguments to DATA DIRECORY
+ERROR HY000: Incorrect arguments to DATA DIRECTORY
CREATE TABLE t1(a INT)
PARTITION BY KEY (a)
(PARTITION p0 INDEX DIRECTORY 'TEST_DIR/master-data/test');
-ERROR HY000: Incorrect arguments to INDEX DIRECORY
+ERROR HY000: Incorrect arguments to INDEX DIRECTORY
CREATE TABLE ts (id INT, purchased DATE)
PARTITION BY RANGE(YEAR(purchased))
SUBPARTITION BY HASH(TO_DAYS(purchased)) (
@@ -47,7 +50,7 @@ DATA DIRECTORY = 'TEST_DIR/master-data/test',
SUBPARTITION s0b
DATA DIRECTORY = 'TEST_DIR/master-data/test'
));
-ERROR HY000: Incorrect arguments to DATA DIRECORY
+ERROR HY000: Incorrect arguments to DATA DIRECTORY
CREATE TABLE ts (id INT, purchased DATE)
PARTITION BY RANGE(YEAR(purchased))
SUBPARTITION BY HASH(TO_DAYS(purchased)) (
@@ -57,7 +60,7 @@ INDEX DIRECTORY = 'TEST_DIR/master-data/test',
SUBPARTITION s0b
INDEX DIRECTORY = 'TEST_DIR/master-data/test'
));
-ERROR HY000: Incorrect arguments to INDEX DIRECORY
+ERROR HY000: Incorrect arguments to INDEX DIRECTORY
DROP TABLE IF EXISTS `example`;
CREATE TABLE `example` (
`ID_EXAMPLE` int(10) unsigned NOT NULL AUTO_INCREMENT,
@@ -66,9 +69,27 @@ CREATE TABLE `example` (
PRIMARY KEY (`ID_EXAMPLE`)
) ENGINE = MYISAM
PARTITION BY HASH(ID_EXAMPLE)(
-PARTITION p0 DATA DIRECTORY = '/build/5.1/data/partitiontest/p0Data',
-PARTITION p1 DATA DIRECTORY = '/build/5.1/data/partitiontest/p1Data',
-PARTITION p2 DATA DIRECTORY = '/build/5.1/data/partitiontest/p2Data',
-PARTITION p3 DATA DIRECTORY = '/build/5.1/data/partitiontest/p3Data'
+PARTITION p0 DATA DIRECTORY = 'MYSQLTEST_VARDIR/p0Data'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/p0Index',
+PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/p1Data'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/p1Index',
+PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/p2Data'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/p2Index',
+PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/p3Data'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/p3Index'
);
-ERROR HY000: Can't create/write to file '/build/5.1/data/partitiontest/p0Data/example#P#p0.MYD' (Errcode: 2)
+# Checking that MyISAM .MYD and .MYI are in test db and data/idx dir
+DROP TABLE example;
+CREATE TABLE `example` (
+`ID_EXAMPLE` int(10) unsigned NOT NULL AUTO_INCREMENT,
+`DESCRIPTION` varchar(30) NOT NULL,
+`LEVEL` smallint(5) unsigned DEFAULT NULL,
+PRIMARY KEY (`ID_EXAMPLE`)
+) ENGINE = MYISAM
+PARTITION BY HASH(ID_EXAMPLE)(
+PARTITION p0 DATA DIRECTORY = '/not/existent/p0Data',
+PARTITION p1 DATA DIRECTORY = '/not/existent/p1Data',
+PARTITION p2 DATA DIRECTORY = '/not/existent/p2Data',
+PARTITION p3 DATA DIRECTORY = '/not/existent/p3Data'
+);
+Got one of the listed errors
diff --git a/mysql-test/r/partition_range.result b/mysql-test/r/partition_range.result
index 4da79704ec3..b027ef088ae 100644
--- a/mysql-test/r/partition_range.result
+++ b/mysql-test/r/partition_range.result
@@ -1,4 +1,37 @@
drop table if exists t1, t2;
+create table t1 (a int)
+partition by range (a)
+( partition p0 values less than (maxvalue));
+alter table t1 add partition (partition p1 values less than (100000));
+ERROR HY000: MAXVALUE can only be used in last partition definition
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
+drop table t1;
+create table t1 (a integer)
+partition by range (a)
+( partition p0 values less than (4),
+partition p1 values less than (100));
+create trigger tr1 before insert on t1
+for each row begin
+set @a = 1;
+end|
+alter table t1 drop partition p0;
+drop table t1;
+create table t1 (a integer)
+partition by range (a)
+( partition p0 values less than (4),
+partition p1 values less than (100));
+LOCK TABLES t1 WRITE;
+alter table t1 drop partition p0;
+alter table t1 reorganize partition p1 into
+( partition p0 values less than (4),
+partition p1 values less than (100));
+alter table t1 add partition ( partition p2 values less than (200));
+UNLOCK TABLES;
+drop table t1;
create table t1 (a int unsigned)
partition by range (a)
(partition pnull values less than (0),
diff --git a/mysql-test/r/partition_symlink.result b/mysql-test/r/partition_symlink.result
index 362e97a6262..eb92a4f733d 100644
--- a/mysql-test/r/partition_symlink.result
+++ b/mysql-test/r/partition_symlink.result
@@ -81,3 +81,41 @@ Got one of the listed errors
DROP DATABASE mysqltest2;
USE test;
DROP USER mysqltest_1@localhost;
+create table t2 (i int )
+partition by range (i)
+(
+partition p01 values less than (1000)
+data directory="MYSQLTEST_VARDIR/tmp"
+ index directory="MYSQLTEST_VARDIR/tmp"
+);
+set @org_mode=@@sql_mode;
+set @@sql_mode='NO_DIR_IN_CREATE';
+select @@sql_mode;
+@@sql_mode
+NO_DIR_IN_CREATE
+create table t1 (i int )
+partition by range (i)
+(
+partition p01 values less than (1000)
+data directory='/not/existing'
+ index directory='/not/existing'
+);
+Warnings:
+Warning 0 DATA DIRECTORY option ignored
+Warning 0 INDEX DIRECTORY option ignored
+show create table t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `i` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (i) (PARTITION p01 VALUES LESS THAN (1000) ENGINE = MyISAM) */
+DROP TABLE t1, t2;
+set @@sql_mode=@org_mode;
+create table t1 (a int)
+partition by key (a)
+(partition p0 DATA DIRECTORY 'part-data' INDEX DIRECTORY 'part-data');
+ERROR 42000: Incorrect table name 'part-data'
+create table t1 (a int)
+partition by key (a)
+(partition p0,
+partition p1 DATA DIRECTORY 'part-data' INDEX DIRECTORY 'part-data');
+ERROR 42000: Incorrect table name 'part-data'
diff --git a/mysql-test/r/partition_windows.result b/mysql-test/r/partition_windows.result
index 1fc9e2ba254..c2d4054deeb 100644
--- a/mysql-test/r/partition_windows.result
+++ b/mysql-test/r/partition_windows.result
@@ -1,14 +1,30 @@
-DROP TABLE IF EXISTS `example`;
-CREATE TABLE `example` (
-`ID_EXAMPLE` int(10) unsigned NOT NULL AUTO_INCREMENT,
-`DESCRIPTION` varchar(30) NOT NULL,
-`LEVEL` smallint(5) unsigned DEFAULT NULL,
-PRIMARY KEY (`ID_EXAMPLE`)
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+c1 int(10) unsigned NOT NULL AUTO_INCREMENT,
+c2 varchar(30) NOT NULL,
+c3 smallint(5) unsigned DEFAULT NULL,
+PRIMARY KEY (c1)
) ENGINE = MYISAM
-PARTITION BY HASH(ID_EXAMPLE)(
-PARTITION p0 DATA DIRECTORY = 'C:/build/5.1/data/partitiontest/p0Data',
-PARTITION p1 DATA DIRECTORY = 'C:/build/5.1/data/partitiontest/p1Data',
-PARTITION p2 DATA DIRECTORY = 'C:/build/5.1/data/partitiontest/p2Data',
-PARTITION p3 DATA DIRECTORY = 'C:/build/5.1/data/partitiontest/p3Data'
+PARTITION BY HASH(c1)(
+PARTITION p0
+DATA DIRECTORY = 'C:/mysqltest/p0Data'
+ INDEX DIRECTORY = 'D:/mysqltest/p0Index',
+PARTITION p1,
+PARTITION p2
+DATA DIRECTORY = 'E:/mysqltest/p2Data'
+ INDEX DIRECTORY = 'F:/mysqltest/p2Index'
);
-ERROR HY000: Can't create/write to file 'C:\build\5.1\data\partitiontest\p0Data\example#P#p0.MYD' (Errcode: 2)
+Warnings:
+Warning 0 DATA DIRECTORY option ignored
+Warning 0 INDEX DIRECTORY option ignored
+Warning 0 DATA DIRECTORY option ignored
+Warning 0 INDEX DIRECTORY option ignored
+INSERT INTO t1 VALUES (NULL, "first", 1);
+INSERT INTO t1 VALUES (NULL, "second", 2);
+INSERT INTO t1 VALUES (NULL, "third", 3);
+ALTER TABLE t1 ADD PARTITION (PARTITION p3 DATA DIRECTORY = 'G:/mysqltest/p3Data' INDEX DIRECTORY = 'H:/mysqltest/p3Index');
+Warnings:
+Warning 0 DATA DIRECTORY option ignored
+Warning 0 INDEX DIRECTORY option ignored
+INSERT INTO t1 VALUES (NULL, "last", 4);
+DROP TABLE t1;
diff --git a/mysql-test/r/plugin_load.result b/mysql-test/r/plugin_load.result
new file mode 100644
index 00000000000..33116cc20ab
--- /dev/null
+++ b/mysql-test/r/plugin_load.result
@@ -0,0 +1,3 @@
+SELECT @@global.example_enum_var = 'e2';
+@@global.example_enum_var = 'e2'
+1
diff --git a/mysql-test/r/query_cache.result b/mysql-test/r/query_cache.result
index 1a728354c7b..c516ad474ed 100644
--- a/mysql-test/r/query_cache.result
+++ b/mysql-test/r/query_cache.result
@@ -1654,6 +1654,32 @@ set GLOBAL query_cache_type=default;
set GLOBAL query_cache_limit=default;
set GLOBAL query_cache_min_res_unit=default;
set GLOBAL query_cache_size=default;
+FLUSH STATUS;
+SET GLOBAL query_cache_size=10*1024*1024;
+SET @save_concurrent_insert= @@concurrent_insert;
+SET GLOBAL concurrent_insert= 0;
+CREATE TABLE t1 (c1 INT NOT NULL) ENGINE=MyISAM;
+INSERT INTO t1 (c1) VALUES (1), (2);
+SHOW GLOBAL VARIABLES LIKE 'concurrent_insert';
+Variable_name Value
+concurrent_insert 0
+SHOW STATUS LIKE 'Qcache_hits';
+Variable_name Value
+Qcache_hits 0
+SELECT * FROM t1;
+c1
+1
+2
+SELECT * FROM t1;
+c1
+1
+2
+SHOW STATUS LIKE 'Qcache_hits';
+Variable_name Value
+Qcache_hits 1
+DROP TABLE t1;
+SET GLOBAL concurrent_insert= @save_concurrent_insert;
+SET GLOBAL query_cache_size= default;
End of 5.0 tests
CREATE TABLE t1 (a ENUM('rainbow'));
INSERT INTO t1 VALUES (),(),(),(),();
diff --git a/mysql-test/r/symlink.result b/mysql-test/r/symlink.result
index 97bc092aa22..bda0d7d1451 100644
--- a/mysql-test/r/symlink.result
+++ b/mysql-test/r/symlink.result
@@ -22,6 +22,7 @@ insert into t1 (b) select b from t2;
insert into t2 (b) select b from t1;
insert into t1 (b) select b from t2;
drop table t2;
+create table t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="MYSQLTEST_VARDIR/tmp" index directory="MYSQLTEST_VARDIR/run";
insert into t9 select * from t1;
check table t9;
Table Op Msg_type Msg_text
@@ -54,10 +55,16 @@ t9 CREATE TABLE `t9` (
`d` int(11) NOT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/'
+create table t1 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="tmp";
Got one of the listed errors
+create database mysqltest;
+create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam index directory="/this-dir-does-not-exist";
Got one of the listed errors
+create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam index directory="not-hard-path";
Got one of the listed errors
+create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam index directory="MYSQLTEST_VARDIR/run";
Got one of the listed errors
+create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="MYSQLTEST_VARDIR/tmp";
Got one of the listed errors
alter table t9 rename mysqltest.t9;
select count(*) from mysqltest.t9;
@@ -74,6 +81,7 @@ t9 CREATE TABLE `t9` (
) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/'
drop database mysqltest;
create table t1 (a int not null) engine=myisam;
+alter table t1 data directory="MYSQLTEST_VARDIR/tmp";
Warnings:
Warning 0 DATA DIRECTORY option ignored
show create table t1;
@@ -82,6 +90,7 @@ t1 CREATE TABLE `t1` (
`a` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
alter table t1 add b int;
+alter table t1 data directory="MYSQLTEST_VARDIR/log";
Warnings:
Warning 0 DATA DIRECTORY option ignored
show create table t1;
@@ -90,6 +99,7 @@ t1 CREATE TABLE `t1` (
`a` int(11) NOT NULL,
`b` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
+alter table t1 index directory="MYSQLTEST_VARDIR/log";
Warnings:
Warning 0 INDEX DIRECTORY option ignored
show create table t1;
@@ -102,18 +112,20 @@ drop table t1;
CREATE TABLE t1(a INT)
DATA DIRECTORY='TEST_DIR/tmp'
INDEX DIRECTORY='TEST_DIR/tmp';
-ERROR HY000: Can't create/write to file 'TEST_DIR/tmp/t1.MYI' (Errcode: 17)
+Got one of the listed errors
CREATE TABLE t2(a INT)
DATA DIRECTORY='TEST_DIR/tmp'
INDEX DIRECTORY='TEST_DIR/tmp';
RENAME TABLE t2 TO t1;
ERROR HY000: Can't create/write to file 'TEST_DIR/tmp/t1.MYI' (Errcode: 17)
DROP TABLE t2;
+create temporary table t1 (a int) engine=myisam data directory="MYSQLTEST_VARDIR/log" select 9 a;
show create table t1;
Table Create Table
t1 CREATE TEMPORARY TABLE `t1` (
`a` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/log/'
+create temporary table t1 (a int) engine=myisam data directory="MYSQLTEST_VARDIR/log" select 99 a;
show create table t1;
Table Create Table
t1 CREATE TEMPORARY TABLE `t1` (
@@ -140,16 +152,24 @@ DROP TABLE t1;
End of 5.0 tests
CREATE TABLE t1(a INT)
INDEX DIRECTORY='TEST_DIR/master-data/mysql';
-ERROR HY000: Incorrect arguments to INDEX DIRECORY
+ERROR HY000: Incorrect arguments to INDEX DIRECTORY
CREATE TABLE t1(a INT)
DATA DIRECTORY='TEST_DIR/master-data/test';
-ERROR HY000: Incorrect arguments to DATA DIRECORY
+ERROR HY000: Incorrect arguments to DATA DIRECTORY
CREATE TABLE t1(a INT)
DATA DIRECTORY='TEST_DIR/master-data/';
-DROP TABLE t1;
+ERROR HY000: Incorrect arguments to DATA DIRECTORY
CREATE TABLE t1(a INT)
INDEX DIRECTORY='TEST_DIR/master-data';
-DROP TABLE t1;
+ERROR HY000: Incorrect arguments to INDEX DIRECTORY
CREATE TABLE t1(a INT)
INDEX DIRECTORY='TEST_DIR/master-data_var';
ERROR HY000: Can't create/write to file 'TEST_DIR/master-data_var/t1.MYI' (Errcode: 2)
+SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE='NO_DIR_IN_CREATE';
+CREATE TABLE t1(a INT) DATA DIRECTORY='MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY='MYSQLTEST_VARDIR/tmp';
+Warnings:
+Warning 0 DATA DIRECTORY option ignored
+Warning 0 INDEX DIRECTORY option ignored
+DROP TABLE t1;
+SET @@SQL_MODE=@OLD_SQL_MODE;
+End of 5.1 tests
diff --git a/mysql-test/r/type_set.result b/mysql-test/r/type_set.result
index 659215eda33..e36f21f2996 100644
--- a/mysql-test/r/type_set.result
+++ b/mysql-test/r/type_set.result
@@ -93,3 +93,4 @@ c
1,2,3
64
DROP TABLE t1;
+End of 5.0 tests
diff --git a/mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result b/mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result
index a288923b03c..43108222866 100644
--- a/mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result
+++ b/mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result
@@ -6,6 +6,8 @@ SET @test_character_set= 'cp932';
SET @test_collation= 'cp932_japanese_ci';
SET @safe_character_set_server= @@character_set_server;
SET @safe_collation_server= @@collation_server;
+SET @safe_character_set_client= @@character_set_client;
+SET @safe_character_set_results= @@character_set_results;
SET character_set_server= @test_character_set;
SET collation_server= @test_collation;
CREATE DATABASE d1;
@@ -72,10 +74,27 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
+set names utf8;
+create table t1 (
+name varchar(10),
+level smallint unsigned);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `name` varchar(10) DEFAULT NULL,
+ `level` smallint(5) unsigned DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=cp932
+insert into t1 values ('string',1);
+select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
+concat(name,space(level)) concat(name, repeat(' ',level))
+string string
+drop table t1;
DROP DATABASE d1;
USE test;
SET character_set_server= @safe_character_set_server;
SET collation_server= @safe_collation_server;
+SET character_set_client= @safe_character_set_client;
+SET character_set_results= @safe_character_set_results;
set names cp932;
set character_set_database = cp932;
CREATE TABLE t1(c1 CHAR(1)) DEFAULT CHARACTER SET = cp932;
diff --git a/mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result b/mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result
index a288923b03c..43108222866 100755
--- a/mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result
+++ b/mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result
@@ -6,6 +6,8 @@ SET @test_character_set= 'cp932';
SET @test_collation= 'cp932_japanese_ci';
SET @safe_character_set_server= @@character_set_server;
SET @safe_collation_server= @@collation_server;
+SET @safe_character_set_client= @@character_set_client;
+SET @safe_character_set_results= @@character_set_results;
SET character_set_server= @test_character_set;
SET collation_server= @test_collation;
CREATE DATABASE d1;
@@ -72,10 +74,27 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
+set names utf8;
+create table t1 (
+name varchar(10),
+level smallint unsigned);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `name` varchar(10) DEFAULT NULL,
+ `level` smallint(5) unsigned DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=cp932
+insert into t1 values ('string',1);
+select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
+concat(name,space(level)) concat(name, repeat(' ',level))
+string string
+drop table t1;
DROP DATABASE d1;
USE test;
SET character_set_server= @safe_character_set_server;
SET collation_server= @safe_collation_server;
+SET character_set_client= @safe_character_set_client;
+SET character_set_results= @safe_character_set_results;
set names cp932;
set character_set_database = cp932;
CREATE TABLE t1(c1 CHAR(1)) DEFAULT CHARACTER SET = cp932;
diff --git a/mysql-test/suite/ndb/r/ndb_partition_key.result b/mysql-test/suite/ndb/r/ndb_partition_key.result
index d87b59d6c0e..ed84b90951b 100644
--- a/mysql-test/suite/ndb/r/ndb_partition_key.result
+++ b/mysql-test/suite/ndb/r/ndb_partition_key.result
@@ -105,6 +105,12 @@ PARTITION BY KEY(a)
drop table t1;
CREATE TABLE t1 (a int not null primary key);
ALTER TABLE t1
+ENGINE = NDB
+PARTITION BY KEY(a)
+(PARTITION p0 ENGINE = NDB, PARTITION p1 ENGINE = NDB);
+drop table t1;
+CREATE TABLE t1 (a int not null primary key) ENGINE = NDB;
+ALTER TABLE t1
PARTITION BY KEY(a)
(PARTITION p0 ENGINE = NDB, PARTITION p1 ENGINE = NDB);
drop table t1;
@@ -160,7 +166,6 @@ t1 CREATE TABLE `t1` (
alter table t1
partition by key(a)
(partition p0 engine=ndb, partition p1);
-ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
alter table t1
engine=ndb
partition by key(a)
diff --git a/mysql-test/suite/ndb/t/ndb_partition_key.test b/mysql-test/suite/ndb/t/ndb_partition_key.test
index df351ea42c7..be76389f38d 100644
--- a/mysql-test/suite/ndb/t/ndb_partition_key.test
+++ b/mysql-test/suite/ndb/t/ndb_partition_key.test
@@ -79,6 +79,14 @@ drop table t1;
CREATE TABLE t1 (a int not null primary key);
ALTER TABLE t1
+ENGINE = NDB
+PARTITION BY KEY(a)
+(PARTITION p0 ENGINE = NDB, PARTITION p1 ENGINE = NDB);
+
+drop table t1;
+
+CREATE TABLE t1 (a int not null primary key) ENGINE = NDB;
+ALTER TABLE t1
PARTITION BY KEY(a)
(PARTITION p0 ENGINE = NDB, PARTITION p1 ENGINE = NDB);
@@ -116,7 +124,10 @@ show create table t1;
alter table t1 remove partitioning;
show create table t1;
---error ER_MIX_HANDLER_ERROR
+# after bug#31931 was fixed
+# this is OK, since the storage engine is specified
+# on table level before.
+#--error ER_MIX_HANDLER_ERROR
alter table t1
partition by key(a)
(partition p0 engine=ndb, partition p1);
diff --git a/mysql-test/suite/parts/inc/partition_alter4.inc b/mysql-test/suite/parts/inc/partition_alter4.inc
index 040c13d69d6..148d21e95f5 100644
--- a/mysql-test/suite/parts/inc/partition_alter4.inc
+++ b/mysql-test/suite/parts/inc/partition_alter4.inc
@@ -83,17 +83,17 @@ let $alter= ALTER TABLE t1 REBUILD PARTITION part_1,part_1,part_1;
--echo #------------------------------------------------------------------------
--echo # 5 ALTER ... REPAIR PARTITION
--echo #------------------------------------------------------------------------
---echo # 5.1 ALTER ... REBUILD PARTITION part_1;
-let $alter= ALTER TABLE t1 REBUILD PARTITION part_1;
+--echo # 5.1 ALTER ... REPAIR PARTITION part_1;
+let $alter= ALTER TABLE t1 REPAIR PARTITION part_1;
--source suite/parts/inc/partition_alter_41.inc
---echo # 5.2 ALTER ... REBUILD PARTITION part_1,part_2;
-let $alter= ALTER TABLE t1 REBUILD PARTITION part_1,part_2;
+--echo # 5.2 ALTER ... REPAIR PARTITION part_1,part_2;
+let $alter= ALTER TABLE t1 REPAIR PARTITION part_1,part_2;
--source suite/parts/inc/partition_alter_41.inc
---echo # 5.3 ALTER ... REBUILD PARTITION part_1,part_2,part_5,part_6,part_10;
-let $alter= ALTER TABLE t1 REBUILD PARTITION part_1,part_2,part_5,part_6,part_10;
+--echo # 5.3 ALTER ... REPAIR PARTITION part_1,part_2,part_5,part_6,part_10;
+let $alter= ALTER TABLE t1 REPAIR PARTITION part_1,part_2,part_5,part_6,part_10;
--source suite/parts/inc/partition_alter_41.inc
---echo # 5.4 ALTER ... REBUILD PARTITION part_1,part_1,part_1;
-let $alter= ALTER TABLE t1 REBUILD PARTITION part_1,part_1,part_1;
+--echo # 5.4 ALTER ... REPAIR PARTITION part_1,part_1,part_1;
+let $alter= ALTER TABLE t1 REPAIR PARTITION part_1,part_1,part_1;
--source suite/parts/inc/partition_alter_41.inc
--echo #------------------------------------------------------------------------
diff --git a/mysql-test/suite/parts/inc/partition_basic.inc b/mysql-test/suite/parts/inc/partition_basic.inc
index 1039a47626f..35b016d5ab2 100644
--- a/mysql-test/suite/parts/inc/partition_basic.inc
+++ b/mysql-test/suite/parts/inc/partition_basic.inc
@@ -30,25 +30,6 @@
let $unique= ;
--source suite/parts/inc/partition_methods1.inc
#
- --echo # 1.1.1 with DATA DIECTORY/INDEX DIRECTORY
- #
- --disable_query_log
- # DATA DIRECTORY
- eval SET @data_dir = 'DATA DIRECTORY =
- ''''$MYSQLTEST_VARDIR/tmp''''';
- let $data_directory = `select @data_dir`;
-
- #INDEX DIRECTORY
- eval SET @indx_dir = 'INDEX DIRECTORY =
- ''''$MYSQLTEST_VARDIR/tmp''''';
- let $index_directory = `select @indx_dir`;
-
- let $with_directories= 1;
- --source suite/parts/inc/partition_methods1.inc
- --source suite/parts/inc/partition_directory.inc
- let $with_directories= 0;
- --enable_query_log
- #
--echo # 1.2 The partitioning function contains two columns.
let $unique= ;
--source suite/parts/inc/partition_methods2.inc
@@ -68,24 +49,6 @@ if ($more_pk_ui_tests)
--echo # 2.2 UNIQUE INDEX consisting of one column
let $unique= , UNIQUE INDEX uidx1 (f_int1);
--source suite/parts/inc/partition_methods1.inc
-
- --echo # 2.2.1 with DATA DIECTORY/INDEX DIRECTORY
- #
- --disable_query_log
- # DATA DIRECTORY
- eval SET @data_dir = 'DATA DIRECTORY =
- ''''$MYSQLTEST_VARDIR/tmp''''';
- let $data_directory = `select @data_dir`;
-
- #INDEX DIRECTORY
- eval SET @indx_dir = 'INDEX DIRECTORY =
- ''''$MYSQLTEST_VARDIR/tmp''''';
- let $index_directory = `select @indx_dir`;
-
- let $with_directories= TRUE;
- --source suite/parts/inc/partition_methods1.inc
- let $with_directories= FALSE;
- --enable_query_log
#
if ($do_pk_tests)
{
diff --git a/mysql-test/suite/parts/inc/partition_basic_symlink.inc b/mysql-test/suite/parts/inc/partition_basic_symlink.inc
new file mode 100644
index 00000000000..94d48fcaf15
--- /dev/null
+++ b/mysql-test/suite/parts/inc/partition_basic_symlink.inc
@@ -0,0 +1,44 @@
+################################################################################
+# inc/partition_basic_symlink.inc #
+# #
+# Purpose: #
+# Basic tests around create partitioned table with/without PRIMARY KEY and #
+# /or UNIQUE INDEX #
+# Also includes test for DATA/INDEX DIR which requires symlinked files #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mleich #
+# Original Date: 2006-03-05 #
+# Change Author: mattiasj #
+# Change Date: 2008-02-06 #
+# Change: copied it from partition_basic.inc and kept DATA/INDEX DIR #
+################################################################################
+--enable_abort_on_error
+
+--echo
+let $unique= ;
+
+# DATA DIRECTORY
+# Make directory for partition data
+let $data_dir_path= $MYSQLTEST_VARDIR/mysql-test-data-dir;
+--mkdir $data_dir_path
+let $data_directory= DATA DIRECTORY = '$data_dir_path';
+
+#INDEX DIRECTORY
+# Make directory for partition index
+let $idx_dir_path= $MYSQLTEST_VARDIR/mysql-test-idx-dir;
+--mkdir $idx_dir_path
+let $index_directory= INDEX DIRECTORY = '$idx_dir_path';
+
+let $with_directories= 1;
+--echo #========================================================================
+--echo # 0.5 use partition_basic with DATA/INDEX DIRECTORY
+--echo #========================================================================
+--source suite/parts/inc/partition_basic.inc
+--echo #========================================================================
+--echo # 5 use partition_directory with DATA/INDEX DIRECTORY
+--echo #========================================================================
+--source suite/parts/inc/partition_directory.inc
+--rmdir $data_dir_path
+--rmdir $idx_dir_path
+let $with_directories= 0;
diff --git a/mysql-test/suite/parts/inc/partition_bigint.inc b/mysql-test/suite/parts/inc/partition_bigint.inc
index f7d22ce17d1..d3cd55096e7 100644
--- a/mysql-test/suite/parts/inc/partition_bigint.inc
+++ b/mysql-test/suite/parts/inc/partition_bigint.inc
@@ -1,21 +1,9 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a bigint unsigned not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE), (18446744073709551613), (18446744073709551612), (1), (2), (65535);
select * from t1;
diff --git a/mysql-test/suite/parts/inc/partition_binary.inc b/mysql-test/suite/parts/inc/partition_binary.inc
index 3ee363927c4..68e9e56e29e 100644
--- a/mysql-test/suite/parts/inc/partition_binary.inc
+++ b/mysql-test/suite/parts/inc/partition_binary.inc
@@ -1,23 +1,11 @@
--echo ---- Partitioning and binary data type
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a binary(255) not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values (repeat('a',255)), ('b'), (repeat('a',128)), (repeat('b',64));
select hex(a) from t1;
diff --git a/mysql-test/suite/parts/inc/partition_bit.inc b/mysql-test/suite/parts/inc/partition_bit.inc
index 6fcf3b208bb..5bbf0058028 100644
--- a/mysql-test/suite/parts/inc/partition_bit.inc
+++ b/mysql-test/suite/parts/inc/partition_bit.inc
@@ -1,15 +1,3 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
--disable_warnings
drop table if exists t1;
--enable_warnings
@@ -23,8 +11,8 @@ drop table t1;
eval create table t1 (a bit(0), primary key (a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory,
-partition pa2 $data_directory $index_directory);
+partition pa1,
+partition pa2);
show create table t1;
drop table t1;
@@ -37,15 +25,16 @@ insert into t1 values
(b'0000000000000000000000000000000000000000000000000000000000000001'),
(b'1010101010101010101010101010101010101010101010101010101010101010'),
(b'0101010101010101010101010101010101010101010101010101010101010101');
+--sorted_result
select hex(a) from t1;
drop table t1;
eval create table t1 (a bit(64), primary key (a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values
(b'1111111111111111111111111111111111111111111111111111111111111111'),
@@ -55,6 +44,7 @@ insert into t1 values
(b'0101010101010101010101010101010101010101010101010101010101010101');
select hex(a) from t1 where a=b'0101010101010101010101010101010101010101010101010101010101010101';
delete from t1 where a=b'0101010101010101010101010101010101010101010101010101010101010101';
+--sorted_result
select hex(a) from t1;
drop table t1;
@@ -62,12 +52,15 @@ eval create table t2 (a bit, primary key (a)) engine=$engine
partition by key (a) partitions 4;
show create table t2;
insert into t2 values (b'0'), (b'1');
+--sorted_result
select hex(a) from t2;
alter table t2 drop primary key;
show create table t2;
+--sorted_result
select hex(a) from t2;
alter table t2 add primary key (a);
show create table t2;
+--sorted_result
select hex(a) from t2;
drop table t2;
@@ -90,6 +83,7 @@ dec $count;
select hex(a) from t3 where a=b'01010101';
delete from t3 where a=b'01010101';
select count(*) from t3;
+--sorted_result
select hex(a) from t3;
drop table t3;
@@ -111,5 +105,6 @@ dec $count;
select hex(a) from t4 where a=b'00000001';
delete from t4 where a=b'00000001';
select count(*) from t4;
+--sorted_result
select hex(a) from t4;
drop table t4;
diff --git a/mysql-test/suite/parts/inc/partition_blob.inc b/mysql-test/suite/parts/inc/partition_blob.inc
index b22693c9f3d..0c3ec3fc9ba 100644
--- a/mysql-test/suite/parts/inc/partition_blob.inc
+++ b/mysql-test/suite/parts/inc/partition_blob.inc
@@ -1,24 +1,12 @@
--echo ---- Partitioning and blob data type
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
--error ER_BLOB_FIELD_IN_PART_FUNC_ERROR
eval create table t1 (a blob not null, primary key(a(767))) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
#show create table t1;
#insert into t1 values (repeat('a',1000)), ('b'), (repeat('a',500)), (repeat('b',64));
diff --git a/mysql-test/suite/parts/inc/partition_char.inc b/mysql-test/suite/parts/inc/partition_char.inc
index b3d7ae3c2a1..1db9642c002 100644
--- a/mysql-test/suite/parts/inc/partition_char.inc
+++ b/mysql-test/suite/parts/inc/partition_char.inc
@@ -1,23 +1,11 @@
--echo ---- Partitioning and char data type
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a char(255) not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values (repeat('a',255)), ('b'), (repeat('a',128)), (repeat('b',64));
select * from t1;
diff --git a/mysql-test/suite/parts/inc/partition_date.inc b/mysql-test/suite/parts/inc/partition_date.inc
index 45f9012604c..b538a5a9d8b 100644
--- a/mysql-test/suite/parts/inc/partition_date.inc
+++ b/mysql-test/suite/parts/inc/partition_date.inc
@@ -1,21 +1,9 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a date not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values ('1975-01-01'), ('2020-12-31'), ('1980-10-14'), ('2000-06-15');
select * from t1;
diff --git a/mysql-test/suite/parts/inc/partition_datetime.inc b/mysql-test/suite/parts/inc/partition_datetime.inc
index e948e827b4e..b9b277a0fcc 100644
--- a/mysql-test/suite/parts/inc/partition_datetime.inc
+++ b/mysql-test/suite/parts/inc/partition_datetime.inc
@@ -1,21 +1,9 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a datetime not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59');
select * from t1;
diff --git a/mysql-test/suite/parts/inc/partition_decimal.inc b/mysql-test/suite/parts/inc/partition_decimal.inc
index 09eb9b10831..17cef08e275 100644
--- a/mysql-test/suite/parts/inc/partition_decimal.inc
+++ b/mysql-test/suite/parts/inc/partition_decimal.inc
@@ -1,21 +1,9 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a decimal(10,4) not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values (999999.9999), (-999999.9999), (123456.7899), (-123456.7899), (-1.5), (1), (0), (-1), (1.5), (1234.567), (-1234.567);
select * from t1;
diff --git a/mysql-test/suite/parts/inc/partition_directory.inc b/mysql-test/suite/parts/inc/partition_directory.inc
index 5acdf13a8f9..f63a1952594 100644
--- a/mysql-test/suite/parts/inc/partition_directory.inc
+++ b/mysql-test/suite/parts/inc/partition_directory.inc
@@ -29,41 +29,35 @@ let $partitioning= ;
if ($with_partitioning)
{
let $partitioning= PARTITION BY HASH(f_int1) PARTITIONS 2;
---disable_query_log
if ($with_directories)
{
-eval SET @aux =
-'PARTITION BY HASH(f_int1) PARTITIONS 2
+let $partitioning=
+PARTITION BY HASH(f_int1) PARTITIONS 2
(PARTITION p1
$index_directory,
PARTITION p2
-$index_directory)';
-let $partitioning= `SELECT @aux`;
+$index_directory);
}
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
---enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY KEY
---disable_query_log
if ($with_partitioning)
{
-eval SET @aux =
-'PARTITION BY KEY(f_int1) PARTITIONS 5';
-let $partitioning= `SELECT @aux`;
+let $partitioning= PARTITION BY KEY(f_int1) PARTITIONS 5;
if ($with_directories)
{
---disable_query_log
-eval SET @aux =
-'PARTITION BY HASH(f_int1) PARTITIONS 5
+let $partitioning=
+PARTITION BY HASH(f_int1) PARTITIONS 5
(PARTITION p1
$data_directory,
PARTITION p2
@@ -73,27 +67,25 @@ $data_directory
$index_directory,
PARTITION p4,
PARTITION p5
-$index_directory)';
-let $partitioning= `SELECT @aux`;
+$index_directory);
}
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
---enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY LIST
---disable_query_log
if ($with_partitioning)
{
-eval SET @aux =
-'PARTITION BY LIST(MOD(f_int1,4))
+let $partitioning=
+PARTITION BY LIST(MOD(f_int1,4))
(PARTITION part_3 VALUES IN (-3)
$index_directory,
PARTITION part_2 VALUES IN (-2)
@@ -109,25 +101,23 @@ $index_directory,
PARTITION part2 VALUES IN (2)
$data_directory,
PARTITION part3 VALUES IN (3)
-$data_directory $index_directory)';
-let $partitioning= `SELECT @aux`;
+$data_directory $index_directory);
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
---enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE
---disable_query_log
if ($with_partitioning)
{
-eval SET @aux = 'PARTITION BY RANGE(f_int1)
+let $partitioning= PARTITION BY RANGE(f_int1)
(PARTITION parta VALUES LESS THAN (0)
$index_directory,
PARTITION partb VALUES LESS THAN ($max_row_div4)
@@ -139,26 +129,24 @@ PARTITION partd VALUES LESS THAN ($max_row_div2 + $max_row_div4),
PARTITION parte VALUES LESS THAN ($max_row)
$data_directory,
PARTITION partf VALUES LESS THAN $MAX_VALUE
-$index_directory)';
-let $partitioning= `SELECT @aux`;
+$index_directory);
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
---enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE -- SUBPARTITION BY HASH
---disable_query_log
if ($with_partitioning)
{
-eval SET @aux =
-'PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
+let $partitioning=
+PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
(PARTITION parta VALUES LESS THAN (0)
$index_directory,
PARTITION partb VALUES LESS THAN ($max_row_div4)
@@ -166,25 +154,23 @@ $data_directory,
PARTITION partc VALUES LESS THAN ($max_row_div2),
PARTITION partd VALUES LESS THAN $MAX_VALUE
$data_directory
-$index_directory)';
-let $partitioning= `SELECT @aux`;
+$index_directory);
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
---enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE -- SUBPARTITION BY KEY
---disable_query_log
if ($with_partitioning)
{
-eval SET @aux = 'PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
+let $partitioning= PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
(PARTITION part1 VALUES LESS THAN (0)
$data_directory
(SUBPARTITION subpart11, SUBPARTITION subpart12),
@@ -196,26 +182,24 @@ $data_directory
$index_directory
(SUBPARTITION subpart31, SUBPARTITION subpart32),
PARTITION part4 VALUES LESS THAN $MAX_VALUE
-(SUBPARTITION subpart41, SUBPARTITION subpart42))';
-let $partitioning= `SELECT @aux`;
+(SUBPARTITION subpart41, SUBPARTITION subpart42));
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
---enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY LIST -- SUBPARTITION BY HASH
---disable_query_log
if ($with_partitioning)
{
-eval SET @aux =
-'PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
+let $partitioning=
+PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
(PARTITION part1 VALUES IN (0)
$index_directory
(SUBPARTITION sp11
@@ -239,15 +223,14 @@ eval SET @aux =
$index_directory,
SUBPARTITION sp42
$data_directory
- $index_directory))';
-let $partitioning= `SELECT @aux`;
+ $index_directory));
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
---enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
DROP TABLE t1;
diff --git a/mysql-test/suite/parts/inc/partition_double.inc b/mysql-test/suite/parts/inc/partition_double.inc
index 57be826bac7..befbe860b86 100644
--- a/mysql-test/suite/parts/inc/partition_double.inc
+++ b/mysql-test/suite/parts/inc/partition_double.inc
@@ -1,21 +1,9 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a double not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values (-2.2250738585072014E+208), (-2.2250738585072014E-208), (-1.5), (-1), (0), (1.5), (1234.567), (2.2250738585072014E+208);
select * from t1;
diff --git a/mysql-test/suite/parts/inc/partition_engine.inc b/mysql-test/suite/parts/inc/partition_engine.inc
index 769e3d71530..b2fab2ff27e 100644
--- a/mysql-test/suite/parts/inc/partition_engine.inc
+++ b/mysql-test/suite/parts/inc/partition_engine.inc
@@ -83,6 +83,7 @@ DROP TABLE t1;
--echo # 3 Some but not all named partitions or subpartitions get a storage
--echo # engine assigned
--echo #------------------------------------------------------------------------
+--error ER_MIX_HANDLER_ERROR
eval CREATE TABLE t1 (
$column_list
)
@@ -90,10 +91,7 @@ PARTITION BY HASH(f_int1)
( PARTITION part1 STORAGE ENGINE = $engine,
PARTITION part2
);
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
---source suite/parts/inc/partition_check.inc
-DROP TABLE t1;
+--error ER_MIX_HANDLER_ERROR
eval CREATE TABLE t1 (
$column_list
)
@@ -101,10 +99,7 @@ PARTITION BY HASH(f_int1)
( PARTITION part1 ,
PARTITION part2 STORAGE ENGINE = $engine
);
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
---source suite/parts/inc/partition_check.inc
-DROP TABLE t1;
+--error ER_MIX_HANDLER_ERROR
eval CREATE TABLE t1 (
$column_list
)
@@ -117,10 +112,7 @@ SUBPARTITION BY HASH(f_int1)
(SUBPARTITION subpart21 STORAGE ENGINE = $engine,
SUBPARTITION subpart22 STORAGE ENGINE = $engine)
);
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
---source suite/parts/inc/partition_check.inc
-DROP TABLE t1;
+--error ER_MIX_HANDLER_ERROR
eval CREATE TABLE t1 (
$column_list
)
@@ -133,6 +125,19 @@ SUBPARTITION BY HASH(f_int1)
(SUBPARTITION subpart21,
SUBPARTITION subpart22 )
);
+eval CREATE TABLE t1 (
+$column_list
+)
+ENGINE = $engine
+PARTITION BY RANGE(f_int1)
+SUBPARTITION BY HASH(f_int1)
+( PARTITION part1 VALUES LESS THAN ($max_row_div2)
+ (SUBPARTITION subpart11 STORAGE ENGINE = $engine,
+ SUBPARTITION subpart12 STORAGE ENGINE = $engine),
+ PARTITION part2 VALUES LESS THAN $MAX_VALUE
+ (SUBPARTITION subpart21,
+ SUBPARTITION subpart22 )
+);
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
--source suite/parts/inc/partition_check.inc
@@ -142,6 +147,33 @@ DROP TABLE t1;
--echo # 4 Storage engine assignment after partition name + after name of
--echo # subpartitions belonging to another partition
--echo #------------------------------------------------------------------------
+--error ER_MIX_HANDLER_ERROR
+eval CREATE TABLE t1 (
+$column_list
+)
+PARTITION BY RANGE(f_int1)
+SUBPARTITION BY HASH(f_int1)
+( PARTITION part1 VALUES LESS THAN ($max_row_div2)
+ (SUBPARTITION subpart11,
+ SUBPARTITION subpart12),
+ PARTITION part2 VALUES LESS THAN $MAX_VALUE
+ (SUBPARTITION subpart21 STORAGE ENGINE = $engine,
+ SUBPARTITION subpart22 STORAGE ENGINE = $engine)
+);
+eval CREATE TABLE t1 (
+$column_list
+)
+ENGINE = $engine
+PARTITION BY RANGE(f_int1)
+SUBPARTITION BY HASH(f_int1)
+( PARTITION part1 VALUES LESS THAN ($max_row_div2) ENGINE = $engine
+ (SUBPARTITION subpart11,
+ SUBPARTITION subpart12),
+ PARTITION part2 VALUES LESS THAN $MAX_VALUE
+ (SUBPARTITION subpart21,
+ SUBPARTITION subpart22 STORAGE ENGINE = $engine)
+);
+DROP TABLE t1;
eval CREATE TABLE t1 (
$column_list
)
@@ -167,7 +199,7 @@ SUBPARTITION BY HASH(f_int1)
(SUBPARTITION subpart11 STORAGE ENGINE = $engine,
SUBPARTITION subpart12 STORAGE ENGINE = $engine),
PARTITION part2 VALUES LESS THAN $MAX_VALUE ENGINE = $engine
- (SUBPARTITION subpart21,
+ (SUBPARTITION subpart21 ENGINE = $engine,
SUBPARTITION subpart22)
);
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
@@ -209,7 +241,7 @@ SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
DROP TABLE t1;
--echo # 6.2 Storage engine assignment after partition name + after
--echo # subpartition name
-# in partition part + in sub partition part
+--echo # in partition part + in sub partition part
eval CREATE TABLE t1 (
$column_list
)
diff --git a/mysql-test/suite/parts/inc/partition_enum.inc b/mysql-test/suite/parts/inc/partition_enum.inc
index 886ab6a5f97..9f2c5976097 100644
--- a/mysql-test/suite/parts/inc/partition_enum.inc
+++ b/mysql-test/suite/parts/inc/partition_enum.inc
@@ -1,23 +1,11 @@
--echo ---- Partitioning and enum data type
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a enum('A','B','C','D','E','F','G','H','I','J','K','L') not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values ('A'),('D'),('L'),('G');
select * from t1;
diff --git a/mysql-test/suite/parts/inc/partition_float.inc b/mysql-test/suite/parts/inc/partition_float.inc
index 45c2f16ac98..34f14137d4d 100644
--- a/mysql-test/suite/parts/inc/partition_float.inc
+++ b/mysql-test/suite/parts/inc/partition_float.inc
@@ -1,21 +1,9 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a float not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values (-3.402823466E+38), (3.402823466E+38), (-1.5), (-1), (0), (1), (1.5);
select * from t1;
diff --git a/mysql-test/suite/parts/inc/partition_int.inc b/mysql-test/suite/parts/inc/partition_int.inc
index 7f019c96b94..bd9da689187 100644
--- a/mysql-test/suite/parts/inc/partition_int.inc
+++ b/mysql-test/suite/parts/inc/partition_int.inc
@@ -1,21 +1,9 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a int unsigned not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values (4294967295), (4294967294), (4294967293), (4294967292), (1), (2), (65535);
select * from t1;
diff --git a/mysql-test/suite/parts/inc/partition_key_16col.inc b/mysql-test/suite/parts/inc/partition_key_16col.inc
index 5f97d5d0f71..988dc4554ab 100644
--- a/mysql-test/suite/parts/inc/partition_key_16col.inc
+++ b/mysql-test/suite/parts/inc/partition_key_16col.inc
@@ -1,21 +1,9 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1)) engine=$engine
partition by key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values
('1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113,'1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113, 'tbhth nrzh ztfghgfh fzh ftzhj fztjh'),
diff --git a/mysql-test/suite/parts/inc/partition_key_32col.inc b/mysql-test/suite/parts/inc/partition_key_32col.inc
index 90a36d2a228..614693902dc 100644
--- a/mysql-test/suite/parts/inc/partition_key_32col.inc
+++ b/mysql-test/suite/parts/inc/partition_key_32col.inc
@@ -1,29 +1,17 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
--error ER_TOO_MANY_KEY_PARTS
eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3)) engine=$engine
partition by key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1)) engine=$engine
partition by key(a,b,c,d,e,f,g,h) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
--disable_abort_on error
show create table t1;
diff --git a/mysql-test/suite/parts/inc/partition_key_4col.inc b/mysql-test/suite/parts/inc/partition_key_4col.inc
index c5d1452080f..a94ab581620 100644
--- a/mysql-test/suite/parts/inc/partition_key_4col.inc
+++ b/mysql-test/suite/parts/inc/partition_key_4col.inc
@@ -1,21 +1,9 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w'), primary key(a,b,c,d)) engine=$engine
partition by key (a,b,c,d) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values
('1975-01-01', 'abcde', 'abcde','m'),
diff --git a/mysql-test/suite/parts/inc/partition_key_8col.inc b/mysql-test/suite/parts/inc/partition_key_8col.inc
index a0d2e1532f3..fcbab7c355d 100644
--- a/mysql-test/suite/parts/inc/partition_key_8col.inc
+++ b/mysql-test/suite/parts/inc/partition_key_8col.inc
@@ -1,21 +1,9 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h)) engine=$engine
partition by key(a,b,c,d,e,f,g,h) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values
('1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113, 'tbhth nrzh ztfghgfh fzh ftzhj fztjh'),
diff --git a/mysql-test/suite/parts/inc/partition_layout_check1.inc b/mysql-test/suite/parts/inc/partition_layout_check1.inc
index 6fa8df25496..b953d858adb 100644
--- a/mysql-test/suite/parts/inc/partition_layout_check1.inc
+++ b/mysql-test/suite/parts/inc/partition_layout_check1.inc
@@ -38,7 +38,8 @@ if ($do_file_tests)
--exec ls $MYSQLTEST_VARDIR/master-data/test/t1* > $MYSQLTEST_VARDIR/master-data/test/tmp2 2>&1 || true
if ($with_directories)
{
---exec ls $MYSQLTEST_VARDIR/tmp/t1* >> $MYSQLTEST_VARDIR/master-data/test/tmp2 2>&1 || true
+--exec ls $MYSQLTEST_VARDIR/mysql-test-data-dir/t1* >> $MYSQLTEST_VARDIR/master-data/test/tmp2 2>&1 || true
+--exec ls $MYSQLTEST_VARDIR/mysql-test-idx-dir/t1* >> $MYSQLTEST_VARDIR/master-data/test/tmp2 2>&1 || true
}
eval SET @aux = CONCAT('load_file(''$MYSQLTEST_VARDIR','/master-data/test/tmp2''
)');
diff --git a/mysql-test/suite/parts/inc/partition_layout_check2.inc b/mysql-test/suite/parts/inc/partition_layout_check2.inc
index 05c44a73a7f..716baa7d042 100644
--- a/mysql-test/suite/parts/inc/partition_layout_check2.inc
+++ b/mysql-test/suite/parts/inc/partition_layout_check2.inc
@@ -32,6 +32,11 @@ if ($do_file_tests)
{
# List the files belonging to the table t1
--exec ls $MYSQLTEST_VARDIR/master-data/test/t1* > $MYSQLTEST_VARDIR/master-data/test/tmp2 2>&1 || true
+if ($with_directories)
+{
+--exec ls $MYSQLTEST_VARDIR/mysql-test-data-dir/t1* >> $MYSQLTEST_VARDIR/master-data/test/tmp2 2>&1 || true
+--exec ls $MYSQLTEST_VARDIR/mysql-test-idx-dir/t1* >> $MYSQLTEST_VARDIR/master-data/test/tmp2 2>&1 || true
+}
eval SET @aux = CONCAT('load_file(''$MYSQLTEST_VARDIR','/master-data/test/tmp2'')');
let $file_list= `SELECT @aux`;
}
diff --git a/mysql-test/suite/parts/inc/partition_mediumint.inc b/mysql-test/suite/parts/inc/partition_mediumint.inc
index 18bfedf7ed9..10ed96e52b0 100644
--- a/mysql-test/suite/parts/inc/partition_mediumint.inc
+++ b/mysql-test/suite/parts/inc/partition_mediumint.inc
@@ -1,21 +1,9 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a mediumint unsigned not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values (16777215), (16777214), (16777213), (16777212), (1), (2), (65535);
select * from t1;
diff --git a/mysql-test/suite/parts/inc/partition_methods1.inc b/mysql-test/suite/parts/inc/partition_methods1.inc
index 1edcdcb3743..54cf050f1ff 100644
--- a/mysql-test/suite/parts/inc/partition_methods1.inc
+++ b/mysql-test/suite/parts/inc/partition_methods1.inc
@@ -44,42 +44,38 @@ let $partitioning= ;
if ($with_partitioning)
{
let $partitioning= PARTITION BY HASH(f_int1) PARTITIONS 2;
---disable_query_log
if ($with_directories)
{
-eval SET @aux =
-'PARTITION BY HASH(f_int1) PARTITIONS 2
+let $partitioning=
+PARTITION BY HASH(f_int1) PARTITIONS 2
(PARTITION p1
$data_directory
$index_directory,
PARTITION p2
$data_directory
-$index_directory)';
-let $partitioning= `SELECT @aux`;
+$index_directory);
}
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
---enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY KEY
---disable_query_log
if ($with_partitioning)
{
-eval SET @aux =
-'PARTITION BY KEY(f_int1) PARTITIONS 5';
-let $partitioning= `SELECT @aux`;
+let $partitioning=
+PARTITION BY KEY(f_int1) PARTITIONS 5;
if ($with_directories)
{
-eval SET @aux =
-'PARTITION BY HASH(f_int1) PARTITIONS 5
+let $partitioning=
+PARTITION BY KEY(f_int1) PARTITIONS 5
(PARTITION p1
$data_directory
$index_directory,
@@ -94,27 +90,37 @@ $data_directory
$index_directory,
PARTITION p5
$data_directory
-$index_directory)';
-let $partitioning= `SELECT @aux`;
+$index_directory);
}
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
---enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY LIST
---disable_query_log
if ($with_partitioning)
{
-eval SET @aux =
-'PARTITION BY LIST(MOD(f_int1,4))
+let $partitioning=
+PARTITION BY LIST(MOD(f_int1,4))
+(PARTITION part_3 VALUES IN (-3),
+ PARTITION part_2 VALUES IN (-2),
+ PARTITION part_1 VALUES IN (-1),
+ PARTITION part_N VALUES IN (NULL),
+ PARTITION part0 VALUES IN (0),
+ PARTITION part1 VALUES IN (1),
+ PARTITION part2 VALUES IN (2),
+ PARTITION part3 VALUES IN (3));
+if ($with_directories)
+{
+let $partitioning=
+PARTITION BY LIST(MOD(f_int1,4))
(PARTITION part_3 VALUES IN (-3)
$data_directory $index_directory,
PARTITION part_2 VALUES IN (-2)
@@ -130,25 +136,33 @@ $data_directory $index_directory,
PARTITION part2 VALUES IN (2)
$data_directory $index_directory,
PARTITION part3 VALUES IN (3)
-$data_directory $index_directory)';
-let $partitioning= `SELECT @aux`;
+$data_directory $index_directory);
+}
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
---enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE
---disable_query_log
if ($with_partitioning)
{
-eval SET @aux = 'PARTITION BY RANGE(f_int1)
+let $partitioning= PARTITION BY RANGE(f_int1)
+(PARTITION parta VALUES LESS THAN (0),
+PARTITION partb VALUES LESS THAN ($max_row_div4),
+PARTITION partc VALUES LESS THAN ($max_row_div2),
+PARTITION partd VALUES LESS THAN ($max_row_div2 + $max_row_div4),
+PARTITION parte VALUES LESS THAN ($max_row),
+PARTITION partf VALUES LESS THAN $MAX_VALUE);
+if ($with_directories)
+{
+let $partitioning= PARTITION BY RANGE(f_int1)
(PARTITION parta VALUES LESS THAN (0)
$data_directory
$index_directory,
@@ -166,26 +180,33 @@ $data_directory
$index_directory,
PARTITION partf VALUES LESS THAN $MAX_VALUE
$data_directory
-$index_directory)';
-let $partitioning= `SELECT @aux`;
+$index_directory);
}
+}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
---enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE -- SUBPARTITION BY HASH
---disable_query_log
if ($with_partitioning)
{
-eval SET @aux =
-'PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
+let $partitioning=
+PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
+(PARTITION parta VALUES LESS THAN (0),
+PARTITION partb VALUES LESS THAN ($max_row_div4),
+PARTITION partc VALUES LESS THAN ($max_row_div2),
+PARTITION partd VALUES LESS THAN $MAX_VALUE);
+if ($with_directories)
+{
+let $partitioning=
+PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
(PARTITION parta VALUES LESS THAN (0)
$data_directory
$index_directory,
@@ -197,60 +218,81 @@ $data_directory
$index_directory,
PARTITION partd VALUES LESS THAN $MAX_VALUE
$data_directory
-$index_directory)';
-let $partitioning= `SELECT @aux`;
+$index_directory);
+}
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
---enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE -- SUBPARTITION BY KEY
---disable_query_log
if ($with_partitioning)
{
-eval SET @aux = 'PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
+let $partitioning= PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
(PARTITION part1 VALUES LESS THAN (0)
-$data_directory
-$index_directory
(SUBPARTITION subpart11, SUBPARTITION subpart12),
PARTITION part2 VALUES LESS THAN ($max_row_div4)
-$data_directory
-$index_directory
(SUBPARTITION subpart21, SUBPARTITION subpart22),
PARTITION part3 VALUES LESS THAN ($max_row_div2)
-$data_directory
-$index_directory
(SUBPARTITION subpart31, SUBPARTITION subpart32),
PARTITION part4 VALUES LESS THAN $MAX_VALUE
-$data_directory
-$index_directory
-(SUBPARTITION subpart41, SUBPARTITION subpart42))';
-let $partitioning= `SELECT @aux`;
+(SUBPARTITION subpart41, SUBPARTITION subpart42));
+if ($with_directories)
+{
+let $partitioning= PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
+(PARTITION part1 VALUES LESS THAN (0)
+(SUBPARTITION subpart11 $data_directory $index_directory,
+ SUBPARTITION subpart12 $data_directory $index_directory),
+PARTITION part2 VALUES LESS THAN ($max_row_div4)
+(SUBPARTITION subpart21 $data_directory $index_directory,
+ SUBPARTITION subpart22 $data_directory $index_directory),
+PARTITION part3 VALUES LESS THAN ($max_row_div2)
+(SUBPARTITION subpart31 $data_directory $index_directory,
+ SUBPARTITION subpart32 $data_directory $index_directory),
+PARTITION part4 VALUES LESS THAN $MAX_VALUE
+(SUBPARTITION subpart41 $data_directory $index_directory,
+ SUBPARTITION subpart42 $data_directory $index_directory));
}
+}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
---enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY LIST -- SUBPARTITION BY HASH
---disable_query_log
if ($with_partitioning)
{
-eval SET @aux =
-'PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
+let $partitioning=
+PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
+(PARTITION part1 VALUES IN (0)
+ (SUBPARTITION sp11,
+ SUBPARTITION sp12),
+ PARTITION part2 VALUES IN (1)
+ (SUBPARTITION sp21,
+ SUBPARTITION sp22),
+ PARTITION part3 VALUES IN (2)
+ (SUBPARTITION sp31,
+ SUBPARTITION sp32),
+ PARTITION part4 VALUES IN (NULL)
+ (SUBPARTITION sp41,
+ SUBPARTITION sp42));
+if ($with_directories)
+{
+let $partitioning=
+PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
(PARTITION part1 VALUES IN (0)
$data_directory
$index_directory
@@ -282,26 +324,33 @@ eval SET @aux =
$index_directory,
SUBPARTITION sp42
$data_directory
- $index_directory))';
-let $partitioning= `SELECT @aux`;
+ $index_directory));
+}
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
---enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY LIST -- SUBPARTITION BY KEY
---disable_query_log
if ($with_partitioning)
{
-eval SET @aux =
-'PARTITION BY LIST(ABS(MOD(f_int1,2)))
+let $partitioning=
+PARTITION BY LIST(ABS(MOD(f_int1,2)))
+SUBPARTITION BY KEY(f_int1) SUBPARTITIONS $sub_part_no
+(PARTITION part1 VALUES IN (0),
+ PARTITION part2 VALUES IN (1),
+ PARTITION part3 VALUES IN (NULL));
+if ($with_directories)
+{
+let $partitioning=
+PARTITION BY LIST(ABS(MOD(f_int1,2)))
SUBPARTITION BY KEY(f_int1) SUBPARTITIONS $sub_part_no
(PARTITION part1 VALUES IN (0)
$data_directory
@@ -311,17 +360,16 @@ SUBPARTITION BY KEY(f_int1) SUBPARTITIONS $sub_part_no
$index_directory,
PARTITION part3 VALUES IN (NULL)
$data_directory
- $index_directory)';
-let $partitioning= `SELECT @aux`;
+ $index_directory);
+}
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
---enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
-let $with_directories= FALSE;
diff --git a/mysql-test/suite/parts/inc/partition_methods2.inc b/mysql-test/suite/parts/inc/partition_methods2.inc
index 91821d620b6..8af6a2cbf42 100644
--- a/mysql-test/suite/parts/inc/partition_methods2.inc
+++ b/mysql-test/suite/parts/inc/partition_methods2.inc
@@ -43,7 +43,19 @@ let $partitioning= ;
if ($with_partitioning)
{
let $partitioning= PARTITION BY HASH(f_int1 + f_int2) PARTITIONS 2;
+if ($with_directories)
+{
+let $partitioning=
+PARTITION BY HASH(f_int1 + f_int2) PARTITIONS 2
+(PARTITION p1
+$data_directory
+$index_directory,
+PARTITION p2
+$data_directory
+$index_directory);
+}
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
@@ -57,7 +69,28 @@ DROP TABLE t1;
if ($with_partitioning)
{
let $partitioning= PARTITION BY KEY(f_int1,f_int2) PARTITIONS 5;
+if ($with_directories)
+{
+let $partitioning=
+PARTITION BY KEY(f_int1,f_int2) PARTITIONS 5
+(PARTITION p1
+$data_directory
+$index_directory,
+PARTITION p2
+$data_directory
+$index_directory,
+PARTITION p3
+$data_directory
+$index_directory,
+PARTITION p4
+$data_directory
+$index_directory,
+PARTITION p5
+$data_directory
+$index_directory);
+}
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
@@ -79,7 +112,29 @@ let $partitioning= PARTITION BY LIST(MOD(f_int1 + f_int2,4))
PARTITION part1 VALUES IN (1),
PARTITION part2 VALUES IN (2),
PARTITION part3 VALUES IN (3));
+if ($with_directories)
+{
+let $partitioning=
+PARTITION BY LIST(MOD(f_int1 + f_int2,4))
+(PARTITION part_3 VALUES IN (-3)
+$data_directory $index_directory,
+ PARTITION part_2 VALUES IN (-2)
+$data_directory $index_directory,
+ PARTITION part_1 VALUES IN (-1)
+$data_directory $index_directory,
+ PARTITION part_N VALUES IN (NULL)
+$data_directory $index_directory,
+ PARTITION part0 VALUES IN (0)
+$data_directory $index_directory,
+ PARTITION part1 VALUES IN (1)
+$data_directory $index_directory,
+ PARTITION part2 VALUES IN (2)
+$data_directory $index_directory,
+ PARTITION part3 VALUES IN (3)
+$data_directory $index_directory);
+}
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
@@ -92,17 +147,37 @@ DROP TABLE t1;
#----------- PARTITION BY RANGE
if ($with_partitioning)
{
---disable_query_log
-eval SET @aux = 'PARTITION BY RANGE((f_int1 + f_int2) DIV 2)
+let $partitioning= PARTITION BY RANGE((f_int1 + f_int2) DIV 2)
(PARTITION parta VALUES LESS THAN (0),
PARTITION partb VALUES LESS THAN ($max_row_div4),
PARTITION partc VALUES LESS THAN ($max_row_div2),
PARTITION partd VALUES LESS THAN ($max_row_div2 + $max_row_div4),
PARTITION parte VALUES LESS THAN ($max_row),
-PARTITION partf VALUES LESS THAN $MAX_VALUE)';
-let $partitioning= `SELECT @aux`;
---enable_query_log
+PARTITION partf VALUES LESS THAN $MAX_VALUE);
+if ($with_directories)
+{
+let $partitioning= PARTITION BY RANGE((f_int1 + f_int2) DIV 2)
+(PARTITION parta VALUES LESS THAN (0)
+$data_directory
+$index_directory,
+PARTITION partb VALUES LESS THAN ($max_row_div4)
+$data_directory
+$index_directory,
+PARTITION partc VALUES LESS THAN ($max_row_div2)
+$data_directory
+$index_directory,
+PARTITION partd VALUES LESS THAN ($max_row_div2 + $max_row_div4)
+$data_directory
+$index_directory,
+PARTITION parte VALUES LESS THAN ($max_row)
+$data_directory
+$index_directory,
+PARTITION partf VALUES LESS THAN $MAX_VALUE
+$data_directory
+$index_directory);
}
+}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
@@ -115,16 +190,31 @@ DROP TABLE t1;
#----------- PARTITION BY RANGE -- SUBPARTITION BY HASH
if ($with_partitioning)
{
---disable_query_log
-eval SET @aux =
-'PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int2) SUBPARTITIONS 2
+let $partitioning=
+PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int2) SUBPARTITIONS 2
(PARTITION parta VALUES LESS THAN (0),
PARTITION partb VALUES LESS THAN ($max_row_div4),
PARTITION partc VALUES LESS THAN ($max_row_div2),
-PARTITION partd VALUES LESS THAN $MAX_VALUE)';
-let $partitioning= `SELECT @aux`;
---enable_query_log
+PARTITION partd VALUES LESS THAN $MAX_VALUE);
+if ($with_directories)
+{
+let $partitioning=
+PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int2) SUBPARTITIONS 2
+(PARTITION parta VALUES LESS THAN (0)
+$data_directory
+$index_directory,
+PARTITION partb VALUES LESS THAN ($max_row_div4)
+$data_directory
+$index_directory,
+PARTITION partc VALUES LESS THAN ($max_row_div2)
+$data_directory
+$index_directory,
+PARTITION partd VALUES LESS THAN $MAX_VALUE
+$data_directory
+$index_directory);
+}
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
@@ -137,8 +227,7 @@ DROP TABLE t1;
#----------- PARTITION BY RANGE -- SUBPARTITION BY KEY
if ($with_partitioning)
{
---disable_query_log
-eval SET @aux = 'PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int2)
+let $partitioning= PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int2)
(PARTITION part1 VALUES LESS THAN (0)
(SUBPARTITION subpart11, SUBPARTITION subpart12),
PARTITION part2 VALUES LESS THAN ($max_row_div4)
@@ -146,10 +235,25 @@ PARTITION part2 VALUES LESS THAN ($max_row_div4)
PARTITION part3 VALUES LESS THAN ($max_row_div2)
(SUBPARTITION subpart31, SUBPARTITION subpart32),
PARTITION part4 VALUES LESS THAN $MAX_VALUE
-(SUBPARTITION subpart41, SUBPARTITION subpart42))';
-let $partitioning= `SELECT @aux`;
---enable_query_log
+(SUBPARTITION subpart41, SUBPARTITION subpart42));
+if ($with_directories)
+{
+let $partitioning= PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int2)
+(PARTITION part1 VALUES LESS THAN (0)
+(SUBPARTITION subpart11 $data_directory $index_directory,
+ SUBPARTITION subpart12 $data_directory $index_directory),
+PARTITION part2 VALUES LESS THAN ($max_row_div4)
+(SUBPARTITION subpart21 $data_directory $index_directory,
+ SUBPARTITION subpart22 $data_directory $index_directory),
+PARTITION part3 VALUES LESS THAN ($max_row_div2)
+(SUBPARTITION subpart31 $data_directory $index_directory,
+ SUBPARTITION subpart32 $data_directory $index_directory),
+PARTITION part4 VALUES LESS THAN $MAX_VALUE
+(SUBPARTITION subpart41 $data_directory $index_directory,
+ SUBPARTITION subpart42 $data_directory $index_directory));
}
+}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
@@ -171,7 +275,45 @@ let $partitioning= PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_
(SUBPARTITION sp31, SUBPARTITION sp32),
PARTITION part4 VALUES IN (NULL)
(SUBPARTITION sp41, SUBPARTITION sp42));
+if ($with_directories)
+{
+let $partitioning=
+PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int2 + 1)
+(PARTITION part1 VALUES IN (0)
+ $data_directory
+ $index_directory
+ (SUBPARTITION sp11
+ $data_directory
+ $index_directory,
+ SUBPARTITION sp12
+ $data_directory
+ $index_directory),
+ PARTITION part2 VALUES IN (1)
+ $data_directory
+ $index_directory
+ (SUBPARTITION sp21
+ $data_directory
+ $index_directory,
+ SUBPARTITION sp22
+ $data_directory
+ $index_directory),
+ PARTITION part3 VALUES IN (2)
+ $data_directory
+ $index_directory
+ (SUBPARTITION sp31,
+ SUBPARTITION sp32),
+ PARTITION part4 VALUES IN (NULL)
+ $data_directory
+ $index_directory
+ (SUBPARTITION sp41
+ $data_directory
+ $index_directory,
+ SUBPARTITION sp42
+ $data_directory
+ $index_directory));
+}
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
@@ -184,16 +326,29 @@ DROP TABLE t1;
#----------- PARTITION BY LIST -- SUBPARTITION BY KEY
if ($with_partitioning)
{
---disable_query_log
-eval SET @aux =
-'PARTITION BY LIST(ABS(MOD(f_int1,2)))
+let $partitioning=
+PARTITION BY LIST(ABS(MOD(f_int1,2)))
SUBPARTITION BY KEY(f_int2) SUBPARTITIONS $sub_part_no
(PARTITION part1 VALUES IN (0),
PARTITION part2 VALUES IN (1),
- PARTITION part3 VALUES IN (NULL))';
-let $partitioning= `SELECT @aux`;
---enable_query_log
+ PARTITION part3 VALUES IN (NULL));
+if ($with_directories)
+{
+let $partitioning=
+PARTITION BY LIST(ABS(MOD(f_int1,2)))
+SUBPARTITION BY KEY(f_int2) SUBPARTITIONS $sub_part_no
+(PARTITION part1 VALUES IN (0)
+ $data_directory
+ $index_directory,
+ PARTITION part2 VALUES IN (1)
+ $data_directory
+ $index_directory,
+ PARTITION part3 VALUES IN (NULL)
+ $data_directory
+ $index_directory);
+}
}
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (
$column_list
$unique
diff --git a/mysql-test/suite/parts/inc/partition_set.inc b/mysql-test/suite/parts/inc/partition_set.inc
index b9501ad04b6..8b8c3c9ddf5 100644
--- a/mysql-test/suite/parts/inc/partition_set.inc
+++ b/mysql-test/suite/parts/inc/partition_set.inc
@@ -1,23 +1,11 @@
--echo ---- Partitioning and set data type
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a set('A','B','C','D','E','F','G','H','I','J','K','L') not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values ('A,B'),('C,D'),('E,L'),('G,H,K');
select * from t1 order by a;
diff --git a/mysql-test/suite/parts/inc/partition_smallint.inc b/mysql-test/suite/parts/inc/partition_smallint.inc
index c594cd4c26c..8e5e93f079b 100644
--- a/mysql-test/suite/parts/inc/partition_smallint.inc
+++ b/mysql-test/suite/parts/inc/partition_smallint.inc
@@ -1,21 +1,9 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a smallint unsigned not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values (65535), (65534), (65533), (65532), (1), (2), (256);
select * from t1;
diff --git a/mysql-test/suite/parts/inc/partition_text.inc b/mysql-test/suite/parts/inc/partition_text.inc
index 761f5dfb118..f766027773d 100644
--- a/mysql-test/suite/parts/inc/partition_text.inc
+++ b/mysql-test/suite/parts/inc/partition_text.inc
@@ -1,24 +1,12 @@
--echo ---- Partitioning and text data type
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
--error ER_BLOB_FIELD_IN_PART_FUNC_ERROR
eval create table t1 (a text not null, primary key(a(767))) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
#show create table t1;
#insert into t1 values (repeat('a',1000)), ('b'), (repeat('a',500)), (repeat('b',64));
diff --git a/mysql-test/suite/parts/inc/partition_time.inc b/mysql-test/suite/parts/inc/partition_time.inc
index a3f49a156fe..008963ed934 100644
--- a/mysql-test/suite/parts/inc/partition_time.inc
+++ b/mysql-test/suite/parts/inc/partition_time.inc
@@ -1,21 +1,9 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a time not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values ('21:21:21'), ('12:10:30'), ('03:03:03'), ('23:59');
select * from t1;
diff --git a/mysql-test/suite/parts/inc/partition_timestamp.inc b/mysql-test/suite/parts/inc/partition_timestamp.inc
index d4b1699d6c5..d152c82a76f 100644
--- a/mysql-test/suite/parts/inc/partition_timestamp.inc
+++ b/mysql-test/suite/parts/inc/partition_timestamp.inc
@@ -1,21 +1,9 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a timestamp not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59');
select * from t1;
diff --git a/mysql-test/suite/parts/inc/partition_tinyint.inc b/mysql-test/suite/parts/inc/partition_tinyint.inc
index a1f8874e794..00568eec244 100644
--- a/mysql-test/suite/parts/inc/partition_tinyint.inc
+++ b/mysql-test/suite/parts/inc/partition_tinyint.inc
@@ -1,21 +1,9 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a tinyint unsigned not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values (255), (254), (253), (252), (1), (2), (128);
select * from t1;
diff --git a/mysql-test/suite/parts/inc/partition_varbinary.inc b/mysql-test/suite/parts/inc/partition_varbinary.inc
index 48fd6d890d8..02d9f68f1a2 100644
--- a/mysql-test/suite/parts/inc/partition_varbinary.inc
+++ b/mysql-test/suite/parts/inc/partition_varbinary.inc
@@ -1,23 +1,11 @@
--echo ---- Partitioning and varbinary data type
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a varbinary(767) not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values (repeat('a',767)), ('b'), (repeat('a',500)), (repeat('b',64));
select * from t1;
diff --git a/mysql-test/suite/parts/inc/partition_varchar.inc b/mysql-test/suite/parts/inc/partition_varchar.inc
index c018a16e919..f1412d3aae5 100644
--- a/mysql-test/suite/parts/inc/partition_varchar.inc
+++ b/mysql-test/suite/parts/inc/partition_varchar.inc
@@ -1,23 +1,11 @@
--echo ---- Partitioning and varchar data type
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a varchar(767) not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values (repeat('a',767)), ('b'), (repeat('a',500)), (repeat('b',64));
select * from t1;
diff --git a/mysql-test/suite/parts/inc/partition_year.inc b/mysql-test/suite/parts/inc/partition_year.inc
index 2643380702e..5fb46c1756b 100644
--- a/mysql-test/suite/parts/inc/partition_year.inc
+++ b/mysql-test/suite/parts/inc/partition_year.inc
@@ -1,21 +1,9 @@
---disable_query_log
-# DATA DIRECTORY
-eval SET @data_dir = 'DATA DIRECTORY =
-''/tmp''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''/tmp''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
eval create table t1 (a year not null, primary key(a)) engine=$engine
partition by key (a) (
-partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
-partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
-partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
-partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
insert into t1 values ('1975'), (2020), ('1980'), ('2000');
select * from t1;
diff --git a/mysql-test/suite/parts/r/ndb_partition_key.result b/mysql-test/suite/parts/r/ndb_partition_key.result
index daac61fb530..00565a3979d 100644
--- a/mysql-test/suite/parts/r/ndb_partition_key.result
+++ b/mysql-test/suite/parts/r/ndb_partition_key.result
@@ -88,6 +88,12 @@ PARTITION BY KEY(a)
drop table t1;
CREATE TABLE t1 (a int not null primary key);
ALTER TABLE t1
+ENGINE = NDB
+PARTITION BY KEY(a)
+(PARTITION p0 ENGINE = NDB, PARTITION p1 ENGINE = NDB);
+drop table t1;
+CREATE TABLE t1 (a int not null primary key) ENGINE = NDB;
+ALTER TABLE t1
PARTITION BY KEY(a)
(PARTITION p0 ENGINE = NDB, PARTITION p1 ENGINE = NDB);
drop table t1;
@@ -143,7 +149,6 @@ t1 CREATE TABLE `t1` (
alter table t1
partition by key(a)
(partition p0 engine=ndb, partition p1);
-ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
alter table t1
engine=ndb
partition by key(a)
diff --git a/mysql-test/suite/parts/r/partition_alter1_innodb.result b/mysql-test/suite/parts/r/partition_alter1_innodb.result
index a1d40af196c..2da6a92af31 100644
--- a/mysql-test/suite/parts/r/partition_alter1_innodb.result
+++ b/mysql-test/suite/parts/r/partition_alter1_innodb.result
@@ -833,16 +833,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -1322,16 +1322,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -1819,16 +1819,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -2312,16 +2312,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -2805,16 +2805,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -3300,16 +3300,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -3797,16 +3797,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -4290,16 +4290,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -4780,16 +4780,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -5269,16 +5269,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -5766,16 +5766,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -6259,16 +6259,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -6752,16 +6752,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -7247,16 +7247,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -7744,16 +7744,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -8237,16 +8237,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -8744,16 +8744,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -9249,16 +9249,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -9762,16 +9762,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -10271,16 +10271,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -10780,16 +10780,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -11291,16 +11291,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -11804,16 +11804,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -12313,16 +12313,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -12819,16 +12819,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -13324,16 +13324,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -13837,16 +13837,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -14346,16 +14346,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -14855,16 +14855,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -15366,16 +15366,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -15879,16 +15879,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -16388,16 +16388,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -16883,16 +16883,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -17372,16 +17372,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -17869,16 +17869,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -18362,16 +18362,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -18853,16 +18853,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -19348,16 +19348,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -19845,16 +19845,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -20338,16 +20338,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -20828,16 +20828,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -21317,16 +21317,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -21814,16 +21814,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -22307,16 +22307,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -22798,16 +22798,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -23293,16 +23293,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -23790,16 +23790,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -24283,16 +24283,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -24790,16 +24790,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -25295,16 +25295,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -25808,16 +25808,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -26317,16 +26317,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -26824,16 +26824,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -27335,16 +27335,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -27848,16 +27848,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -28357,16 +28357,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -28863,16 +28863,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -29368,16 +29368,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -29881,16 +29881,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -30390,16 +30390,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -30897,16 +30897,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -31408,16 +31408,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -31921,16 +31921,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -32430,16 +32430,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -32922,16 +32922,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -33412,16 +33412,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -33910,16 +33910,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -34404,16 +34404,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -34896,16 +34896,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -35392,16 +35392,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -35890,16 +35890,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -36384,16 +36384,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -36875,16 +36875,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -37365,16 +37365,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -37863,16 +37863,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -38357,16 +38357,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -38849,16 +38849,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -39345,16 +39345,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -39843,16 +39843,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -40337,16 +40337,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -40828,16 +40828,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -41318,16 +41318,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -41816,16 +41816,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -42310,16 +42310,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -42802,16 +42802,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -43298,16 +43298,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -43796,16 +43796,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -44290,16 +44290,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -44736,16 +44736,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -45173,16 +45173,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -45618,16 +45618,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -46059,16 +46059,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -46500,16 +46500,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -46943,16 +46943,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -47388,16 +47388,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -47829,16 +47829,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -48267,16 +48267,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -48704,16 +48704,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -49149,16 +49149,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -49590,16 +49590,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -50031,16 +50031,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -50474,16 +50474,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -50919,16 +50919,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -51360,16 +51360,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -51814,16 +51814,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -52267,16 +52267,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -52728,16 +52728,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -53185,16 +53185,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -53642,16 +53642,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -54101,16 +54101,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -54562,16 +54562,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -55019,16 +55019,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -55461,16 +55461,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -55898,16 +55898,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -56343,16 +56343,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -56784,16 +56784,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -57223,16 +57223,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -57666,16 +57666,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -58111,16 +58111,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -58552,16 +58552,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -58990,16 +58990,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -59427,16 +59427,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -59872,16 +59872,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -60313,16 +60313,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -60752,16 +60752,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -61195,16 +61195,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -61640,16 +61640,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -62081,16 +62081,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -62536,16 +62536,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -62989,16 +62989,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -63450,16 +63450,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -63907,16 +63907,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -64362,16 +64362,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -64821,16 +64821,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -65282,16 +65282,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -65739,16 +65739,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -66193,16 +66193,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -66646,16 +66646,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -67107,16 +67107,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -67564,16 +67564,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -68019,16 +68019,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -68478,16 +68478,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -68939,16 +68939,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -69396,16 +69396,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -69835,16 +69835,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -70272,16 +70272,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -70717,16 +70717,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -71158,16 +71158,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -71597,16 +71597,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -72040,16 +72040,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -72485,16 +72485,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -72926,16 +72926,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -73364,16 +73364,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -73801,16 +73801,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -74246,16 +74246,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -74687,16 +74687,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -75126,16 +75126,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -75569,16 +75569,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -76014,16 +76014,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -76455,16 +76455,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -76909,16 +76909,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -77362,16 +77362,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -77823,16 +77823,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -78280,16 +78280,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -78735,16 +78735,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -79194,16 +79194,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -79655,16 +79655,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -80112,16 +80112,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
diff --git a/mysql-test/suite/parts/r/partition_alter1_myisam.result b/mysql-test/suite/parts/r/partition_alter1_myisam.result
index 1058342aa8d..80c622a5d3c 100644
--- a/mysql-test/suite/parts/r/partition_alter1_myisam.result
+++ b/mysql-test/suite/parts/r/partition_alter1_myisam.result
@@ -700,20 +700,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -1221,20 +1221,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -1756,20 +1756,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -2283,20 +2283,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -2814,20 +2814,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -3347,20 +3347,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -3882,20 +3882,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -4415,20 +4415,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -4931,20 +4931,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -5452,20 +5452,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -5987,20 +5987,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -6514,20 +6514,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -7045,20 +7045,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -7578,20 +7578,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -8113,20 +8113,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -8646,20 +8646,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -9167,20 +9167,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -9688,20 +9688,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -10223,20 +10223,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -10750,20 +10750,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -11279,20 +11279,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -11812,20 +11812,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -12347,20 +12347,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -12880,20 +12880,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -13396,20 +13396,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -13917,20 +13917,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -14452,20 +14452,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -14979,20 +14979,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -15508,20 +15508,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -16041,20 +16041,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -16576,20 +16576,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -17109,20 +17109,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -17580,20 +17580,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -18049,20 +18049,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -18532,20 +18532,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -19007,20 +19007,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -19486,20 +19486,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -19967,20 +19967,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -20450,20 +20450,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -20931,20 +20931,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -21399,20 +21399,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -21868,20 +21868,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -22351,20 +22351,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -22826,20 +22826,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -23303,20 +23303,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -23784,20 +23784,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -24267,20 +24267,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -24748,20 +24748,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -25212,20 +25212,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -25681,20 +25681,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -26164,20 +26164,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -26639,20 +26639,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -27116,20 +27116,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -27597,20 +27597,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -28080,20 +28080,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -28561,20 +28561,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -29025,20 +29025,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -29494,20 +29494,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -29977,20 +29977,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -30452,20 +30452,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -30929,20 +30929,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -31410,20 +31410,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -31893,20 +31893,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -32374,20 +32374,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
diff --git a/mysql-test/suite/parts/r/partition_alter2_innodb.result b/mysql-test/suite/parts/r/partition_alter2_innodb.result
index 0bb44bb2a1d..15de39a3f9f 100644
--- a/mysql-test/suite/parts/r/partition_alter2_innodb.result
+++ b/mysql-test/suite/parts/r/partition_alter2_innodb.result
@@ -479,16 +479,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -932,16 +932,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -1393,16 +1393,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -1850,16 +1850,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -2307,16 +2307,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -2766,16 +2766,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -3227,16 +3227,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -3684,16 +3684,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -4175,16 +4175,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -4664,16 +4664,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -5161,16 +5161,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -5654,16 +5654,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -6147,16 +6147,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -6642,16 +6642,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -7139,16 +7139,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -7632,16 +7632,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -8122,16 +8122,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -8611,16 +8611,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -9108,16 +9108,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -9601,16 +9601,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -10094,16 +10094,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -10589,16 +10589,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -11086,16 +11086,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -11579,16 +11579,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -12086,16 +12086,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -12591,16 +12591,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -13104,16 +13104,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -13613,16 +13613,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -14122,16 +14122,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -14633,16 +14633,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -15146,16 +15146,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -15655,16 +15655,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -16161,16 +16161,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -16666,16 +16666,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -17179,16 +17179,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -17688,16 +17688,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -18197,16 +18197,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -18708,16 +18708,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -19221,16 +19221,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -19730,16 +19730,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -20189,16 +20189,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -20642,16 +20642,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -21103,16 +21103,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -21560,16 +21560,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -22017,16 +22017,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -22476,16 +22476,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -22937,16 +22937,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -23394,16 +23394,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -23848,16 +23848,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -24301,16 +24301,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -24762,16 +24762,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -25219,16 +25219,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -25674,16 +25674,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -26133,16 +26133,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -26594,16 +26594,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -27051,16 +27051,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -27542,16 +27542,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -28031,16 +28031,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -28528,16 +28528,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -29021,16 +29021,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -29514,16 +29514,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -30009,16 +30009,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -30506,16 +30506,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -30999,16 +30999,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -31489,16 +31489,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -31978,16 +31978,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -32475,16 +32475,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -32968,16 +32968,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -33459,16 +33459,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -33954,16 +33954,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -34451,16 +34451,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -34944,16 +34944,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -35434,16 +35434,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -35923,16 +35923,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -36420,16 +36420,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -36913,16 +36913,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -37406,16 +37406,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -37901,16 +37901,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -38398,16 +38398,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -38891,16 +38891,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -39381,16 +39381,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -39870,16 +39870,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -40367,16 +40367,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -40860,16 +40860,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -41351,16 +41351,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -41846,16 +41846,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -42343,16 +42343,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -42836,16 +42836,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -43343,16 +43343,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -43848,16 +43848,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -44361,16 +44361,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -44870,16 +44870,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -45379,16 +45379,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -45890,16 +45890,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -46403,16 +46403,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -46912,16 +46912,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -47418,16 +47418,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -47923,16 +47923,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -48436,16 +48436,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -48945,16 +48945,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -49452,16 +49452,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -49963,16 +49963,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -50476,16 +50476,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -50985,16 +50985,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -51491,16 +51491,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -51996,16 +51996,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -52509,16 +52509,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -53018,16 +53018,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -53527,16 +53527,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -54038,16 +54038,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -54551,16 +54551,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -55060,16 +55060,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -55566,16 +55566,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -56071,16 +56071,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -56584,16 +56584,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -57093,16 +57093,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -57600,16 +57600,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -58111,16 +58111,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -58624,16 +58624,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -59133,16 +59133,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -59598,16 +59598,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -60053,16 +60053,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -60516,16 +60516,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -60973,16 +60973,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -61432,16 +61432,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -61891,16 +61891,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -62354,16 +62354,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -62813,16 +62813,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -63305,16 +63305,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -63796,16 +63796,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -64295,16 +64295,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -64788,16 +64788,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -65283,16 +65283,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -65778,16 +65778,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -66277,16 +66277,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -66772,16 +66772,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -67264,16 +67264,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -67755,16 +67755,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -68254,16 +68254,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -68747,16 +68747,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -69242,16 +69242,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -69737,16 +69737,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -70236,16 +70236,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -70731,16 +70731,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -71240,16 +71240,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -71747,16 +71747,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -72262,16 +72262,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -72771,16 +72771,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -73282,16 +73282,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -73793,16 +73793,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -74308,16 +74308,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -74819,16 +74819,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -75327,16 +75327,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -75834,16 +75834,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -76349,16 +76349,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -76858,16 +76858,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -77369,16 +77369,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -77880,16 +77880,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -78395,16 +78395,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -78906,16 +78906,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -79367,16 +79367,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -79823,16 +79823,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -80287,16 +80287,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -80749,16 +80749,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -81209,16 +81209,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -81673,16 +81673,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -82137,16 +82137,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -82597,16 +82597,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -83054,16 +83054,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -83510,16 +83510,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -83974,16 +83974,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -84436,16 +84436,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -84896,16 +84896,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -85360,16 +85360,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -85824,16 +85824,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -86284,16 +86284,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -86778,16 +86778,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -87270,16 +87270,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -87770,16 +87770,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -88268,16 +88268,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -88764,16 +88764,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -89264,16 +89264,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -89764,16 +89764,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -90260,16 +90260,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -90753,16 +90753,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -91245,16 +91245,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -91745,16 +91745,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -92243,16 +92243,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -92739,16 +92739,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -93239,16 +93239,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -93739,16 +93739,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -94235,16 +94235,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -94728,16 +94728,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -95220,16 +95220,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -95720,16 +95720,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -96218,16 +96218,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -96714,16 +96714,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -97214,16 +97214,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -97714,16 +97714,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -98210,16 +98210,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -98703,16 +98703,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -99195,16 +99195,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -99695,16 +99695,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -100193,16 +100193,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -100689,16 +100689,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -101189,16 +101189,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -101689,16 +101689,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -102185,16 +102185,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -102695,16 +102695,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -103203,16 +103203,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -103719,16 +103719,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -104233,16 +104233,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -104745,16 +104745,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -105261,16 +105261,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -105777,16 +105777,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -106289,16 +106289,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -106798,16 +106798,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -107306,16 +107306,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -107822,16 +107822,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -108336,16 +108336,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -108848,16 +108848,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -109364,16 +109364,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -109880,16 +109880,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -110392,16 +110392,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -110901,16 +110901,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -111409,16 +111409,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -111925,16 +111925,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -112439,16 +112439,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -112951,16 +112951,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -113467,16 +113467,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -113983,16 +113983,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -114495,16 +114495,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -115004,16 +115004,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -115512,16 +115512,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -116028,16 +116028,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -116542,16 +116542,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -117054,16 +117054,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -117570,16 +117570,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -118086,16 +118086,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -118598,16 +118598,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
diff --git a/mysql-test/suite/parts/r/partition_alter2_myisam.result b/mysql-test/suite/parts/r/partition_alter2_myisam.result
index 18abf7380c3..99cb22b97c3 100644
--- a/mysql-test/suite/parts/r/partition_alter2_myisam.result
+++ b/mysql-test/suite/parts/r/partition_alter2_myisam.result
@@ -489,20 +489,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -958,20 +958,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -1441,20 +1441,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -1916,20 +1916,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -2395,20 +2395,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -2876,20 +2876,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -3359,20 +3359,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -3840,20 +3840,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -4357,20 +4357,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -4878,20 +4878,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -5413,20 +5413,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -5940,20 +5940,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -6471,20 +6471,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -7004,20 +7004,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -7539,20 +7539,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -8072,20 +8072,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -8588,20 +8588,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -9109,20 +9109,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -9644,20 +9644,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -10171,20 +10171,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -10702,20 +10702,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -11235,20 +11235,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -11770,20 +11770,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -12303,20 +12303,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -12772,20 +12772,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -13241,20 +13241,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -13724,20 +13724,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -14199,20 +14199,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -14678,20 +14678,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -15159,20 +15159,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -15642,20 +15642,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -16123,20 +16123,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -16587,20 +16587,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -17056,20 +17056,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -17539,20 +17539,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -18014,20 +18014,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -18491,20 +18491,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -18972,20 +18972,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -19455,20 +19455,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -19936,20 +19936,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -20453,20 +20453,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -20974,20 +20974,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -21509,20 +21509,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -22036,20 +22036,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -22567,20 +22567,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -23100,20 +23100,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -23635,20 +23635,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -24168,20 +24168,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -24684,20 +24684,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -25205,20 +25205,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -25740,20 +25740,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -26267,20 +26267,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -26796,20 +26796,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -27329,20 +27329,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -27864,20 +27864,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -28397,20 +28397,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -28913,20 +28913,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -29434,20 +29434,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -29969,20 +29969,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -30496,20 +30496,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -31027,20 +31027,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -31560,20 +31560,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -32095,20 +32095,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -32628,20 +32628,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -33144,20 +33144,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -33665,20 +33665,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -34200,20 +34200,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -34727,20 +34727,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -35256,20 +35256,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -35789,20 +35789,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -36324,20 +36324,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -36857,20 +36857,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -37332,20 +37332,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -37803,20 +37803,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -38288,20 +38288,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -38763,20 +38763,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -39244,20 +39244,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -39725,20 +39725,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -40210,20 +40210,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -40693,20 +40693,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -41212,20 +41212,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -41735,20 +41735,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -42272,20 +42272,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -42799,20 +42799,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -43332,20 +43332,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -43865,20 +43865,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -44402,20 +44402,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -44937,20 +44937,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -45455,20 +45455,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -45978,20 +45978,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -46515,20 +46515,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -47042,20 +47042,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -47575,20 +47575,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -48108,20 +48108,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -48645,20 +48645,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -49180,20 +49180,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -49651,20 +49651,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -50123,20 +50123,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -50609,20 +50609,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -51089,20 +51089,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -51571,20 +51571,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -52057,20 +52057,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -52543,20 +52543,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -53027,20 +53027,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -53494,20 +53494,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -53966,20 +53966,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -54452,20 +54452,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -54932,20 +54932,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -55414,20 +55414,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -55900,20 +55900,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -56386,20 +56386,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -56870,20 +56870,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -57390,20 +57390,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -57914,20 +57914,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -58452,20 +58452,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -58984,20 +58984,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -59518,20 +59518,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -60056,20 +60056,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -60594,20 +60594,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -61130,20 +61130,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -61649,20 +61649,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -62173,20 +62173,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -62711,20 +62711,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -63243,20 +63243,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -63777,20 +63777,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -64315,20 +64315,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -64853,20 +64853,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -65389,20 +65389,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -65908,20 +65908,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -66432,20 +66432,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -66970,20 +66970,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -67502,20 +67502,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -68036,20 +68036,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -68574,20 +68574,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -69112,20 +69112,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -69648,20 +69648,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -70167,20 +70167,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -70691,20 +70691,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -71229,20 +71229,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -71761,20 +71761,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -72295,20 +72295,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -72833,20 +72833,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -73371,20 +73371,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -73907,20 +73907,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
diff --git a/mysql-test/suite/parts/r/partition_basic_innodb.result b/mysql-test/suite/parts/r/partition_basic_innodb.result
index d2ba7a6a073..7f5e7df6061 100644
--- a/mysql-test/suite/parts/r/partition_basic_innodb.result
+++ b/mysql-test/suite/parts/r/partition_basic_innodb.result
@@ -51,6 +51,15 @@ SET @@session.sql_mode= '';
#------------------------------------------------------------------------
# 1.1 The partitioning function contains one column.
DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY HASH(f_int1) PARTITIONS 2;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -65,450 +74,9 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) PARTITIONS 2 */
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
unified filelist
---- not determined ---
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -914,16 +482,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -935,457 +503,15 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) ENGINE = InnoDB, PARTITION part0 VALUES IN (0) ENGINE = InnoDB, PARTITION part1 VALUES IN (1) ENGINE = InnoDB, PARTITION part2 VALUES IN (2) ENGINE = InnoDB, PARTITION part3 VALUES IN (3) ENGINE = InnoDB) */
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+)
+PARTITION BY KEY(f_int1) PARTITIONS 5;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -1398,450 +524,11 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-ERROR HY000: Table has no partition for value 2147483647
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
unified filelist
---- not determined ---
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -2247,459 +934,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 ENGINE = InnoDB, SUBPARTITION subpart22 ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 ENGINE = InnoDB, SUBPARTITION subpart32 ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = InnoDB, SUBPARTITION subpart42 ENGINE = InnoDB)) */
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-ERROR HY000: Table has no partition for value 2147483647
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -2711,457 +955,23 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = InnoDB, SUBPARTITION sp12 ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 ENGINE = InnoDB, SUBPARTITION sp22 ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 ENGINE = InnoDB, SUBPARTITION sp32 ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = InnoDB, SUBPARTITION sp42 ENGINE = InnoDB)) */
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+)
+PARTITION BY LIST(MOD(f_int1,4))
+(PARTITION part_3 VALUES IN (-3),
+PARTITION part_2 VALUES IN (-2),
+PARTITION part_1 VALUES IN (-1),
+PARTITION part_N VALUES IN (NULL),
+PARTITION part0 VALUES IN (0),
+PARTITION part1 VALUES IN (1),
+PARTITION part2 VALUES IN (2),
+PARTITION part3 VALUES IN (3));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -3174,453 +984,11 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) ENGINE = InnoDB, PARTITION part0 VALUES IN (0) ENGINE = InnoDB, PARTITION part1 VALUES IN (1) ENGINE = InnoDB, PARTITION part2 VALUES IN (2) ENGINE = InnoDB, PARTITION part3 VALUES IN (3) ENGINE = InnoDB) */
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
unified filelist
---- not determined ---
-# 1.1.1 with DATA DIECTORY/INDEX DIRECTORY
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -4026,16 +1394,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -4047,457 +1415,21 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+)
+PARTITION BY RANGE(f_int1)
+(PARTITION parta VALUES LESS THAN (0),
+PARTITION partb VALUES LESS THAN (5),
+PARTITION partc VALUES LESS THAN (10),
+PARTITION partd VALUES LESS THAN (10 + 5),
+PARTITION parte VALUES LESS THAN (20),
+PARTITION partf VALUES LESS THAN (2147483646));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -4510,452 +1442,11 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
unified filelist
---- not determined ---
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -5359,16 +1850,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -5380,457 +1871,19 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+)
+PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
+(PARTITION parta VALUES LESS THAN (0),
+PARTITION partb VALUES LESS THAN (5),
+PARTITION partc VALUES LESS THAN (10),
+PARTITION partd VALUES LESS THAN (2147483646));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -5843,450 +1896,11 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-ERROR HY000: Table has no partition for value 2147483647
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
unified filelist
---- not determined ---
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB)) */
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -6692,16 +2306,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -6713,458 +2327,23 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
-DROP TABLE IF EXISTS t1;
+)
+PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
+(PARTITION part1 VALUES LESS THAN (0)
+(SUBPARTITION subpart11, SUBPARTITION subpart12),
+PARTITION part2 VALUES LESS THAN (5)
+(SUBPARTITION subpart21, SUBPARTITION subpart22),
+PARTITION part3 VALUES LESS THAN (10)
+(SUBPARTITION subpart31, SUBPARTITION subpart32),
+PARTITION part4 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart41, SUBPARTITION subpart42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -7177,452 +2356,11 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) PARTITIONS 2 */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 ENGINE = InnoDB, SUBPARTITION subpart22 ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 ENGINE = InnoDB, SUBPARTITION subpart32 ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = InnoDB, SUBPARTITION subpart42 ENGINE = InnoDB)) */
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
unified filelist
---- not determined ---
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -7690,9 +2428,7 @@ DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
# check single-6 success: 1
INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+ERROR HY000: Table has no partition for value 2147483647
DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
INSERT t1 SET f_int1 = 0 , f_int2 = 0,
f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
@@ -8028,16 +2764,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -8049,457 +2785,27 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part0 VALUES IN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part1 VALUES IN (1) ENGINE = InnoDB, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+)
+PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
+(PARTITION part1 VALUES IN (0)
+(SUBPARTITION sp11,
+SUBPARTITION sp12),
+PARTITION part2 VALUES IN (1)
+(SUBPARTITION sp21,
+SUBPARTITION sp22),
+PARTITION part3 VALUES IN (2)
+(SUBPARTITION sp31,
+SUBPARTITION sp32),
+PARTITION part4 VALUES IN (NULL)
+(SUBPARTITION sp41,
+SUBPARTITION sp42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -8512,450 +2818,11 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = InnoDB, SUBPARTITION sp12 ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 ENGINE = InnoDB, SUBPARTITION sp22 ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 ENGINE = InnoDB, SUBPARTITION sp32 ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = InnoDB, SUBPARTITION sp42 ENGINE = InnoDB)) */
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-ERROR HY000: Table has no partition for value 2147483647
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
unified filelist
---- not determined ---
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -9361,16 +3228,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -9382,12 +3249,19 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY LIST(ABS(MOD(f_int1,2)))
+SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
+(PARTITION part1 VALUES IN (0),
+PARTITION part2 VALUES IN (1),
+PARTITION part3 VALUES IN (NULL));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -9400,450 +3274,11 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart22 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = InnoDB, SUBPARTITION subpart42 ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) ENGINE = InnoDB) */
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-ERROR HY000: Table has no partition for value 2147483647
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
unified filelist
---- not determined ---
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp12 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB)) */
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -10249,16 +3684,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -10270,12 +3705,6 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
# 1.2 The partitioning function contains two columns.
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (
@@ -10301,6 +3730,10 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1 + f_int2) PARTITIONS 2 */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -10705,16 +4138,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -10749,6 +4182,10 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -11153,16 +4590,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -11205,6 +4642,10 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) ENGINE = InnoDB, PARTITION part0 VALUES IN (0) ENGINE = InnoDB, PARTITION part1 VALUES IN (1) ENGINE = InnoDB, PARTITION part2 VALUES IN (2) ENGINE = InnoDB, PARTITION part3 VALUES IN (3) ENGINE = InnoDB) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -11609,16 +5050,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -11659,6 +5100,10 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -12061,16 +5506,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -12109,6 +5554,10 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -12511,16 +5960,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -12563,6 +6012,10 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 ENGINE = InnoDB, SUBPARTITION subpart22 ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 ENGINE = InnoDB, SUBPARTITION subpart32 ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = InnoDB, SUBPARTITION subpart42 ENGINE = InnoDB)) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -12965,16 +6418,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -13017,6 +6470,10 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = InnoDB, SUBPARTITION sp12 ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 ENGINE = InnoDB, SUBPARTITION sp22 ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 ENGINE = InnoDB, SUBPARTITION sp32 ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = InnoDB, SUBPARTITION sp42 ENGINE = InnoDB)) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -13421,16 +6878,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -13453,8 +6910,8 @@ f_charbig VARCHAR(1000)
PARTITION BY LIST(ABS(MOD(f_int1,2)))
SUBPARTITION BY KEY(f_int2) SUBPARTITIONS 3
(PARTITION part1 VALUES IN (0),
- PARTITION part2 VALUES IN (1),
- PARTITION part3 VALUES IN (NULL));
+PARTITION part2 VALUES IN (1),
+PARTITION part3 VALUES IN (NULL));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -13469,6 +6926,10 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) ENGINE = InnoDB) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -13873,16 +7334,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -13900,6 +7361,15 @@ DROP TABLE t1;
#------------------------------------------------------------------------
# 2.5 PRIMARY KEY + UNIQUE INDEX consisting of two columns
DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1)
+)
+PARTITION BY HASH(f_int1) PARTITIONS 2;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -13916,6 +7386,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) PARTITIONS 2 */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -14355,16 +7829,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -14376,12 +7850,15 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1)
+)
+PARTITION BY KEY(f_int1) PARTITIONS 5;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -14398,6 +7875,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -14837,16 +8318,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -14858,12 +8339,23 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1)
+)
+PARTITION BY LIST(MOD(f_int1,4))
+(PARTITION part_3 VALUES IN (-3),
+PARTITION part_2 VALUES IN (-2),
+PARTITION part_1 VALUES IN (-1),
+PARTITION part_N VALUES IN (NULL),
+PARTITION part0 VALUES IN (0),
+PARTITION part1 VALUES IN (1),
+PARTITION part2 VALUES IN (2),
+PARTITION part3 VALUES IN (3));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -14878,7 +8370,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int2`,`f_int1`),
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) ENGINE = InnoDB, PARTITION part0 VALUES IN (0) ENGINE = InnoDB, PARTITION part1 VALUES IN (1) ENGINE = InnoDB, PARTITION part2 VALUES IN (2) ENGINE = InnoDB, PARTITION part3 VALUES IN (3) ENGINE = InnoDB) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -15319,16 +8815,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -15340,12 +8836,21 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1)
+(PARTITION parta VALUES LESS THAN (0),
+PARTITION partb VALUES LESS THAN (5),
+PARTITION partc VALUES LESS THAN (10),
+PARTITION partd VALUES LESS THAN (10 + 5),
+PARTITION parte VALUES LESS THAN (20),
+PARTITION partf VALUES LESS THAN (2147483646));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -15360,7 +8865,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int2`,`f_int1`),
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -15799,16 +9308,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -15820,12 +9329,19 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
+(PARTITION parta VALUES LESS THAN (0),
+PARTITION partb VALUES LESS THAN (5),
+PARTITION partc VALUES LESS THAN (10),
+PARTITION partd VALUES LESS THAN (2147483646));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -15840,7 +9356,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int2`,`f_int1`),
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -16281,16 +9801,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -16302,12 +9822,23 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
+(PARTITION part1 VALUES LESS THAN (0)
+(SUBPARTITION subpart11, SUBPARTITION subpart12),
+PARTITION part2 VALUES LESS THAN (5)
+(SUBPARTITION subpart21, SUBPARTITION subpart22),
+PARTITION part3 VALUES LESS THAN (10)
+(SUBPARTITION subpart31, SUBPARTITION subpart32),
+PARTITION part4 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart41, SUBPARTITION subpart42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -16322,7 +9853,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int2`,`f_int1`),
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 ENGINE = InnoDB, SUBPARTITION subpart22 ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 ENGINE = InnoDB, SUBPARTITION subpart32 ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = InnoDB, SUBPARTITION subpart42 ENGINE = InnoDB)) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -16761,16 +10296,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -16782,12 +10317,27 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1)
+)
+PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
+(PARTITION part1 VALUES IN (0)
+(SUBPARTITION sp11,
+SUBPARTITION sp12),
+PARTITION part2 VALUES IN (1)
+(SUBPARTITION sp21,
+SUBPARTITION sp22),
+PARTITION part3 VALUES IN (2)
+(SUBPARTITION sp31,
+SUBPARTITION sp32),
+PARTITION part4 VALUES IN (NULL)
+(SUBPARTITION sp41,
+SUBPARTITION sp42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -16802,7 +10352,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int2`,`f_int1`),
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = InnoDB, SUBPARTITION sp12 ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 ENGINE = InnoDB, SUBPARTITION sp22 ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 ENGINE = InnoDB, SUBPARTITION sp32 ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = InnoDB, SUBPARTITION sp42 ENGINE = InnoDB)) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -17243,16 +10797,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -17264,12 +10818,19 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1)
+)
+PARTITION BY LIST(ABS(MOD(f_int1,2)))
+SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
+(PARTITION part1 VALUES IN (0),
+PARTITION part2 VALUES IN (1),
+PARTITION part3 VALUES IN (NULL));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -17284,7 +10845,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int2`,`f_int1`),
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) ENGINE = InnoDB) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -17725,16 +11290,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -17746,13 +11311,16 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2)
+)
+PARTITION BY HASH(f_int1) PARTITIONS 2;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -17769,6 +11337,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) PARTITIONS 2 */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -18208,16 +11780,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -18229,12 +11801,15 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2)
+)
+PARTITION BY KEY(f_int1) PARTITIONS 5;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -18251,6 +11826,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -18690,16 +12269,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -18711,12 +12290,23 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2)
+)
+PARTITION BY LIST(MOD(f_int1,4))
+(PARTITION part_3 VALUES IN (-3),
+PARTITION part_2 VALUES IN (-2),
+PARTITION part_1 VALUES IN (-1),
+PARTITION part_N VALUES IN (NULL),
+PARTITION part0 VALUES IN (0),
+PARTITION part1 VALUES IN (1),
+PARTITION part2 VALUES IN (2),
+PARTITION part3 VALUES IN (3));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -18731,7 +12321,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int1`,`f_int2`),
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) ENGINE = InnoDB, PARTITION part0 VALUES IN (0) ENGINE = InnoDB, PARTITION part1 VALUES IN (1) ENGINE = InnoDB, PARTITION part2 VALUES IN (2) ENGINE = InnoDB, PARTITION part3 VALUES IN (3) ENGINE = InnoDB) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -19172,16 +12766,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -19193,12 +12787,21 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2)
+)
+PARTITION BY RANGE(f_int1)
+(PARTITION parta VALUES LESS THAN (0),
+PARTITION partb VALUES LESS THAN (5),
+PARTITION partc VALUES LESS THAN (10),
+PARTITION partd VALUES LESS THAN (10 + 5),
+PARTITION parte VALUES LESS THAN (20),
+PARTITION partf VALUES LESS THAN (2147483646));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -19213,7 +12816,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int1`,`f_int2`),
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -19652,16 +13259,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -19673,12 +13280,19 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2)
+)
+PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
+(PARTITION parta VALUES LESS THAN (0),
+PARTITION partb VALUES LESS THAN (5),
+PARTITION partc VALUES LESS THAN (10),
+PARTITION partd VALUES LESS THAN (2147483646));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -19693,7 +13307,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int1`,`f_int2`),
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -20134,16 +13752,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -20155,12 +13773,23 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2)
+)
+PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
+(PARTITION part1 VALUES LESS THAN (0)
+(SUBPARTITION subpart11, SUBPARTITION subpart12),
+PARTITION part2 VALUES LESS THAN (5)
+(SUBPARTITION subpart21, SUBPARTITION subpart22),
+PARTITION part3 VALUES LESS THAN (10)
+(SUBPARTITION subpart31, SUBPARTITION subpart32),
+PARTITION part4 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart41, SUBPARTITION subpart42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -20175,7 +13804,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int1`,`f_int2`),
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 ENGINE = InnoDB, SUBPARTITION subpart22 ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 ENGINE = InnoDB, SUBPARTITION subpart32 ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = InnoDB, SUBPARTITION subpart42 ENGINE = InnoDB)) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -20614,16 +14247,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -20635,12 +14268,27 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2)
+)
+PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
+(PARTITION part1 VALUES IN (0)
+(SUBPARTITION sp11,
+SUBPARTITION sp12),
+PARTITION part2 VALUES IN (1)
+(SUBPARTITION sp21,
+SUBPARTITION sp22),
+PARTITION part3 VALUES IN (2)
+(SUBPARTITION sp31,
+SUBPARTITION sp32),
+PARTITION part4 VALUES IN (NULL)
+(SUBPARTITION sp41,
+SUBPARTITION sp42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -20655,7 +14303,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int1`,`f_int2`),
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = InnoDB, SUBPARTITION sp12 ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 ENGINE = InnoDB, SUBPARTITION sp22 ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 ENGINE = InnoDB, SUBPARTITION sp32 ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = InnoDB, SUBPARTITION sp42 ENGINE = InnoDB)) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -21096,16 +14748,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -21117,12 +14769,19 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2)
+)
+PARTITION BY LIST(ABS(MOD(f_int1,2)))
+SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
+(PARTITION part1 VALUES IN (0),
+PARTITION part2 VALUES IN (1),
+PARTITION part3 VALUES IN (NULL));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -21137,7 +14796,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int1`,`f_int2`),
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) ENGINE = InnoDB) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -21578,16 +15241,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -21599,13 +15262,16 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY HASH(f_int1) PARTITIONS 2;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -21622,6 +15288,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) PARTITIONS 2 */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -22077,16 +15747,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -22098,12 +15768,15 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY KEY(f_int1) PARTITIONS 5;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -22120,6 +15793,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -22575,16 +16252,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -22596,12 +16273,23 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY LIST(MOD(f_int1,4))
+(PARTITION part_3 VALUES IN (-3),
+PARTITION part_2 VALUES IN (-2),
+PARTITION part_1 VALUES IN (-1),
+PARTITION part_N VALUES IN (NULL),
+PARTITION part0 VALUES IN (0),
+PARTITION part1 VALUES IN (1),
+PARTITION part2 VALUES IN (2),
+PARTITION part3 VALUES IN (3));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -22616,7 +16304,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) ENGINE = InnoDB, PARTITION part0 VALUES IN (0) ENGINE = InnoDB, PARTITION part1 VALUES IN (1) ENGINE = InnoDB, PARTITION part2 VALUES IN (2) ENGINE = InnoDB, PARTITION part3 VALUES IN (3) ENGINE = InnoDB) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -23073,16 +16765,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -23094,12 +16786,21 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1)
+(PARTITION parta VALUES LESS THAN (0),
+PARTITION partb VALUES LESS THAN (5),
+PARTITION partc VALUES LESS THAN (10),
+PARTITION partd VALUES LESS THAN (10 + 5),
+PARTITION parte VALUES LESS THAN (20),
+PARTITION partf VALUES LESS THAN (2147483646));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -23114,7 +16815,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -23569,16 +17274,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -23590,12 +17295,19 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
+(PARTITION parta VALUES LESS THAN (0),
+PARTITION partb VALUES LESS THAN (5),
+PARTITION partc VALUES LESS THAN (10),
+PARTITION partd VALUES LESS THAN (2147483646));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -23610,7 +17322,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -24067,16 +17783,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -24088,12 +17804,23 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
+(PARTITION part1 VALUES LESS THAN (0)
+(SUBPARTITION subpart11, SUBPARTITION subpart12),
+PARTITION part2 VALUES LESS THAN (5)
+(SUBPARTITION subpart21, SUBPARTITION subpart22),
+PARTITION part3 VALUES LESS THAN (10)
+(SUBPARTITION subpart31, SUBPARTITION subpart32),
+PARTITION part4 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart41, SUBPARTITION subpart42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -24108,7 +17835,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 ENGINE = InnoDB, SUBPARTITION subpart22 ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 ENGINE = InnoDB, SUBPARTITION subpart32 ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = InnoDB, SUBPARTITION subpart42 ENGINE = InnoDB)) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -24563,16 +18294,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -24584,12 +18315,27 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
+(PARTITION part1 VALUES IN (0)
+(SUBPARTITION sp11,
+SUBPARTITION sp12),
+PARTITION part2 VALUES IN (1)
+(SUBPARTITION sp21,
+SUBPARTITION sp22),
+PARTITION part3 VALUES IN (2)
+(SUBPARTITION sp31,
+SUBPARTITION sp32),
+PARTITION part4 VALUES IN (NULL)
+(SUBPARTITION sp41,
+SUBPARTITION sp42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -24604,7 +18350,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = InnoDB, SUBPARTITION sp12 ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 ENGINE = InnoDB, SUBPARTITION sp22 ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 ENGINE = InnoDB, SUBPARTITION sp32 ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = InnoDB, SUBPARTITION sp42 ENGINE = InnoDB)) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -25061,16 +18811,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -25082,12 +18832,19 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY LIST(ABS(MOD(f_int1,2)))
+SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
+(PARTITION part1 VALUES IN (0),
+PARTITION part2 VALUES IN (1),
+PARTITION part3 VALUES IN (NULL));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -25102,7 +18859,11 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) ENGINE = InnoDB) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -25559,16 +19320,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -25580,12 +19341,6 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
#------------------------------------------------------------------------
# 3 Tables with PRIMARY KEY and/or UNIQUE INDEXes
# The partitioning function contains two columns.
@@ -25617,6 +19372,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1 + f_int2) PARTITIONS 2 */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -26056,16 +19815,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -26102,6 +19861,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -26541,16 +20304,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -26595,6 +20358,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) ENGINE = InnoDB, PARTITION part0 VALUES IN (0) ENGINE = InnoDB, PARTITION part1 VALUES IN (1) ENGINE = InnoDB, PARTITION part2 VALUES IN (2) ENGINE = InnoDB, PARTITION part3 VALUES IN (3) ENGINE = InnoDB) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -27034,16 +20801,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -27086,6 +20853,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -27523,16 +21294,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -27573,6 +21344,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -28010,16 +21785,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -28064,6 +21839,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 ENGINE = InnoDB, SUBPARTITION subpart22 ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 ENGINE = InnoDB, SUBPARTITION subpart32 ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = InnoDB, SUBPARTITION subpart42 ENGINE = InnoDB)) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -28501,16 +22280,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -28555,6 +22334,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = InnoDB, SUBPARTITION sp12 ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 ENGINE = InnoDB, SUBPARTITION sp22 ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 ENGINE = InnoDB, SUBPARTITION sp32 ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = InnoDB, SUBPARTITION sp42 ENGINE = InnoDB)) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -28994,16 +22777,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -29026,8 +22809,8 @@ f_charbig VARCHAR(1000)
PARTITION BY LIST(ABS(MOD(f_int1,2)))
SUBPARTITION BY KEY(f_int2) SUBPARTITIONS 3
(PARTITION part1 VALUES IN (0),
- PARTITION part2 VALUES IN (1),
- PARTITION part3 VALUES IN (NULL));
+PARTITION part2 VALUES IN (1),
+PARTITION part3 VALUES IN (NULL));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -29044,6 +22827,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) ENGINE = InnoDB) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -29483,16 +23270,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -29530,6 +23317,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1 + f_int2) PARTITIONS 2 */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -29969,16 +23760,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -30015,6 +23806,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -30454,16 +24249,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -30508,6 +24303,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) ENGINE = InnoDB, PARTITION part0 VALUES IN (0) ENGINE = InnoDB, PARTITION part1 VALUES IN (1) ENGINE = InnoDB, PARTITION part2 VALUES IN (2) ENGINE = InnoDB, PARTITION part3 VALUES IN (3) ENGINE = InnoDB) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -30947,16 +24746,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -30999,6 +24798,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -31436,16 +25239,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -31486,6 +25289,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -31923,16 +25730,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -31977,6 +25784,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 ENGINE = InnoDB, SUBPARTITION subpart22 ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 ENGINE = InnoDB, SUBPARTITION subpart32 ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = InnoDB, SUBPARTITION subpart42 ENGINE = InnoDB)) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -32414,16 +26225,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -32468,6 +26279,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = InnoDB, SUBPARTITION sp12 ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 ENGINE = InnoDB, SUBPARTITION sp22 ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 ENGINE = InnoDB, SUBPARTITION sp32 ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = InnoDB, SUBPARTITION sp42 ENGINE = InnoDB)) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -32907,16 +26722,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -32939,8 +26754,8 @@ f_charbig VARCHAR(1000)
PARTITION BY LIST(ABS(MOD(f_int1,2)))
SUBPARTITION BY KEY(f_int2) SUBPARTITIONS 3
(PARTITION part1 VALUES IN (0),
- PARTITION part2 VALUES IN (1),
- PARTITION part3 VALUES IN (NULL));
+PARTITION part2 VALUES IN (1),
+PARTITION part3 VALUES IN (NULL));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -32957,6 +26772,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) ENGINE = InnoDB) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -33396,16 +27215,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -33443,6 +27262,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1 + f_int2) PARTITIONS 2 */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -33898,16 +27721,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -33944,6 +27767,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -34399,16 +28226,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -34453,6 +28280,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) ENGINE = InnoDB, PARTITION part0 VALUES IN (0) ENGINE = InnoDB, PARTITION part1 VALUES IN (1) ENGINE = InnoDB, PARTITION part2 VALUES IN (2) ENGINE = InnoDB, PARTITION part3 VALUES IN (3) ENGINE = InnoDB) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -34908,16 +28739,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -34960,6 +28791,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -35413,16 +29248,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -35463,6 +29298,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -35916,16 +29755,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -35970,6 +29809,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 ENGINE = InnoDB, SUBPARTITION subpart22 ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 ENGINE = InnoDB, SUBPARTITION subpart32 ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = InnoDB, SUBPARTITION subpart42 ENGINE = InnoDB)) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -36423,16 +30266,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -36477,6 +30320,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = InnoDB, SUBPARTITION sp12 ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 ENGINE = InnoDB, SUBPARTITION sp22 ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 ENGINE = InnoDB, SUBPARTITION sp32 ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = InnoDB, SUBPARTITION sp42 ENGINE = InnoDB)) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -36932,16 +30779,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -36964,8 +30811,8 @@ f_charbig VARCHAR(1000)
PARTITION BY LIST(ABS(MOD(f_int1,2)))
SUBPARTITION BY KEY(f_int2) SUBPARTITIONS 3
(PARTITION part1 VALUES IN (0),
- PARTITION part2 VALUES IN (1),
- PARTITION part3 VALUES IN (NULL));
+PARTITION part2 VALUES IN (1),
+PARTITION part3 VALUES IN (NULL));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -36982,6 +30829,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) ENGINE = InnoDB) */
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
# check MIN/MAX(f_int1) success: 1
@@ -37437,16 +31288,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
diff --git a/mysql-test/suite/parts/r/partition_basic_myisam.result b/mysql-test/suite/parts/r/partition_basic_myisam.result
index bcb58b6945b..4d1f160eace 100644
--- a/mysql-test/suite/parts/r/partition_basic_myisam.result
+++ b/mysql-test/suite/parts/r/partition_basic_myisam.result
@@ -51,6 +51,15 @@ SET @@session.sql_mode= '';
#------------------------------------------------------------------------
# 1.1 The partitioning function contains one column.
DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY HASH(f_int1) PARTITIONS 2;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -479,20 +488,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -500,6 +509,15 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY KEY(f_int1) PARTITIONS 5;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -934,20 +952,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -955,6 +973,23 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY LIST(MOD(f_int1,4))
+(PARTITION part_3 VALUES IN (-3),
+PARTITION part_2 VALUES IN (-2),
+PARTITION part_1 VALUES IN (-1),
+PARTITION part_N VALUES IN (NULL),
+PARTITION part0 VALUES IN (0),
+PARTITION part1 VALUES IN (1),
+PARTITION part2 VALUES IN (2),
+PARTITION part3 VALUES IN (3));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -1395,20 +1430,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -1416,6 +1451,21 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY RANGE(f_int1)
+(PARTITION parta VALUES LESS THAN (0),
+PARTITION partb VALUES LESS THAN (5),
+PARTITION partc VALUES LESS THAN (10),
+PARTITION partd VALUES LESS THAN (10 + 5),
+PARTITION parte VALUES LESS THAN (20),
+PARTITION partf VALUES LESS THAN (2147483646));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -1850,20 +1900,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -1871,6 +1921,19 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
+(PARTITION parta VALUES LESS THAN (0),
+PARTITION partb VALUES LESS THAN (5),
+PARTITION partc VALUES LESS THAN (10),
+PARTITION partd VALUES LESS THAN (2147483646));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -2311,20 +2374,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -2332,6 +2395,23 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
+(PARTITION part1 VALUES LESS THAN (0)
+(SUBPARTITION subpart11, SUBPARTITION subpart12),
+PARTITION part2 VALUES LESS THAN (5)
+(SUBPARTITION subpart21, SUBPARTITION subpart22),
+PARTITION part3 VALUES LESS THAN (10)
+(SUBPARTITION subpart31, SUBPARTITION subpart32),
+PARTITION part4 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart41, SUBPARTITION subpart42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -2770,20 +2850,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -2791,6 +2871,27 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
+(PARTITION part1 VALUES IN (0)
+(SUBPARTITION sp11,
+SUBPARTITION sp12),
+PARTITION part2 VALUES IN (1)
+(SUBPARTITION sp21,
+SUBPARTITION sp22),
+PARTITION part3 VALUES IN (2)
+(SUBPARTITION sp31,
+SUBPARTITION sp32),
+PARTITION part4 VALUES IN (NULL)
+(SUBPARTITION sp41,
+SUBPARTITION sp42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -3231,20 +3332,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -3252,3887 +3353,19 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) ENGINE = MyISAM) */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-# 1.1.1 with DATA DIECTORY/INDEX DIRECTORY
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-$MYSQLTEST_VARDIR/tmp/t1#P#p1.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#p1.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#p2.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#p2.MYI
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#p1.MYD MYSQLTEST_VARDIR/tmp/t1#P#p1.MYI MYSQLTEST_VARDIR/tmp/t1#P#p2.MYD MYSQLTEST_VARDIR/tmp/t1#P#p2.MYI
-# check layout success: 0
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#p1.MYD MYSQLTEST_VARDIR/tmp/t1#P#p1.MYI MYSQLTEST_VARDIR/tmp/t1#P#p2.MYD MYSQLTEST_VARDIR/tmp/t1#P#p2.MYI
-# check layout success: 0
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#p1.MYD MYSQLTEST_VARDIR/tmp/t1#P#p1.MYI MYSQLTEST_VARDIR/tmp/t1#P#p2.MYD MYSQLTEST_VARDIR/tmp/t1#P#p2.MYI
-# check layout success: 0
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-$MYSQLTEST_VARDIR/tmp/t1#P#p1.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#p1.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#p2.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#p2.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#p3.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#p3.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#p4.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#p4.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#p5.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#p5.MYI
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#p1.MYD MYSQLTEST_VARDIR/tmp/t1#P#p1.MYI MYSQLTEST_VARDIR/tmp/t1#P#p2.MYD MYSQLTEST_VARDIR/tmp/t1#P#p2.MYI MYSQLTEST_VARDIR/tmp/t1#P#p3.MYD MYSQLTEST_VARDIR/tmp/t1#P#p3.MYI MYSQLTEST_VARDIR/tmp/t1#P#p4.MYD MYSQLTEST_VARDIR/tmp/t1#P#p4.MYI MYSQLTEST_VARDIR/tmp/t1#P#p5.MYD MYSQLTEST_VARDIR/tmp/t1#P#p5.MYI
-# check layout success: 0
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#p1.MYD MYSQLTEST_VARDIR/tmp/t1#P#p1.MYI MYSQLTEST_VARDIR/tmp/t1#P#p2.MYD MYSQLTEST_VARDIR/tmp/t1#P#p2.MYI MYSQLTEST_VARDIR/tmp/t1#P#p3.MYD MYSQLTEST_VARDIR/tmp/t1#P#p3.MYI MYSQLTEST_VARDIR/tmp/t1#P#p4.MYD MYSQLTEST_VARDIR/tmp/t1#P#p4.MYI MYSQLTEST_VARDIR/tmp/t1#P#p5.MYD MYSQLTEST_VARDIR/tmp/t1#P#p5.MYI
-# check layout success: 0
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#p1.MYD MYSQLTEST_VARDIR/tmp/t1#P#p1.MYI MYSQLTEST_VARDIR/tmp/t1#P#p2.MYD MYSQLTEST_VARDIR/tmp/t1#P#p2.MYI MYSQLTEST_VARDIR/tmp/t1#P#p3.MYD MYSQLTEST_VARDIR/tmp/t1#P#p3.MYI MYSQLTEST_VARDIR/tmp/t1#P#p4.MYD MYSQLTEST_VARDIR/tmp/t1#P#p4.MYI MYSQLTEST_VARDIR/tmp/t1#P#p5.MYD MYSQLTEST_VARDIR/tmp/t1#P#p5.MYI
-# check layout success: 0
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-$MYSQLTEST_VARDIR/tmp/t1#P#part0.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part0.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part1.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part1.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part2.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part2.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part3.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part3.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part_1.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part_1.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part_2.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part_2.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part_3.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part_3.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part_N.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part_N.MYI
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#part0.MYD MYSQLTEST_VARDIR/tmp/t1#P#part0.MYI MYSQLTEST_VARDIR/tmp/t1#P#part1.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3.MYI MYSQLTEST_VARDIR/tmp/t1#P#part_1.MYD MYSQLTEST_VARDIR/tmp/t1#P#part_1.MYI MYSQLTEST_VARDIR/tmp/t1#P#part_2.MYD MYSQLTEST_VARDIR/tmp/t1#P#part_2.MYI MYSQLTEST_VARDIR/tmp/t1#P#part_3.MYD MYSQLTEST_VARDIR/tmp/t1#P#part_3.MYI MYSQLTEST_VARDIR/tmp/t1#P#part_N.MYD MYSQLTEST_VARDIR/tmp/t1#P#part_N.MYI
-# check layout success: 0
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#part0.MYD MYSQLTEST_VARDIR/tmp/t1#P#part0.MYI MYSQLTEST_VARDIR/tmp/t1#P#part1.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3.MYI MYSQLTEST_VARDIR/tmp/t1#P#part_1.MYD MYSQLTEST_VARDIR/tmp/t1#P#part_1.MYI MYSQLTEST_VARDIR/tmp/t1#P#part_2.MYD MYSQLTEST_VARDIR/tmp/t1#P#part_2.MYI MYSQLTEST_VARDIR/tmp/t1#P#part_3.MYD MYSQLTEST_VARDIR/tmp/t1#P#part_3.MYI MYSQLTEST_VARDIR/tmp/t1#P#part_N.MYD MYSQLTEST_VARDIR/tmp/t1#P#part_N.MYI
-# check layout success: 0
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#part0.MYD MYSQLTEST_VARDIR/tmp/t1#P#part0.MYI MYSQLTEST_VARDIR/tmp/t1#P#part1.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3.MYI MYSQLTEST_VARDIR/tmp/t1#P#part_1.MYD MYSQLTEST_VARDIR/tmp/t1#P#part_1.MYI MYSQLTEST_VARDIR/tmp/t1#P#part_2.MYD MYSQLTEST_VARDIR/tmp/t1#P#part_2.MYI MYSQLTEST_VARDIR/tmp/t1#P#part_3.MYD MYSQLTEST_VARDIR/tmp/t1#P#part_3.MYI MYSQLTEST_VARDIR/tmp/t1#P#part_N.MYD MYSQLTEST_VARDIR/tmp/t1#P#part_N.MYI
-# check layout success: 0
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-$MYSQLTEST_VARDIR/tmp/t1#P#parta.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#parta.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#partb.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#partb.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#partc.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#partc.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#partd.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#partd.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#parte.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#parte.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#partf.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#partf.MYI
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-ERROR HY000: Table has no partition for value 2147483647
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#parta.MYD MYSQLTEST_VARDIR/tmp/t1#P#parta.MYI MYSQLTEST_VARDIR/tmp/t1#P#partb.MYD MYSQLTEST_VARDIR/tmp/t1#P#partb.MYI MYSQLTEST_VARDIR/tmp/t1#P#partc.MYD MYSQLTEST_VARDIR/tmp/t1#P#partc.MYI MYSQLTEST_VARDIR/tmp/t1#P#partd.MYD MYSQLTEST_VARDIR/tmp/t1#P#partd.MYI MYSQLTEST_VARDIR/tmp/t1#P#parte.MYD MYSQLTEST_VARDIR/tmp/t1#P#parte.MYI MYSQLTEST_VARDIR/tmp/t1#P#partf.MYD MYSQLTEST_VARDIR/tmp/t1#P#partf.MYI
-# check layout success: 0
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#parta.MYD MYSQLTEST_VARDIR/tmp/t1#P#parta.MYI MYSQLTEST_VARDIR/tmp/t1#P#partb.MYD MYSQLTEST_VARDIR/tmp/t1#P#partb.MYI MYSQLTEST_VARDIR/tmp/t1#P#partc.MYD MYSQLTEST_VARDIR/tmp/t1#P#partc.MYI MYSQLTEST_VARDIR/tmp/t1#P#partd.MYD MYSQLTEST_VARDIR/tmp/t1#P#partd.MYI MYSQLTEST_VARDIR/tmp/t1#P#parte.MYD MYSQLTEST_VARDIR/tmp/t1#P#parte.MYI MYSQLTEST_VARDIR/tmp/t1#P#partf.MYD MYSQLTEST_VARDIR/tmp/t1#P#partf.MYI
-# check layout success: 0
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#parta.MYD MYSQLTEST_VARDIR/tmp/t1#P#parta.MYI MYSQLTEST_VARDIR/tmp/t1#P#partb.MYD MYSQLTEST_VARDIR/tmp/t1#P#partb.MYI MYSQLTEST_VARDIR/tmp/t1#P#partc.MYD MYSQLTEST_VARDIR/tmp/t1#P#partc.MYI MYSQLTEST_VARDIR/tmp/t1#P#partd.MYD MYSQLTEST_VARDIR/tmp/t1#P#partd.MYI MYSQLTEST_VARDIR/tmp/t1#P#parte.MYD MYSQLTEST_VARDIR/tmp/t1#P#parte.MYI MYSQLTEST_VARDIR/tmp/t1#P#partf.MYD MYSQLTEST_VARDIR/tmp/t1#P#partf.MYI
-# check layout success: 0
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-$MYSQLTEST_VARDIR/tmp/t1#P#parta#SP#partasp0.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#parta#SP#partasp0.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#parta#SP#partasp1.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#parta#SP#partasp1.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#partb#SP#partbsp0.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#partb#SP#partbsp0.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#partb#SP#partbsp1.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#partb#SP#partbsp1.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#partc#SP#partcsp0.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#partc#SP#partcsp0.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#partc#SP#partcsp1.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#partc#SP#partcsp1.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#partd#SP#partdsp0.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#partd#SP#partdsp0.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#partd#SP#partdsp1.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#partd#SP#partdsp1.MYI
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#partd#SP#partdsp1.MYI
-# check layout success: 0
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#partd#SP#partdsp1.MYI
-# check layout success: 0
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#partd#SP#partdsp1.MYI
-# check layout success: 0
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-$MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#subpart11.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#subpart11.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#subpart12.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#subpart12.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#subpart21.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#subpart21.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#subpart22.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#subpart22.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#subpart31.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#subpart31.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#subpart32.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#subpart32.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#subpart41.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#subpart41.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#subpart42.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#subpart42.MYI
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-ERROR HY000: Table has no partition for value 2147483647
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#subpart42.MYI
-# check layout success: 0
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#subpart42.MYI
-# check layout success: 0
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#subpart42.MYI
-# check layout success: 0
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-$MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#sp11.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#sp11.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#sp12.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#sp12.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#sp21.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#sp21.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#sp22.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#sp22.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#sp31.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#sp31.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#sp32.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#sp32.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#sp41.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#sp41.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#sp42.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#sp42.MYI
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#sp42.MYI
-# check layout success: 0
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#sp42.MYI
-# check layout success: 0
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/tmp/t1#P#part4#SP#sp42.MYI
-# check layout success: 0
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
+)
+PARTITION BY LIST(ABS(MOD(f_int1,2)))
+SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
+(PARTITION part1 VALUES IN (0),
+PARTITION part2 VALUES IN (1),
+PARTITION part3 VALUES IN (NULL));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -7145,7 +3378,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD
@@ -7168,2324 +3401,6 @@ $MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD
$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI
$MYSQLTEST_VARDIR/master-data/test/t1.frm
$MYSQLTEST_VARDIR/master-data/test/t1.par
-$MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp0.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp0.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp1.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp1.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp2.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp2.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp0.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp0.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp1.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp1.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp2.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp2.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp0.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp0.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp1.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp1.MYI
-$MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp2.MYD
-$MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp2.MYI
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp2.MYI
-# check layout success: 0
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp2.MYI
-# check layout success: 0
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
-state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/tmp/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/tmp/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/tmp/t1#P#part3#SP#part3sp2.MYI
-# check layout success: 0
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-DROP TABLE IF EXISTS t1;
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) PARTITIONS 2 */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-ERROR HY000: Table has no partition for value 2147483647
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -9893,940 +3808,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart22 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = MyISAM, SUBPARTITION subpart42 ENGINE = MyISAM)) */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-ERROR HY000: Table has no partition for value 2147483647
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp12 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -11273,20 +4268,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -11737,20 +4732,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -12215,20 +5210,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -12685,20 +5680,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -13157,20 +6152,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -13633,20 +6628,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -14111,20 +7106,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -14143,8 +7138,8 @@ f_charbig VARCHAR(1000)
PARTITION BY LIST(ABS(MOD(f_int1,2)))
SUBPARTITION BY KEY(f_int2) SUBPARTITIONS 3
(PARTITION part1 VALUES IN (0),
- PARTITION part2 VALUES IN (1),
- PARTITION part3 VALUES IN (NULL));
+PARTITION part2 VALUES IN (1),
+PARTITION part3 VALUES IN (NULL));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -14587,20 +7582,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -14614,6 +7609,15 @@ DROP TABLE t1;
#------------------------------------------------------------------------
# 2.5 PRIMARY KEY + UNIQUE INDEX consisting of two columns
DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY HASH(f_int1) PARTITIONS 2;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -15095,20 +8099,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -15116,6 +8120,15 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY KEY(f_int1) PARTITIONS 5;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -15603,20 +8616,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -15624,6 +8637,23 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY LIST(MOD(f_int1,4))
+(PARTITION part_3 VALUES IN (-3),
+PARTITION part_2 VALUES IN (-2),
+PARTITION part_1 VALUES IN (-1),
+PARTITION part_N VALUES IN (NULL),
+PARTITION part0 VALUES IN (0),
+PARTITION part1 VALUES IN (1),
+PARTITION part2 VALUES IN (2),
+PARTITION part3 VALUES IN (3));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -15638,7 +8668,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) ENGINE = MyISAM, PARTITION part0 VALUES IN (0) ENGINE = MyISAM, PARTITION part1 VALUES IN (1) ENGINE = MyISAM, PARTITION part2 VALUES IN (2) ENGINE = MyISAM, PARTITION part3 VALUES IN (3) ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD
@@ -16117,20 +9147,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -16138,6 +9168,21 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1)
+(PARTITION parta VALUES LESS THAN (0),
+PARTITION partb VALUES LESS THAN (5),
+PARTITION partc VALUES LESS THAN (10),
+PARTITION partd VALUES LESS THAN (10 + 5),
+PARTITION parte VALUES LESS THAN (20),
+PARTITION partf VALUES LESS THAN (2147483646));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -16152,7 +9197,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD
@@ -16625,20 +9670,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -16646,6 +9691,19 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
+(PARTITION parta VALUES LESS THAN (0),
+PARTITION partb VALUES LESS THAN (5),
+PARTITION partc VALUES LESS THAN (10),
+PARTITION partd VALUES LESS THAN (2147483646));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -16660,7 +9718,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD
@@ -17139,20 +10197,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -17160,6 +10218,23 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
+(PARTITION part1 VALUES LESS THAN (0)
+(SUBPARTITION subpart11, SUBPARTITION subpart12),
+PARTITION part2 VALUES LESS THAN (5)
+(SUBPARTITION subpart21, SUBPARTITION subpart22),
+PARTITION part3 VALUES LESS THAN (10)
+(SUBPARTITION subpart31, SUBPARTITION subpart32),
+PARTITION part4 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart41, SUBPARTITION subpart42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -17174,7 +10249,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 ENGINE = MyISAM, SUBPARTITION subpart22 ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 ENGINE = MyISAM, SUBPARTITION subpart32 ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = MyISAM, SUBPARTITION subpart42 ENGINE = MyISAM)) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD
@@ -17651,20 +10726,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -17672,6 +10747,27 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
+(PARTITION part1 VALUES IN (0)
+(SUBPARTITION sp11,
+SUBPARTITION sp12),
+PARTITION part2 VALUES IN (1)
+(SUBPARTITION sp21,
+SUBPARTITION sp22),
+PARTITION part3 VALUES IN (2)
+(SUBPARTITION sp31,
+SUBPARTITION sp32),
+PARTITION part4 VALUES IN (NULL)
+(SUBPARTITION sp41,
+SUBPARTITION sp42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -17686,7 +10782,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM)) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = MyISAM, SUBPARTITION sp12 ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 ENGINE = MyISAM, SUBPARTITION sp22 ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 ENGINE = MyISAM, SUBPARTITION sp32 ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = MyISAM, SUBPARTITION sp42 ENGINE = MyISAM)) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD
@@ -18165,20 +11261,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -18186,6 +11282,19 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (inc/partition_check.inc)
DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY LIST(ABS(MOD(f_int1,2)))
+SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
+(PARTITION part1 VALUES IN (0),
+PARTITION part2 VALUES IN (1),
+PARTITION part3 VALUES IN (NULL));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -18200,7 +11309,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD
@@ -18681,20 +11790,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -19198,20 +12307,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -19715,20 +12824,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -20246,20 +13355,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -20769,20 +13878,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -21294,20 +14403,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -21823,20 +14932,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -22354,20 +15463,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -22386,8 +15495,8 @@ f_charbig VARCHAR(1000)
PARTITION BY LIST(ABS(MOD(f_int1,2)))
SUBPARTITION BY KEY(f_int2) SUBPARTITIONS 3
(PARTITION part1 VALUES IN (0),
- PARTITION part2 VALUES IN (1),
- PARTITION part3 VALUES IN (NULL));
+PARTITION part2 VALUES IN (1),
+PARTITION part3 VALUES IN (NULL));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (inc/partition_check.inc)
@@ -22883,20 +15992,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
diff --git a/mysql-test/suite/parts/r/partition_basic_symlink_innodb.result b/mysql-test/suite/parts/r/partition_basic_symlink_innodb.result
new file mode 100644
index 00000000000..2fa1c25d0de
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_basic_symlink_innodb.result
@@ -0,0 +1,32 @@
+# Will not run partition_basic_symlink on InnoDB, since it is the same
+# as partition_basic, since InnoDB does not support DATA/INDEX DIR
+# Will only verify that the DATA/INDEX DIR is stored and used if
+# ALTER to MyISAM.
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (c1 INT)
+ENGINE = InnoDB
+PARTITION BY HASH (c1)
+(PARTITION p0
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+ INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p1
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+ INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+);
+# Verifying .frm and .par files
+# Verifying that there are no MyISAM files
+FLUSH TABLES;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c1` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) (PARTITION p0 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = InnoDB, PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = InnoDB) */
+ALTER TABLE t1 ENGINE = MyISAM;
+# Verifying .frm, .par and MyISAM files (.MYD, MYI)
+FLUSH TABLES;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c1` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) (PARTITION p0 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+DROP TABLE t1;
diff --git a/mysql-test/suite/parts/r/partition_basic_symlink_myisam.result b/mysql-test/suite/parts/r/partition_basic_symlink_myisam.result
new file mode 100644
index 00000000000..65ca09846b6
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_basic_symlink_myisam.result
@@ -0,0 +1,20558 @@
+SET @max_row = 20;
+SET @@session.storage_engine = 'MyISAM';
+
+#------------------------------------------------------------------------
+# 0. Setting of auxiliary variables + Creation of an auxiliary tables
+# needed in many testcases
+#------------------------------------------------------------------------
+SELECT @max_row DIV 2 INTO @max_row_div2;
+SELECT @max_row DIV 3 INTO @max_row_div3;
+SELECT @max_row DIV 4 INTO @max_row_div4;
+SET @max_int_4 = 2147483647;
+DROP TABLE IF EXISTS t0_template;
+CREATE TABLE t0_template (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000) ,
+PRIMARY KEY(f_int1))
+ENGINE = MEMORY;
+# Logging of <max_row> INSERTs into t0_template suppressed
+DROP TABLE IF EXISTS t0_definition;
+CREATE TABLE t0_definition (
+state CHAR(3),
+create_command VARBINARY(5000),
+file_list VARBINARY(10000),
+PRIMARY KEY (state)
+) ENGINE = MEMORY;
+DROP TABLE IF EXISTS t0_aux;
+CREATE TABLE t0_aux ( f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000) )
+ENGINE = MEMORY;
+SET AUTOCOMMIT= 1;
+SET @@session.sql_mode= '';
+# End of basic preparations needed for all tests
+#-----------------------------------------------
+
+#========================================================================
+# 0.5 use partition_basic with DATA/INDEX DIRECTORY
+#========================================================================
+
+#========================================================================
+# Check partitioning methods on just created tables
+# The tables should be defined without/with PRIMARY KEY and
+# UNIQUE INDEXes.
+# Every test round has to check
+# PARTITION BY HASH/KEY/LIST/RANGE
+# PARTITION BY RANGE/LIST ... SUBPARTITION BY HASH/KEY ...
+#========================================================================
+#------------------------------------------------------------------------
+# 1 Tables without PRIMARY KEY or UNIQUE INDEXes
+#------------------------------------------------------------------------
+# 1.1 The partitioning function contains one column.
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY HASH(f_int1) PARTITIONS 2
+(PARTITION p1
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p2
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p2.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+# check prerequisites-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY KEY(f_int1) PARTITIONS 5
+(PARTITION p1
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p2
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p3
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p4
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p5
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p3.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p4.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p5.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p3.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p4.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p5.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+# check prerequisites-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY LIST(MOD(f_int1,4))
+(PARTITION part_3 VALUES IN (-3)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part_2 VALUES IN (-2)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part_1 VALUES IN (-1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part_N VALUES IN (NULL)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part0 VALUES IN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part1 VALUES IN (1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part2 VALUES IN (2)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part3 VALUES IN (3)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_3.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_N.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_3.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_N.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+# check prerequisites-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY RANGE(f_int1)
+(PARTITION parta VALUES LESS THAN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partb VALUES LESS THAN (5)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partc VALUES LESS THAN (10)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partd VALUES LESS THAN (10 + 5)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION parte VALUES LESS THAN (20)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partf VALUES LESS THAN (2147483646)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parta.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partb.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partc.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partd.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parte.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partf.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parta.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partb.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partc.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partd.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parte.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partf.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+# check prerequisites-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+ERROR HY000: Table has no partition for value 2147483647
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
+(PARTITION parta VALUES LESS THAN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partb VALUES LESS THAN (5)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partc VALUES LESS THAN (10)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partd VALUES LESS THAN (2147483646)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parta#SP#partasp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parta#SP#partasp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partb#SP#partbsp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partb#SP#partbsp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partc#SP#partcsp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partc#SP#partcsp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partd#SP#partdsp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partd#SP#partdsp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parta#SP#partasp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parta#SP#partasp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partb#SP#partbsp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partb#SP#partbsp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partc#SP#partcsp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partc#SP#partcsp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partd#SP#partdsp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partd#SP#partdsp1.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+# check prerequisites-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
+(PARTITION part1 VALUES LESS THAN (0)
+(SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part2 VALUES LESS THAN (5)
+(SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part3 VALUES LESS THAN (10)
+(SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part4 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'));
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM)) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#subpart11.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#subpart12.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#subpart21.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#subpart22.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#subpart31.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#subpart32.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#subpart41.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#subpart42.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#subpart11.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#subpart12.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#subpart21.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#subpart22.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#subpart31.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#subpart32.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#subpart41.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#subpart42.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+# check prerequisites-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+ERROR HY000: Table has no partition for value 2147483647
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
+(PARTITION part1 VALUES IN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp11
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION sp12
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part2 VALUES IN (1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp21
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION sp22
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part3 VALUES IN (2)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp31,
+SUBPARTITION sp32),
+PARTITION part4 VALUES IN (NULL)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp41
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION sp42
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'));
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM)) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#sp11.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#sp12.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#sp21.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#sp22.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#sp31.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#sp32.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#sp41.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#sp42.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#sp11.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#sp12.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#sp21.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#sp22.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#sp31.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#sp32.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#sp41.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#sp42.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+# check prerequisites-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY LIST(ABS(MOD(f_int1,2)))
+SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
+(PARTITION part1 VALUES IN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part2 VALUES IN (1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part3 VALUES IN (NULL)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#part1sp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#part1sp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#part1sp2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#part2sp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#part2sp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#part2sp2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#part3sp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#part3sp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#part3sp2.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#part1sp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#part1sp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#part1sp2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#part2sp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#part2sp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#part2sp2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#part3sp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#part3sp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#part3sp2.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+# check prerequisites-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+# 1.2 The partitioning function contains two columns.
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY HASH(f_int1 + f_int2) PARTITIONS 2
+(PARTITION p1
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p2
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1 + f_int2) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p2.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+# check prerequisites-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY KEY(f_int1,f_int2) PARTITIONS 5
+(PARTITION p1
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p2
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p3
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p4
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p5
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1,f_int2) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p3.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p4.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p5.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p3.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p4.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p5.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+# check prerequisites-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY LIST(MOD(f_int1 + f_int2,4))
+(PARTITION part_3 VALUES IN (-3)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part_2 VALUES IN (-2)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part_1 VALUES IN (-1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part_N VALUES IN (NULL)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part0 VALUES IN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part1 VALUES IN (1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part2 VALUES IN (2)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part3 VALUES IN (3)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_3.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_N.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_3.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_N.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+# check prerequisites-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY RANGE((f_int1 + f_int2) DIV 2)
+(PARTITION parta VALUES LESS THAN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partb VALUES LESS THAN (5)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partc VALUES LESS THAN (10)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partd VALUES LESS THAN (10 + 5)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION parte VALUES LESS THAN (20)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partf VALUES LESS THAN (2147483646)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parta.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partb.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partc.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partd.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parte.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partf.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parta.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partb.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partc.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partd.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parte.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partf.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+# check prerequisites-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+ERROR HY000: Table has no partition for value 2147483647
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int2) SUBPARTITIONS 2
+(PARTITION parta VALUES LESS THAN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partb VALUES LESS THAN (5)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partc VALUES LESS THAN (10)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partd VALUES LESS THAN (2147483646)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parta#SP#partasp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parta#SP#partasp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partb#SP#partbsp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partb#SP#partbsp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partc#SP#partcsp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partc#SP#partcsp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partd#SP#partdsp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partd#SP#partdsp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parta#SP#partasp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parta#SP#partasp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partb#SP#partbsp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partb#SP#partbsp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partc#SP#partcsp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partc#SP#partcsp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partd#SP#partdsp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partd#SP#partdsp1.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+# check prerequisites-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+ERROR HY000: Table has no partition for value 2147483647
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int2)
+(PARTITION part1 VALUES LESS THAN (0)
+(SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part2 VALUES LESS THAN (5)
+(SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part3 VALUES LESS THAN (10)
+(SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part4 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'));
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM)) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#subpart11.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#subpart12.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#subpart21.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#subpart22.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#subpart31.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#subpart32.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#subpart41.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#subpart42.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#subpart11.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#subpart12.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#subpart21.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#subpart22.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#subpart31.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#subpart32.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#subpart41.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#subpart42.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+# check prerequisites-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+ERROR HY000: Table has no partition for value 2147483647
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int2 + 1)
+(PARTITION part1 VALUES IN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp11
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION sp12
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part2 VALUES IN (1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp21
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION sp22
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part3 VALUES IN (2)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp31,
+SUBPARTITION sp32),
+PARTITION part4 VALUES IN (NULL)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp41
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION sp42
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'));
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM)) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#sp11.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#sp12.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#sp21.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#sp22.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#sp31.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#sp32.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#sp41.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#sp42.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#sp11.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#sp12.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#sp21.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#sp22.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#sp31.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#sp32.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#sp41.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#sp42.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+# check prerequisites-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+
+)
+PARTITION BY LIST(ABS(MOD(f_int1,2)))
+SUBPARTITION BY KEY(f_int2) SUBPARTITIONS 3
+(PARTITION part1 VALUES IN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part2 VALUES IN (1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part3 VALUES IN (NULL)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#part1sp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#part1sp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#part1sp2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#part2sp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#part2sp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#part2sp2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#part3sp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#part3sp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#part3sp2.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#part1sp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#part1sp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#part1sp2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#part2sp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#part2sp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#part2sp2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#part3sp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#part3sp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#part3sp2.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+# check prerequisites-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+#------------------------------------------------------------------------
+# 2 Tables with PRIMARY KEY and/or UNIQUE INDEXes
+# The partitioning function contains one column.
+#------------------------------------------------------------------------
+# 2.5 PRIMARY KEY + UNIQUE INDEX consisting of two columns
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY HASH(f_int1) PARTITIONS 2
+(PARTITION p1
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p2
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p2.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY KEY(f_int1) PARTITIONS 5
+(PARTITION p1
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p2
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p3
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p4
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p5
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p3.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p4.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p5.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p3.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p4.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p5.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY LIST(MOD(f_int1,4))
+(PARTITION part_3 VALUES IN (-3)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part_2 VALUES IN (-2)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part_1 VALUES IN (-1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part_N VALUES IN (NULL)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part0 VALUES IN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part1 VALUES IN (1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part2 VALUES IN (2)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part3 VALUES IN (3)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_3.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_N.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_3.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_N.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1)
+(PARTITION parta VALUES LESS THAN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partb VALUES LESS THAN (5)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partc VALUES LESS THAN (10)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partd VALUES LESS THAN (10 + 5)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION parte VALUES LESS THAN (20)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partf VALUES LESS THAN (2147483646)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parta.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partb.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partc.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partd.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parte.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partf.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parta.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partb.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partc.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partd.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parte.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partf.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+ERROR HY000: Table has no partition for value 2147483647
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
+(PARTITION parta VALUES LESS THAN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partb VALUES LESS THAN (5)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partc VALUES LESS THAN (10)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partd VALUES LESS THAN (2147483646)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parta#SP#partasp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parta#SP#partasp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partb#SP#partbsp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partb#SP#partbsp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partc#SP#partcsp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partc#SP#partcsp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partd#SP#partdsp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partd#SP#partdsp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parta#SP#partasp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parta#SP#partasp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partb#SP#partbsp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partb#SP#partbsp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partc#SP#partcsp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partc#SP#partcsp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partd#SP#partdsp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partd#SP#partdsp1.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
+(PARTITION part1 VALUES LESS THAN (0)
+(SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part2 VALUES LESS THAN (5)
+(SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part3 VALUES LESS THAN (10)
+(SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part4 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'));
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM)) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#subpart11.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#subpart12.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#subpart21.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#subpart22.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#subpart31.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#subpart32.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#subpart41.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#subpart42.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#subpart11.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#subpart12.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#subpart21.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#subpart22.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#subpart31.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#subpart32.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#subpart41.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#subpart42.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+ERROR HY000: Table has no partition for value 2147483647
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
+(PARTITION part1 VALUES IN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp11
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION sp12
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part2 VALUES IN (1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp21
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION sp22
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part3 VALUES IN (2)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp31,
+SUBPARTITION sp32),
+PARTITION part4 VALUES IN (NULL)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp41
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION sp42
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'));
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM)) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#sp11.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#sp12.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#sp21.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#sp22.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#sp31.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#sp32.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#sp41.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#sp42.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#sp11.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#sp12.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#sp21.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#sp22.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#sp31.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#sp32.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#sp41.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#sp42.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY LIST(ABS(MOD(f_int1,2)))
+SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
+(PARTITION part1 VALUES IN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part2 VALUES IN (1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part3 VALUES IN (NULL)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#part1sp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#part1sp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#part1sp2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#part2sp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#part2sp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#part2sp2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#part3sp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#part3sp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#part3sp2.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#part1sp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#part1sp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#part1sp2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#part2sp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#part2sp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#part2sp2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#part3sp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#part3sp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#part3sp2.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+#------------------------------------------------------------------------
+# 3 Tables with PRIMARY KEY and/or UNIQUE INDEXes
+# The partitioning function contains two columns.
+#------------------------------------------------------------------------
+# 3.3 PRIMARY KEY and UNIQUE INDEX consisting of two columns
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY HASH(f_int1 + f_int2) PARTITIONS 2
+(PARTITION p1
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p2
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1 + f_int2) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p2.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY KEY(f_int1,f_int2) PARTITIONS 5
+(PARTITION p1
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p2
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p3
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p4
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p5
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1,f_int2) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p3.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p4.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p5.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p3.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p4.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p5.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY LIST(MOD(f_int1 + f_int2,4))
+(PARTITION part_3 VALUES IN (-3)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part_2 VALUES IN (-2)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part_1 VALUES IN (-1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part_N VALUES IN (NULL)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part0 VALUES IN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part1 VALUES IN (1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part2 VALUES IN (2)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part3 VALUES IN (3)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_3.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_N.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_3.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_N.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY RANGE((f_int1 + f_int2) DIV 2)
+(PARTITION parta VALUES LESS THAN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partb VALUES LESS THAN (5)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partc VALUES LESS THAN (10)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partd VALUES LESS THAN (10 + 5)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION parte VALUES LESS THAN (20)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partf VALUES LESS THAN (2147483646)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parta.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partb.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partc.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partd.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parte.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partf.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parta.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partb.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partc.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partd.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parte.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partf.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+ERROR HY000: Table has no partition for value 2147483647
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int2) SUBPARTITIONS 2
+(PARTITION parta VALUES LESS THAN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partb VALUES LESS THAN (5)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partc VALUES LESS THAN (10)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partd VALUES LESS THAN (2147483646)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parta#SP#partasp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parta#SP#partasp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partb#SP#partbsp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partb#SP#partbsp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partc#SP#partcsp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partc#SP#partcsp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partd#SP#partdsp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partd#SP#partdsp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parta#SP#partasp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parta#SP#partasp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partb#SP#partbsp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partb#SP#partbsp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partc#SP#partcsp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partc#SP#partcsp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partd#SP#partdsp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partd#SP#partdsp1.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+ERROR HY000: Table has no partition for value 2147483647
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int2)
+(PARTITION part1 VALUES LESS THAN (0)
+(SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part2 VALUES LESS THAN (5)
+(SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part3 VALUES LESS THAN (10)
+(SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part4 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'));
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM)) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#subpart11.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#subpart12.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#subpart21.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#subpart22.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#subpart31.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#subpart32.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#subpart41.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#subpart42.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#subpart11.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#subpart12.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#subpart21.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#subpart22.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#subpart31.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#subpart32.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#subpart41.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#subpart42.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+ERROR HY000: Table has no partition for value 2147483647
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int2 + 1)
+(PARTITION part1 VALUES IN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp11
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION sp12
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part2 VALUES IN (1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp21
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION sp22
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part3 VALUES IN (2)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp31,
+SUBPARTITION sp32),
+PARTITION part4 VALUES IN (NULL)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp41
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION sp42
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'));
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM)) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#sp11.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#sp12.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#sp21.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#sp22.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#sp31.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#sp32.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#sp41.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#sp42.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#sp11.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#sp12.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#sp21.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#sp22.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#sp31.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#sp32.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#sp41.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#sp42.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY LIST(ABS(MOD(f_int1,2)))
+SUBPARTITION BY KEY(f_int2) SUBPARTITIONS 3
+(PARTITION part1 VALUES IN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part2 VALUES IN (1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part3 VALUES IN (NULL)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#part1sp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#part1sp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#part1sp2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#part2sp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#part2sp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#part2sp2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#part3sp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#part3sp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#part3sp2.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#part1sp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#part1sp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#part1sp2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#part2sp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#part2sp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#part2sp2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#part3sp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#part3sp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#part3sp2.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+#========================================================================
+# 5 use partition_directory with DATA/INDEX DIRECTORY
+#========================================================================
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY HASH(f_int1) PARTITIONS 2
+(PARTITION p1
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p2
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p2 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+ls: $MYSQLTEST_VARDIR/mysql-test-data-dir/t1*: No such file or directory
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p2.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY HASH(f_int1) PARTITIONS 5
+(PARTITION p1
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir',
+PARTITION p2
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p3
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION p4,
+PARTITION p5
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' ENGINE = MyISAM, PARTITION p2 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p4 ENGINE = MyISAM, PARTITION p5 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p3.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p2.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p3.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p5.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY LIST(MOD(f_int1,4))
+(PARTITION part_3 VALUES IN (-3)
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part_2 VALUES IN (-2)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir',
+PARTITION part_1 VALUES IN (-1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part_N VALUES IN (NULL)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir',
+PARTITION part0 VALUES IN (0)
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION part1 VALUES IN (1)
+,
+PARTITION part2 VALUES IN (2)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir',
+PARTITION part3 VALUES IN (3)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_2.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part_N.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part_3.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1)
+(PARTITION parta VALUES LESS THAN (0)
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partb VALUES LESS THAN (5)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir',
+PARTITION partc VALUES LESS THAN (10)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partd VALUES LESS THAN (10 + 5),
+PARTITION parte VALUES LESS THAN (20)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir',
+PARTITION partf VALUES LESS THAN (2147483646)
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partb.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partc.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#parte.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parta.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partc.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partf.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+ERROR HY000: Table has no partition for value 2147483647
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
+(PARTITION parta VALUES LESS THAN (0)
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+PARTITION partb VALUES LESS THAN (5)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir',
+PARTITION partc VALUES LESS THAN (10),
+PARTITION partd VALUES LESS THAN (2147483646)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partb#SP#partbsp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partb#SP#partbsp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partd#SP#partdsp0.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#partd#SP#partdsp1.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parta#SP#partasp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#parta#SP#partasp1.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partd#SP#partdsp0.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#partd#SP#partdsp1.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
+(PARTITION part1 VALUES LESS THAN (0)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+(SUBPARTITION subpart11, SUBPARTITION subpart12),
+PARTITION part2 VALUES LESS THAN (5)
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION subpart21, SUBPARTITION subpart22),
+PARTITION part3 VALUES LESS THAN (10)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION subpart31, SUBPARTITION subpart32),
+PARTITION part4 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart41, SUBPARTITION subpart42));
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart22 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = MyISAM, SUBPARTITION subpart42 ENGINE = MyISAM)) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#subpart11.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#subpart12.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#subpart31.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#subpart32.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#subpart21.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#subpart22.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#subpart31.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#subpart32.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+ERROR HY000: Table has no partition for value 2147483647
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
+)
+PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
+(PARTITION part1 VALUES IN (0)
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp11
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir',
+SUBPARTITION sp12
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part2 VALUES IN (1)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+(SUBPARTITION sp21
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir',
+SUBPARTITION sp22
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'),
+PARTITION part3 VALUES IN (2)
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'
+(SUBPARTITION sp31,
+SUBPARTITION sp32),
+PARTITION part4 VALUES IN (NULL)
+(SUBPARTITION sp41
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir',
+SUBPARTITION sp42
+DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir'
+INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir'));
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
+# Start usability test (inc/partition_check.inc)
+create_command
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f_int1` int(11) DEFAULT NULL,
+ `f_int2` int(11) DEFAULT NULL,
+ `f_char1` char(20) DEFAULT NULL,
+ `f_char2` char(20) DEFAULT NULL,
+ `f_charbig` varchar(1000) DEFAULT NULL,
+ UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
+ UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp12 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM)) */
+
+unified filelist
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD
+$MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI
+$MYSQLTEST_VARDIR/master-data/test/t1.frm
+$MYSQLTEST_VARDIR/master-data/test/t1.par
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part1#SP#sp11.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#sp21.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part2#SP#sp22.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#sp31.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part3#SP#sp32.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#sp41.MYD
+$MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#part4#SP#sp42.MYD
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#sp11.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part1#SP#sp12.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part2#SP#sp22.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#sp31.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part3#SP#sp32.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#sp41.MYI
+$MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#part4#SP#sp42.MYI
+
+# check prerequisites-1 success: 1
+# check COUNT(*) success: 1
+# check MIN/MAX(f_int1) success: 1
+# check MIN/MAX(f_int2) success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+ERROR 23000: Can't write; duplicate key in table 't1'
+# check prerequisites-3 success: 1
+# INFO: f_int1 AND/OR f_int2 AND/OR (f_int1,f_int2) is UNIQUE
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT 2 * @max_row + f_int1, f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
+CAST((2 * @max_row + f_int1) AS CHAR), 'delete me' FROM t0_template
+WHERE f_int1 IN (2,3);
+DELETE FROM t1 WHERE f_charbig = 'delete me';
+# check read via f_int1 success: 1
+# check read via f_int2 success: 1
+
+# check multiple-1 success: 1
+DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
+
+# check multiple-2 success: 1
+INSERT INTO t1 SELECT * FROM t0_template
+WHERE MOD(f_int1,3) = 0;
+
+# check multiple-3 success: 1
+UPDATE t1 SET f_int1 = f_int1 + @max_row
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
+AND @max_row_div2 + @max_row_div4;
+
+# check multiple-4 success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
+AND @max_row_div2 + @max_row_div4 + @max_row;
+
+# check multiple-5 success: 1
+SELECT COUNT(*) INTO @try_count FROM t0_template
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT COUNT(*) INTO @clash_count
+FROM t1 INNER JOIN t0_template USING(f_int1)
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-1 success: 1
+SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
+INSERT INTO t1
+SET f_int1 = @cur_value , f_int2 = @cur_value,
+f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
+f_charbig = '#SINGLE#';
+
+# check single-2 success: 1
+SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
+SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value2
+WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
+
+# check single-3 success: 1
+SET @cur_value1= -1;
+SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
+UPDATE t1 SET f_int1 = @cur_value1
+WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
+
+# check single-4 success: 1
+SELECT MAX(f_int1) INTO @cur_value FROM t1;
+DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
+
+# check single-5 success: 1
+DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
+
+# check single-6 success: 1
+INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
+
+# check single-7 success: 1
+DELETE FROM t1 WHERE f_charbig = '#2147483647##';
+DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
+INSERT t1 SET f_int1 = 0 , f_int2 = 0,
+f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
+f_charbig = '#NULL#';
+INSERT INTO t1
+SET f_int1 = NULL , f_int2 = -@max_row,
+f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
+f_charbig = '#NULL#';
+# check null success: 1
+
+# check null-1 success: 1
+UPDATE t1 SET f_int1 = -@max_row
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-2 success: 1
+UPDATE t1 SET f_int1 = NULL
+WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-3 success: 1
+DELETE FROM t1
+WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
+AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
+
+# check null-4 success: 1
+DELETE FROM t1
+WHERE f_int1 = 0 AND f_int2 = 0
+AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
+AND f_charbig = '#NULL#';
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0
+AND f_int1 BETWEEN @max_row_div2 AND @max_row
+ON DUPLICATE KEY
+UPDATE f_int1 = 2 * @max_row + source_tab.f_int1,
+f_int2 = 2 * @max_row + source_tab.f_int1,
+f_charbig = 'was updated';
+
+# check unique-1-a success: 1
+
+# check unique-1-b success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===')
+WHERE f_charbig = 'was updated';
+REPLACE INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, - f_int1, '', '', 'was inserted or replaced'
+ FROM t0_template source_tab
+WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row;
+
+# check replace success: 1
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 AND @max_row_div2 + @max_row_div4;
+DELETE FROM t1
+WHERE f_int1 = f_int2 AND MOD(f_int1,3) = 0 AND
+f_int1 BETWEEN @max_row_div2 + @max_row_div4 AND @max_row;
+UPDATE t1 SET f_int2 = f_int1,
+f_char1 = CAST(f_int1 AS CHAR),
+f_char2 = CAST(f_int1 AS CHAR),
+f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===')
+WHERE f_charbig = 'was inserted or replaced' AND f_int1 = - f_int2;
+SET AUTOCOMMIT= 0;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-1 success: 1
+COMMIT WORK;
+
+# check transactions-2 success: 1
+ROLLBACK WORK;
+
+# check transactions-3 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+ROLLBACK WORK;
+
+# check transactions-4 success: 1
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, '', '', 'was inserted'
+FROM t0_template source_tab
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+
+# check transactions-5 success: 1
+ROLLBACK WORK;
+Warnings:
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
+
+# check transactions-6 success: 1
+# INFO: Storage engine used for t1 seems to be not transactional.
+COMMIT;
+
+# check transactions-7 success: 1
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+SET @@session.sql_mode = 'traditional';
+SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
+'', '', 'was inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
+ERROR 22012: Division by 0
+COMMIT;
+
+# check transactions-8 success: 1
+# INFO: Storage engine used for t1 seems to be unable to revert
+# changes made by the failing statement.
+SET @@session.sql_mode = '';
+SET AUTOCOMMIT= 1;
+DELETE FROM t1 WHERE f_charbig = 'was inserted';
+COMMIT WORK;
+UPDATE t1 SET f_charbig = REPEAT('b', 1000);
+
+# check special-1 success: 1
+UPDATE t1 SET f_charbig = '';
+
+# check special-2 success: 1
+UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-1 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+
+# check trigger-2 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-3 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-4 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = new.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-5 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-6 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-7 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
+'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
+BEGIN
+UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
+f_charbig = 'updated by trigger'
+ WHERE f_int1 = - old.f_int1;
+END|
+DELETE FROM t0_aux
+WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
+
+# check trigger-8 success: 1
+DROP TRIGGER trg_1;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = 'just inserted'
+ WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
+DELETE FROM t0_aux
+WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+DELETE FROM t1
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = old.f_int1 + @max_row,
+new.f_int2 = old.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-9 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = new.f_int1 + @max_row,
+new.f_int2 = new.f_int2 - @max_row,
+new.f_charbig = '####updated per update trigger####';
+END|
+UPDATE t1
+SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
+f_charbig = '####updated per update statement itself####';
+
+# check trigger-10 success: 1
+DROP TRIGGER trg_2;
+UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
+f_int2 = CAST(f_char1 AS SIGNED INT),
+f_charbig = CONCAT('===',f_char1,'===');
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
+SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-11 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
+BEGIN
+SET new.f_int1 = @my_max1 + @counter,
+new.f_int2 = @my_min2 - @counter,
+new.f_charbig = '####updated per insert trigger####';
+SET @counter = @counter + 1;
+END|
+SET @counter = 1;
+SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
+INSERT INTO t1 (f_char1, f_char2, f_charbig)
+SELECT CAST(f_int1 AS CHAR),
+CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
+WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
+ORDER BY f_int1;
+DROP TRIGGER trg_3;
+
+# check trigger-12 success: 1
+DELETE FROM t1
+WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
+AND f_int2 <> CAST(f_char1 AS SIGNED INT)
+AND f_charbig = '####updated per insert trigger####';
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze note The storage engine for the table doesn't support analyze
+CHECK TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 check note The storage engine for the table doesn't support check
+CHECKSUM TABLE t1 EXTENDED;
+Table Checksum
+test.t1 <some_value>
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize note The storage engine for the table doesn't support optimize
+# check layout success: 1
+REPAIR TABLE t1 EXTENDED;
+Table Op Msg_type Msg_text
+test.t1 repair note The storage engine for the table doesn't support repair
+# check layout success: 1
+TRUNCATE t1;
+
+# check TRUNCATE success: 1
+# check layout success: 1
+# End usability test (inc/partition_check.inc)
+DROP TABLE t1;
+DROP VIEW IF EXISTS v1;
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t0_aux;
+DROP TABLE IF EXISTS t0_definition;
+DROP TABLE IF EXISTS t0_template;
diff --git a/mysql-test/suite/parts/r/partition_bit_innodb.result b/mysql-test/suite/parts/r/partition_bit_innodb.result
index 9f6403090ee..22d1d0e0a30 100644
--- a/mysql-test/suite/parts/r/partition_bit_innodb.result
+++ b/mysql-test/suite/parts/r/partition_bit_innodb.result
@@ -12,18 +12,14 @@ t1 CREATE TABLE `t1` (
drop table t1;
create table t1 (a bit(0), primary key (a)) engine='INNODB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp',
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp');
+partition pa1,
+partition pa2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` bit(1) NOT NULL DEFAULT '\0',
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 ENGINE = InnoDB, PARTITION pa2 ENGINE = InnoDB) */
drop table t1;
create table t1 (a bit(64), primary key (a)) engine='INNODB'
partition by key (a) partitions 2;
@@ -49,24 +45,16 @@ FFFFFFFFFFFFFFFF
drop table t1;
create table t1 (a bit(64), primary key (a)) engine='INNODB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` bit(64) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0',
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values
(b'1111111111111111111111111111111111111111111111111111111111111111'),
(b'1000000000000000000000000000000000000000000000000000000000000000'),
@@ -105,8 +93,8 @@ t2 CREATE TABLE `t2` (
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 4 */
select hex(a) from t2;
hex(a)
-1
0
+1
alter table t2 add primary key (a);
show create table t2;
Table Create Table
@@ -142,20 +130,6 @@ count(*)
select hex(a) from t3;
hex(a)
1
-2
-3
-4
-5
-6
-7
-8
-9
-A
-B
-C
-D
-E
-F
10
11
12
@@ -172,6 +146,7 @@ F
1D
1E
1F
+2
20
21
22
@@ -188,6 +163,7 @@ F
2D
2E
2F
+3
30
31
32
@@ -204,6 +180,7 @@ F
3D
3E
3F
+4
40
41
42
@@ -220,6 +197,7 @@ F
4D
4E
4F
+5
50
51
52
@@ -235,6 +213,7 @@ F
5D
5E
5F
+6
60
61
62
@@ -251,6 +230,7 @@ F
6D
6E
6F
+7
70
71
72
@@ -267,6 +247,7 @@ F
7D
7E
7F
+8
80
81
82
@@ -283,6 +264,7 @@ F
8D
8E
8F
+9
90
91
92
@@ -299,6 +281,7 @@ F
9D
9E
9F
+A
A0
A1
A2
@@ -315,6 +298,7 @@ AC
AD
AE
AF
+B
B0
B1
B2
@@ -331,6 +315,7 @@ BC
BD
BE
BF
+C
C0
C1
C2
@@ -347,6 +332,7 @@ CC
CD
CE
CF
+D
D0
D1
D2
@@ -363,6 +349,7 @@ DC
DD
DE
DF
+E
E0
E1
E2
@@ -379,6 +366,7 @@ EC
ED
EE
EF
+F
F0
F1
F2
@@ -417,20 +405,6 @@ count(*)
31
select hex(a) from t4;
hex(a)
-2
-3
-4
-5
-6
-7
-8
-9
-A
-B
-C
-D
-E
-F
10
11
12
@@ -447,5 +421,19 @@ F
1D
1E
1F
+2
20
+3
+4
+5
+6
+7
+8
+9
+A
+B
+C
+D
+E
+F
drop table t4;
diff --git a/mysql-test/suite/parts/r/partition_bit_myisam.result b/mysql-test/suite/parts/r/partition_bit_myisam.result
index e5b31e0c154..d4b81fc74b5 100644
--- a/mysql-test/suite/parts/r/partition_bit_myisam.result
+++ b/mysql-test/suite/parts/r/partition_bit_myisam.result
@@ -12,18 +12,14 @@ t1 CREATE TABLE `t1` (
drop table t1;
create table t1 (a bit(0), primary key (a)) engine='MyISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp',
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp');
+partition pa1,
+partition pa2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` bit(1) NOT NULL DEFAULT '\0',
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 ENGINE = MyISAM, PARTITION pa2 ENGINE = MyISAM) */
drop table t1;
create table t1 (a bit(64), primary key (a)) engine='MyISAM'
partition by key (a) partitions 2;
@@ -49,24 +45,16 @@ FFFFFFFFFFFFFFFF
drop table t1;
create table t1 (a bit(64), primary key (a)) engine='MyISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` bit(64) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0',
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values
(b'1111111111111111111111111111111111111111111111111111111111111111'),
(b'1000000000000000000000000000000000000000000000000000000000000000'),
@@ -142,20 +130,6 @@ count(*)
select hex(a) from t3;
hex(a)
1
-2
-3
-4
-5
-6
-7
-8
-9
-A
-B
-C
-D
-E
-F
10
11
12
@@ -172,6 +146,7 @@ F
1D
1E
1F
+2
20
21
22
@@ -188,6 +163,7 @@ F
2D
2E
2F
+3
30
31
32
@@ -204,6 +180,7 @@ F
3D
3E
3F
+4
40
41
42
@@ -220,6 +197,7 @@ F
4D
4E
4F
+5
50
51
52
@@ -235,6 +213,7 @@ F
5D
5E
5F
+6
60
61
62
@@ -251,6 +230,7 @@ F
6D
6E
6F
+7
70
71
72
@@ -267,6 +247,7 @@ F
7D
7E
7F
+8
80
81
82
@@ -283,6 +264,7 @@ F
8D
8E
8F
+9
90
91
92
@@ -299,6 +281,7 @@ F
9D
9E
9F
+A
A0
A1
A2
@@ -315,6 +298,7 @@ AC
AD
AE
AF
+B
B0
B1
B2
@@ -331,6 +315,7 @@ BC
BD
BE
BF
+C
C0
C1
C2
@@ -347,6 +332,7 @@ CC
CD
CE
CF
+D
D0
D1
D2
@@ -363,6 +349,7 @@ DC
DD
DE
DF
+E
E0
E1
E2
@@ -379,6 +366,7 @@ EC
ED
EE
EF
+F
F0
F1
F2
@@ -417,20 +405,6 @@ count(*)
31
select hex(a) from t4;
hex(a)
-2
-3
-4
-5
-6
-7
-8
-9
-A
-B
-C
-D
-E
-F
10
11
12
@@ -447,5 +421,19 @@ F
1D
1E
1F
+2
20
+3
+4
+5
+6
+7
+8
+9
+A
+B
+C
+D
+E
+F
drop table t4;
diff --git a/mysql-test/suite/parts/r/partition_char_innodb.result b/mysql-test/suite/parts/r/partition_char_innodb.result
index c9609537f08..455ff0353ed 100644
--- a/mysql-test/suite/parts/r/partition_char_innodb.result
+++ b/mysql-test/suite/parts/r/partition_char_innodb.result
@@ -1,24 +1,16 @@
---- Partitioning and char data type
create table t1 (a char(255) not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` char(255) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (repeat('a',255)), ('b'), (repeat('a',128)), (repeat('b',64));
select * from t1;
a
@@ -107,24 +99,16 @@ drop table t2;
---- Partitioning and binary data type
create table t1 (a binary(255) not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` binary(255) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (repeat('a',255)), ('b'), (repeat('a',128)), (repeat('b',64));
select hex(a) from t1;
hex(a)
@@ -216,24 +200,16 @@ drop table t2;
---- Partitioning and varchar data type
create table t1 (a varchar(767) not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(767) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (repeat('a',767)), ('b'), (repeat('a',500)), (repeat('b',64));
select * from t1;
a
@@ -322,24 +298,16 @@ drop table t2;
---- Partitioning and varbinary data type
create table t1 (a varbinary(767) not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` varbinary(767) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (repeat('a',767)), ('b'), (repeat('a',500)), (repeat('b',64));
select * from t1;
a
@@ -428,24 +396,16 @@ drop table t2;
---- Partitioning and enum data type
create table t1 (a enum('A','B','C','D','E','F','G','H','I','J','K','L') not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` enum('A','B','C','D','E','F','G','H','I','J','K','L') NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values ('A'),('D'),('L'),('G');
select * from t1;
a
@@ -558,24 +518,16 @@ drop table t2;
---- Partitioning and set data type
create table t1 (a set('A','B','C','D','E','F','G','H','I','J','K','L') not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` set('A','B','C','D','E','F','G','H','I','J','K','L') NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values ('A,B'),('C,D'),('E,L'),('G,H,K');
select * from t1 order by a;
a
@@ -727,18 +679,10 @@ drop table t2;
---- Partitioning and blob data type
create table t1 (a blob not null, primary key(a(767))) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
ERROR HY000: A BLOB field is not allowed in partition function
create table t2 (a blob not null, primary key(a(767))) engine='InnoDB'
partition by key (a) partitions 30;
@@ -755,18 +699,10 @@ ERROR HY000: A BLOB field is not allowed in partition function
---- Partitioning and text data type
create table t1 (a text not null, primary key(a(767))) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
ERROR HY000: A BLOB field is not allowed in partition function
create table t2 (a tinytext not null, primary key(a(767))) engine='InnoDB'
partition by key (a) partitions 30;
diff --git a/mysql-test/suite/parts/r/partition_char_myisam.result b/mysql-test/suite/parts/r/partition_char_myisam.result
index 1009f52348d..af25f4b19a4 100644
--- a/mysql-test/suite/parts/r/partition_char_myisam.result
+++ b/mysql-test/suite/parts/r/partition_char_myisam.result
@@ -1,24 +1,16 @@
---- Partitioning and char data type
create table t1 (a char(255) not null, primary key(a)) engine='MyISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` char(255) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (repeat('a',255)), ('b'), (repeat('a',128)), (repeat('b',64));
select * from t1;
a
@@ -107,24 +99,16 @@ drop table t2;
---- Partitioning and binary data type
create table t1 (a binary(255) not null, primary key(a)) engine='MyISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` binary(255) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (repeat('a',255)), ('b'), (repeat('a',128)), (repeat('b',64));
select hex(a) from t1;
hex(a)
@@ -216,24 +200,16 @@ drop table t2;
---- Partitioning and varchar data type
create table t1 (a varchar(767) not null, primary key(a)) engine='MyISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(767) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (repeat('a',767)), ('b'), (repeat('a',500)), (repeat('b',64));
select * from t1;
a
@@ -322,24 +298,16 @@ drop table t2;
---- Partitioning and varbinary data type
create table t1 (a varbinary(767) not null, primary key(a)) engine='MyISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` varbinary(767) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (repeat('a',767)), ('b'), (repeat('a',500)), (repeat('b',64));
select * from t1;
a
@@ -428,24 +396,16 @@ drop table t2;
---- Partitioning and enum data type
create table t1 (a enum('A','B','C','D','E','F','G','H','I','J','K','L') not null, primary key(a)) engine='MyISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` enum('A','B','C','D','E','F','G','H','I','J','K','L') NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values ('A'),('D'),('L'),('G');
select * from t1;
a
@@ -558,24 +518,16 @@ drop table t2;
---- Partitioning and set data type
create table t1 (a set('A','B','C','D','E','F','G','H','I','J','K','L') not null, primary key(a)) engine='MyISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` set('A','B','C','D','E','F','G','H','I','J','K','L') NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values ('A,B'),('C,D'),('E,L'),('G,H,K');
select * from t1 order by a;
a
@@ -727,18 +679,10 @@ drop table t2;
---- Partitioning and blob data type
create table t1 (a blob not null, primary key(a(767))) engine='MyISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
ERROR HY000: A BLOB field is not allowed in partition function
create table t2 (a blob not null, primary key(a(767))) engine='MyISAM'
partition by key (a) partitions 30;
@@ -755,18 +699,10 @@ ERROR HY000: A BLOB field is not allowed in partition function
---- Partitioning and text data type
create table t1 (a text not null, primary key(a(767))) engine='MyISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
ERROR HY000: A BLOB field is not allowed in partition function
create table t2 (a tinytext not null, primary key(a(767))) engine='MyISAM'
partition by key (a) partitions 30;
diff --git a/mysql-test/suite/parts/r/partition_datetime_innodb.result b/mysql-test/suite/parts/r/partition_datetime_innodb.result
index 4ced059ba9e..0d95df98bbf 100644
--- a/mysql-test/suite/parts/r/partition_datetime_innodb.result
+++ b/mysql-test/suite/parts/r/partition_datetime_innodb.result
@@ -1,23 +1,15 @@
create table t1 (a timestamp not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59');
select * from t1;
a
@@ -281,24 +273,16 @@ a
drop table t4;
create table t1 (a date not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` date NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values ('1975-01-01'), ('2020-12-31'), ('1980-10-14'), ('2000-06-15');
select * from t1;
a
@@ -608,24 +592,16 @@ a
drop table t4;
create table t1 (a time not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` time NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values ('21:21:21'), ('12:10:30'), ('03:03:03'), ('23:59');
select * from t1;
a
@@ -1073,24 +1049,16 @@ a
drop table t4;
create table t1 (a datetime not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` datetime NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59');
select * from t1;
a
@@ -1350,24 +1318,16 @@ a
drop table t4;
create table t1 (a year not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` year(4) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values ('1975'), (2020), ('1980'), ('2000');
select * from t1;
a
diff --git a/mysql-test/suite/parts/r/partition_datetime_myisam.result b/mysql-test/suite/parts/r/partition_datetime_myisam.result
index 7e05d368cf8..4bb182281c4 100644
--- a/mysql-test/suite/parts/r/partition_datetime_myisam.result
+++ b/mysql-test/suite/parts/r/partition_datetime_myisam.result
@@ -1,23 +1,15 @@
create table t1 (a timestamp not null, primary key(a)) engine='MyISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59');
select * from t1;
a
@@ -281,24 +273,16 @@ a
drop table t4;
create table t1 (a date not null, primary key(a)) engine='MyISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` date NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values ('1975-01-01'), ('2020-12-31'), ('1980-10-14'), ('2000-06-15');
select * from t1;
a
@@ -608,24 +592,16 @@ a
drop table t4;
create table t1 (a time not null, primary key(a)) engine='MyISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` time NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values ('21:21:21'), ('12:10:30'), ('03:03:03'), ('23:59');
select * from t1;
a
@@ -1073,24 +1049,16 @@ a
drop table t4;
create table t1 (a datetime not null, primary key(a)) engine='MyISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` datetime NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59');
select * from t1;
a
@@ -1350,24 +1318,16 @@ a
drop table t4;
create table t1 (a year not null, primary key(a)) engine='MyISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` year(4) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values ('1975'), (2020), ('1980'), ('2000');
select * from t1;
a
diff --git a/mysql-test/suite/parts/r/partition_decimal_innodb.result b/mysql-test/suite/parts/r/partition_decimal_innodb.result
index c0a165cf189..3aede5bb09b 100644
--- a/mysql-test/suite/parts/r/partition_decimal_innodb.result
+++ b/mysql-test/suite/parts/r/partition_decimal_innodb.result
@@ -1,23 +1,15 @@
create table t1 (a decimal(10,4) not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` decimal(10,4) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (999999.9999), (-999999.9999), (123456.7899), (-123456.7899), (-1.5), (1), (0), (-1), (1.5), (1234.567), (-1234.567);
select * from t1;
a
diff --git a/mysql-test/suite/parts/r/partition_decimal_myisam.result b/mysql-test/suite/parts/r/partition_decimal_myisam.result
index 4d06f4d7b38..4ed9b94d008 100644
--- a/mysql-test/suite/parts/r/partition_decimal_myisam.result
+++ b/mysql-test/suite/parts/r/partition_decimal_myisam.result
@@ -1,23 +1,15 @@
create table t1 (a decimal(10,4) not null, primary key(a)) engine='MYISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` decimal(10,4) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (999999.9999), (-999999.9999), (123456.7899), (-123456.7899), (-1.5), (1), (0), (-1), (1.5), (1234.567), (-1234.567);
select * from t1;
a
diff --git a/mysql-test/suite/parts/r/partition_engine_innodb.result b/mysql-test/suite/parts/r/partition_engine_innodb.result
index 04a5a492269..4aad4c3c36a 100644
--- a/mysql-test/suite/parts/r/partition_engine_innodb.result
+++ b/mysql-test/suite/parts/r/partition_engine_innodb.result
@@ -473,16 +473,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -927,16 +927,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -1380,16 +1380,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -1416,445 +1416,7 @@ PARTITION BY HASH(f_int1)
( PARTITION part1 STORAGE ENGINE = 'InnoDB',
PARTITION part2
);
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION part1 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB) */
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
+ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
CREATE TABLE t1 (
f_int1 INTEGER,
f_int2 INTEGER,
@@ -1866,445 +1428,7 @@ PARTITION BY HASH(f_int1)
( PARTITION part1 ,
PARTITION part2 STORAGE ENGINE = 'InnoDB'
);
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION part1 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB) */
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
+ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
CREATE TABLE t1 (
f_int1 INTEGER,
f_int2 INTEGER,
@@ -2321,443 +1445,24 @@ PARTITION part2 VALUES LESS THAN (2147483646)
(SUBPARTITION subpart21 STORAGE ENGINE = 'InnoDB',
SUBPARTITION subpart22 STORAGE ENGINE = 'InnoDB')
);
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int1) (PARTITION part1 VALUES LESS THAN (10) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (2147483646) (SUBPARTITION subpart21 ENGINE = InnoDB, SUBPARTITION subpart22 ENGINE = InnoDB)) */
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-ERROR HY000: Table has no partition for value 2147483647
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be able to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair note The storage engine for the table doesn't support repair
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
+ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+)
+PARTITION BY RANGE(f_int1)
+SUBPARTITION BY HASH(f_int1)
+( PARTITION part1 VALUES LESS THAN (10)
+(SUBPARTITION subpart11 STORAGE ENGINE = 'InnoDB',
+SUBPARTITION subpart12 STORAGE ENGINE = 'InnoDB'),
+PARTITION part2 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart21,
+SUBPARTITION subpart22 )
+);
+ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
CREATE TABLE t1 (
f_int1 INTEGER,
f_int2 INTEGER,
@@ -2765,6 +1470,7 @@ f_char1 CHAR(20),
f_char2 CHAR(20),
f_charbig VARCHAR(1000)
)
+ENGINE = 'InnoDB'
PARTITION BY RANGE(f_int1)
SUBPARTITION BY HASH(f_int1)
( PARTITION part1 VALUES LESS THAN (10)
@@ -3190,16 +1896,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -3224,6 +1930,41 @@ f_charbig VARCHAR(1000)
)
PARTITION BY RANGE(f_int1)
SUBPARTITION BY HASH(f_int1)
+( PARTITION part1 VALUES LESS THAN (10)
+(SUBPARTITION subpart11,
+SUBPARTITION subpart12),
+PARTITION part2 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart21 STORAGE ENGINE = 'InnoDB',
+SUBPARTITION subpart22 STORAGE ENGINE = 'InnoDB')
+);
+ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+)
+ENGINE = 'InnoDB'
+PARTITION BY RANGE(f_int1)
+SUBPARTITION BY HASH(f_int1)
+( PARTITION part1 VALUES LESS THAN (10) ENGINE = 'InnoDB'
+(SUBPARTITION subpart11,
+SUBPARTITION subpart12),
+PARTITION part2 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart21,
+SUBPARTITION subpart22 STORAGE ENGINE = 'InnoDB')
+);
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+)
+PARTITION BY RANGE(f_int1)
+SUBPARTITION BY HASH(f_int1)
( PARTITION part1 VALUES LESS THAN (10) ENGINE = 'InnoDB'
(SUBPARTITION subpart11,
SUBPARTITION subpart12),
@@ -3647,16 +2388,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -3681,7 +2422,7 @@ SUBPARTITION BY HASH(f_int1)
(SUBPARTITION subpart11 STORAGE ENGINE = 'InnoDB',
SUBPARTITION subpart12 STORAGE ENGINE = 'InnoDB'),
PARTITION part2 VALUES LESS THAN (2147483646) ENGINE = 'InnoDB'
-(SUBPARTITION subpart21,
+(SUBPARTITION subpart21 ENGINE = 'InnoDB',
SUBPARTITION subpart22)
);
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
@@ -4100,16 +2841,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -4555,16 +3296,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -5008,16 +3749,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -5031,6 +3772,7 @@ TRUNCATE t1;
DROP TABLE t1;
# 6.2 Storage engine assignment after partition name + after
# subpartition name
+# in partition part + in sub partition part
CREATE TABLE t1 (
f_int1 INTEGER,
f_int2 INTEGER,
@@ -5463,16 +4205,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -5914,16 +4656,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
@@ -6363,16 +5105,16 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
diff --git a/mysql-test/suite/parts/r/partition_engine_myisam.result b/mysql-test/suite/parts/r/partition_engine_myisam.result
index f81becc6eea..2dfea58995e 100644
--- a/mysql-test/suite/parts/r/partition_engine_myisam.result
+++ b/mysql-test/suite/parts/r/partition_engine_myisam.result
@@ -483,20 +483,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -947,20 +947,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -1414,20 +1414,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -1450,455 +1450,7 @@ PARTITION BY HASH(f_int1)
( PARTITION part1 STORAGE ENGINE = 'MyISAM',
PARTITION part2
);
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION part1 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
+ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
CREATE TABLE t1 (
f_int1 INTEGER,
f_int2 INTEGER,
@@ -1910,455 +1462,7 @@ PARTITION BY HASH(f_int1)
( PARTITION part1 ,
PARTITION part2 STORAGE ENGINE = 'MyISAM'
);
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION part1 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-
-# check single-7 success: 1
-DELETE FROM t1 WHERE f_charbig = '#2147483647##';
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
+ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
CREATE TABLE t1 (
f_int1 INTEGER,
f_int2 INTEGER,
@@ -2375,457 +1479,24 @@ PARTITION part2 VALUES LESS THAN (2147483646)
(SUBPARTITION subpart21 STORAGE ENGINE = 'MyISAM',
SUBPARTITION subpart22 STORAGE ENGINE = 'MyISAM')
);
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
-# Start usability test (inc/partition_check.inc)
-create_command
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `f_int1` int(11) DEFAULT NULL,
- `f_int2` int(11) DEFAULT NULL,
- `f_char1` char(20) DEFAULT NULL,
- `f_char2` char(20) DEFAULT NULL,
- `f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int1) (PARTITION part1 VALUES LESS THAN (10) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (2147483646) (SUBPARTITION subpart21 ENGINE = MyISAM, SUBPARTITION subpart22 ENGINE = MyISAM)) */
-
-unified filelist
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD
-$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI
-$MYSQLTEST_VARDIR/master-data/test/t1.frm
-$MYSQLTEST_VARDIR/master-data/test/t1.par
-
-# check prerequisites-1 success: 1
-# check COUNT(*) success: 1
-# check MIN/MAX(f_int1) success: 1
-# check MIN/MAX(f_int2) success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'delete me' FROM t0_template
-WHERE f_int1 IN (2,3);
-# check prerequisites-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'delete me';
-# INFO: Neither f_int1 nor f_int2 nor (f_int1,f_int2) is UNIQUE
-# check read via f_int1 success: 1
-# check read via f_int2 success: 1
-
-# check multiple-1 success: 1
-DELETE FROM t1 WHERE MOD(f_int1,3) = 0;
-
-# check multiple-2 success: 1
-INSERT INTO t1 SELECT * FROM t0_template
-WHERE MOD(f_int1,3) = 0;
-
-# check multiple-3 success: 1
-UPDATE t1 SET f_int1 = f_int1 + @max_row
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4
-AND @max_row_div2 + @max_row_div4;
-
-# check multiple-4 success: 1
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - @max_row_div4 + @max_row
-AND @max_row_div2 + @max_row_div4 + @max_row;
-
-# check multiple-5 success: 1
-SELECT MIN(f_int1) - 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-1 success: 1
-SELECT MAX(f_int1) + 1 INTO @cur_value FROM t1;
-INSERT INTO t1
-SET f_int1 = @cur_value , f_int2 = @cur_value,
-f_char1 = CAST(@cur_value AS CHAR), f_char2 = CAST(@cur_value AS CHAR),
-f_charbig = '#SINGLE#';
-
-# check single-2 success: 1
-SELECT MIN(f_int1) INTO @cur_value1 FROM t1;
-SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value2
-WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#';
-
-# check single-3 success: 1
-SET @cur_value1= -1;
-SELECT MAX(f_int1) INTO @cur_value2 FROM t1;
-UPDATE t1 SET f_int1 = @cur_value1
-WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#';
-
-# check single-4 success: 1
-SELECT MAX(f_int1) INTO @cur_value FROM t1;
-DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#';
-
-# check single-5 success: 1
-DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#';
-
-# check single-6 success: 1
-INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#2147483647##';
-ERROR HY000: Table has no partition for value 2147483647
-DELETE FROM t1 WHERE f_int1 IS NULL OR f_int1 = 0;
-INSERT t1 SET f_int1 = 0 , f_int2 = 0,
-f_char1 = CAST(0 AS CHAR), f_char2 = CAST(0 AS CHAR),
-f_charbig = '#NULL#';
-INSERT INTO t1
-SET f_int1 = NULL , f_int2 = -@max_row,
-f_char1 = CAST(-@max_row AS CHAR), f_char2 = CAST(-@max_row AS CHAR),
-f_charbig = '#NULL#';
-# check null success: 1
-
-# check null-1 success: 1
-UPDATE t1 SET f_int1 = -@max_row
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-2 success: 1
-UPDATE t1 SET f_int1 = NULL
-WHERE f_int1 = -@max_row AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-3 success: 1
-DELETE FROM t1
-WHERE f_int1 IS NULL AND f_int2 = -@max_row AND f_char1 = CAST(-@max_row AS CHAR)
-AND f_char2 = CAST(-@max_row AS CHAR) AND f_charbig = '#NULL#';
-
-# check null-4 success: 1
-DELETE FROM t1
-WHERE f_int1 = 0 AND f_int2 = 0
-AND f_char1 = CAST(0 AS CHAR) AND f_char2 = CAST(0 AS CHAR)
-AND f_charbig = '#NULL#';
-SET AUTOCOMMIT= 0;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-1 success: 1
-COMMIT WORK;
-
-# check transactions-2 success: 1
-ROLLBACK WORK;
-
-# check transactions-3 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-ROLLBACK WORK;
-
-# check transactions-4 success: 1
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, '', '', 'was inserted'
-FROM t0_template source_tab
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-
-# check transactions-5 success: 1
-ROLLBACK WORK;
-Warnings:
-Warning 1196 Some non-transactional changed tables couldn't be rolled back
-
-# check transactions-6 success: 1
-# INFO: Storage engine used for t1 seems to be not transactional.
-COMMIT;
-
-# check transactions-7 success: 1
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-SET @@session.sql_mode = 'traditional';
-SELECT @max_row_div2 + @max_row_div4 - @max_row_div4 + 1 INTO @exp_inserted_rows;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT IF(f_int1 = @max_row_div2,f_int1 / 0,f_int1),f_int1,
-'', '', 'was inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div4 AND @max_row_div2 + @max_row_div4;
-ERROR 22012: Division by 0
-COMMIT;
-
-# check transactions-8 success: 1
-# INFO: Storage engine used for t1 seems to be unable to revert
-# changes made by the failing statement.
-SET @@session.sql_mode = '';
-SET AUTOCOMMIT= 1;
-DELETE FROM t1 WHERE f_charbig = 'was inserted';
-COMMIT WORK;
-UPDATE t1 SET f_charbig = REPEAT('b', 1000);
-
-# check special-1 success: 1
-UPDATE t1 SET f_charbig = '';
-
-# check special-2 success: 1
-UPDATE t1 SET f_charbig = CONCAT('===',CAST(f_int1 AS CHAR),'===');
-INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-1 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER INSERT ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT f_int1,f_int2,f_char1,f_char2,NULL FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-
-# check trigger-2 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-3 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-4 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = new.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-5 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER UPDATE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-6 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 BEFORE DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-7 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-INSERT INTO t0_aux(f_int1,f_int2,f_char1,f_char2,f_charbig)
-SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR),
-'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW
-BEGIN
-UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2,
-f_charbig = 'updated by trigger'
- WHERE f_int1 = - old.f_int1;
-END|
-DELETE FROM t0_aux
-WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1));
-
-# check trigger-8 success: 1
-DROP TRIGGER trg_1;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = 'just inserted'
- WHERE f_int1 <> CAST(f_char1 AS SIGNED INT);
-DELETE FROM t0_aux
-WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-DELETE FROM t1
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1;
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = old.f_int1 + @max_row,
-new.f_int2 = old.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-9 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_2 BEFORE UPDATE ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = new.f_int1 + @max_row,
-new.f_int2 = new.f_int2 - @max_row,
-new.f_charbig = '####updated per update trigger####';
-END|
-UPDATE t1
-SET f_int1 = f_int1 + @max_row, f_int2 = f_int2 - @max_row,
-f_charbig = '####updated per update statement itself####';
-
-# check trigger-10 success: 1
-DROP TRIGGER trg_2;
-UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT),
-f_int2 = CAST(f_char1 AS SIGNED INT),
-f_charbig = CONCAT('===',f_char1,'===');
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
-SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-11 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-CREATE TRIGGER trg_3 BEFORE INSERT ON t1 FOR EACH ROW
-BEGIN
-SET new.f_int1 = @my_max1 + @counter,
-new.f_int2 = @my_min2 - @counter,
-new.f_charbig = '####updated per insert trigger####';
-SET @counter = @counter + 1;
-END|
-SET @counter = 1;
-SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
-INSERT INTO t1 (f_char1, f_char2, f_charbig)
-SELECT CAST(f_int1 AS CHAR),
-CAST(f_int1 AS CHAR), 'just inserted' FROM t0_template
-WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1
-ORDER BY f_int1;
-DROP TRIGGER trg_3;
-
-# check trigger-12 success: 1
-DELETE FROM t1
-WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
-AND f_int2 <> CAST(f_char1 AS SIGNED INT)
-AND f_charbig = '####updated per insert trigger####';
-ANALYZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 analyze status OK
-CHECK TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-CHECKSUM TABLE t1 EXTENDED;
-Table Checksum
-test.t1 <some_value>
-OPTIMIZE TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 optimize status OK
-# check layout success: 1
-REPAIR TABLE t1 EXTENDED;
-Table Op Msg_type Msg_text
-test.t1 repair status OK
-# check layout success: 1
-TRUNCATE t1;
-
-# check TRUNCATE success: 1
-# check layout success: 1
-# End usability test (inc/partition_check.inc)
-DROP TABLE t1;
+ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+)
+PARTITION BY RANGE(f_int1)
+SUBPARTITION BY HASH(f_int1)
+( PARTITION part1 VALUES LESS THAN (10)
+(SUBPARTITION subpart11 STORAGE ENGINE = 'MyISAM',
+SUBPARTITION subpart12 STORAGE ENGINE = 'MyISAM'),
+PARTITION part2 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart21,
+SUBPARTITION subpart22 )
+);
+ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
CREATE TABLE t1 (
f_int1 INTEGER,
f_int2 INTEGER,
@@ -2833,6 +1504,7 @@ f_char1 CHAR(20),
f_char2 CHAR(20),
f_charbig VARCHAR(1000)
)
+ENGINE = 'MyISAM'
PARTITION BY RANGE(f_int1)
SUBPARTITION BY HASH(f_int1)
( PARTITION part1 VALUES LESS THAN (10)
@@ -3272,20 +1944,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -3306,6 +1978,41 @@ f_charbig VARCHAR(1000)
)
PARTITION BY RANGE(f_int1)
SUBPARTITION BY HASH(f_int1)
+( PARTITION part1 VALUES LESS THAN (10)
+(SUBPARTITION subpart11,
+SUBPARTITION subpart12),
+PARTITION part2 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart21 STORAGE ENGINE = 'MyISAM',
+SUBPARTITION subpart22 STORAGE ENGINE = 'MyISAM')
+);
+ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+)
+ENGINE = 'MyISAM'
+PARTITION BY RANGE(f_int1)
+SUBPARTITION BY HASH(f_int1)
+( PARTITION part1 VALUES LESS THAN (10) ENGINE = 'MyISAM'
+(SUBPARTITION subpart11,
+SUBPARTITION subpart12),
+PARTITION part2 VALUES LESS THAN (2147483646)
+(SUBPARTITION subpart21,
+SUBPARTITION subpart22 STORAGE ENGINE = 'MyISAM')
+);
+DROP TABLE t1;
+CREATE TABLE t1 (
+f_int1 INTEGER,
+f_int2 INTEGER,
+f_char1 CHAR(20),
+f_char2 CHAR(20),
+f_charbig VARCHAR(1000)
+)
+PARTITION BY RANGE(f_int1)
+SUBPARTITION BY HASH(f_int1)
( PARTITION part1 VALUES LESS THAN (10) ENGINE = 'MyISAM'
(SUBPARTITION subpart11,
SUBPARTITION subpart12),
@@ -3743,20 +2450,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -3777,7 +2484,7 @@ SUBPARTITION BY HASH(f_int1)
(SUBPARTITION subpart11 STORAGE ENGINE = 'MyISAM',
SUBPARTITION subpart12 STORAGE ENGINE = 'MyISAM'),
PARTITION part2 VALUES LESS THAN (2147483646) ENGINE = 'MyISAM'
-(SUBPARTITION subpart21,
+(SUBPARTITION subpart21 ENGINE = 'MyISAM',
SUBPARTITION subpart22)
);
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
@@ -4210,20 +2917,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -4675,20 +3382,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -5142,20 +3849,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -5165,6 +3872,7 @@ TRUNCATE t1;
DROP TABLE t1;
# 6.2 Storage engine assignment after partition name + after
# subpartition name
+# in partition part + in sub partition part
CREATE TABLE t1 (
f_int1 INTEGER,
f_int2 INTEGER,
@@ -5611,20 +4319,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -6070,20 +4778,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
@@ -6529,20 +5237,20 @@ AND f_int2 <> CAST(f_char1 AS SIGNED INT)
AND f_charbig = '####updated per insert trigger####';
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 analyze status OK
+test.t1 analyze note The storage engine for the table doesn't support analyze
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 <some_value>
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
-test.t1 optimize status OK
+test.t1 optimize note The storage engine for the table doesn't support optimize
# check layout success: 1
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 repair status OK
+test.t1 repair note The storage engine for the table doesn't support repair
# check layout success: 1
TRUNCATE t1;
diff --git a/mysql-test/suite/parts/r/partition_float_innodb.result b/mysql-test/suite/parts/r/partition_float_innodb.result
index c203fabfd87..8e1e1b51efd 100644
--- a/mysql-test/suite/parts/r/partition_float_innodb.result
+++ b/mysql-test/suite/parts/r/partition_float_innodb.result
@@ -1,23 +1,15 @@
create table t1 (a float not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` float NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (-3.402823466E+38), (3.402823466E+38), (-1.5), (-1), (0), (1), (1.5);
select * from t1;
a
@@ -91,24 +83,16 @@ count(*)
drop table t2;
create table t1 (a double not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` double NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (-2.2250738585072014E+208), (-2.2250738585072014E-208), (-1.5), (-1), (0), (1.5), (1234.567), (2.2250738585072014E+208);
select * from t1;
a
diff --git a/mysql-test/suite/parts/r/partition_float_myisam.result b/mysql-test/suite/parts/r/partition_float_myisam.result
index 13881548473..9abd0fb11cd 100644
--- a/mysql-test/suite/parts/r/partition_float_myisam.result
+++ b/mysql-test/suite/parts/r/partition_float_myisam.result
@@ -1,23 +1,15 @@
create table t1 (a float not null, primary key(a)) engine='MYISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` float NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (-3.402823466E+38), (3.402823466E+38), (-1.5), (-1), (0), (1), (1.5);
select * from t1;
a
@@ -91,24 +83,16 @@ count(*)
drop table t2;
create table t1 (a double not null, primary key(a)) engine='MYISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` double NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (-2.2250738585072014E+208), (-2.2250738585072014E-208), (-1.5), (-1), (0), (1.5), (1234.567), (2.2250738585072014E+208);
select * from t1;
a
diff --git a/mysql-test/suite/parts/r/partition_int_innodb.result b/mysql-test/suite/parts/r/partition_int_innodb.result
index 8bc095b2886..9f1712e141e 100644
--- a/mysql-test/suite/parts/r/partition_int_innodb.result
+++ b/mysql-test/suite/parts/r/partition_int_innodb.result
@@ -1,23 +1,15 @@
create table t1 (a tinyint unsigned not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` tinyint(3) unsigned NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (255), (254), (253), (252), (1), (2), (128);
select * from t1;
a
@@ -108,24 +100,16 @@ a
drop table t3;
create table t1 (a smallint unsigned not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (65535), (65534), (65533), (65532), (1), (2), (256);
select * from t1;
a
@@ -216,24 +200,16 @@ a
drop table t3;
create table t1 (a int unsigned not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(10) unsigned NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (4294967295), (4294967294), (4294967293), (4294967292), (1), (2), (65535);
select * from t1;
a
@@ -324,24 +300,16 @@ a
drop table t3;
create table t1 (a mediumint unsigned not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` mediumint(8) unsigned NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (16777215), (16777214), (16777213), (16777212), (1), (2), (65535);
select * from t1;
a
@@ -432,24 +400,16 @@ a
drop table t3;
create table t1 (a bigint unsigned not null, primary key(a)) engine='InnoDB'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE), (18446744073709551613), (18446744073709551612), (1), (2), (65535);
select * from t1;
a
diff --git a/mysql-test/suite/parts/r/partition_int_myisam.result b/mysql-test/suite/parts/r/partition_int_myisam.result
index 7f16cdb207a..1e0ba724f4c 100644
--- a/mysql-test/suite/parts/r/partition_int_myisam.result
+++ b/mysql-test/suite/parts/r/partition_int_myisam.result
@@ -1,23 +1,15 @@
create table t1 (a tinyint unsigned not null, primary key(a)) engine='MYISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` tinyint(3) unsigned NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (255), (254), (253), (252), (1), (2), (128);
select * from t1;
a
@@ -108,24 +100,16 @@ a
drop table t3;
create table t1 (a smallint unsigned not null, primary key(a)) engine='MYISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (65535), (65534), (65533), (65532), (1), (2), (256);
select * from t1;
a
@@ -216,24 +200,16 @@ a
drop table t3;
create table t1 (a int unsigned not null, primary key(a)) engine='MYISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(10) unsigned NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (4294967295), (4294967294), (4294967293), (4294967292), (1), (2), (65535);
select * from t1;
a
@@ -324,24 +300,16 @@ a
drop table t3;
create table t1 (a mediumint unsigned not null, primary key(a)) engine='MYISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` mediumint(8) unsigned NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (16777215), (16777214), (16777213), (16777212), (1), (2), (65535);
select * from t1;
a
@@ -432,24 +400,16 @@ a
drop table t3;
create table t1 (a bigint unsigned not null, primary key(a)) engine='MYISAM'
partition by key (a) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE), (18446744073709551613), (18446744073709551612), (1), (2), (65535);
select * from t1;
a
diff --git a/mysql-test/suite/parts/r/partition_special_innodb.result b/mysql-test/suite/parts/r/partition_special_innodb.result
index 4b139bb0f9e..fa1d2eb9994 100644
--- a/mysql-test/suite/parts/r/partition_special_innodb.result
+++ b/mysql-test/suite/parts/r/partition_special_innodb.result
@@ -1,17 +1,9 @@
create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w'), primary key(a,b,c,d)) engine='InnoDB'
partition by key (a,b,c,d) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -20,7 +12,7 @@ t1 CREATE TABLE `t1` (
`c` varchar(50) NOT NULL,
`d` enum('m','w') NOT NULL DEFAULT 'm',
PRIMARY KEY (`a`,`b`,`c`,`d`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a,b,c,d) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a,b,c,d) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values
('1975-01-01', 'abcde', 'abcde','m'),
('1983-12-31', 'cdef', 'srtbvsr', 'w'),
@@ -40,18 +32,10 @@ a b c d
drop table t1;
create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h)) engine='InnoDB'
partition by key(a,b,c,d,e,f,g,h) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -65,7 +49,7 @@ t1 CREATE TABLE `t1` (
`h` tinyint(4) NOT NULL,
`i` char(255) DEFAULT NULL,
PRIMARY KEY (`a`,`b`,`c`,`d`,`e`,`f`,`g`,`h`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values
('1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113, 'tbhth nrzh ztfghgfh fzh ftzhj fztjh'),
('1983-12-31', 'cdef', 'srtbvsr', 'w', 45634, 13452.56, 3452346456, 127, 'liuugbzvdmrlti b itiortudirtfgtibm dfi'),
@@ -85,18 +69,10 @@ a b c d e f g h i
drop table t1;
create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1)) engine='InnoDB'
partition by key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -118,7 +94,7 @@ t1 CREATE TABLE `t1` (
`h1` tinyint(4) NOT NULL,
`i` char(255) DEFAULT NULL,
PRIMARY KEY (`a`,`b`,`c`,`d`,`e`,`f`,`g`,`h`,`a1`,`b1`,`c1`,`d1`,`e1`,`f1`,`g1`,`h1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values
('1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113,'1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113, 'tbhth nrzh ztfghgfh fzh ftzhj fztjh'),
('1983-12-31', 'cdef', 'srtbvsr', 'w', 45634, 13452.56, 3452346456, 127,'1983-12-31', 'cdef', 'srtbvsr', 'w', 45634, 13452.56, 3452346456, 127, 'liuugbzvdmrlti b itiortudirtfgtibm dfi'),
@@ -138,33 +114,17 @@ a b c d e f g h a1 b1 c1 d1 e1 f1 g1 h1 i
drop table t1;
create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3)) engine='InnoDB'
partition by key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
ERROR 42000: Too many key parts specified; max 16 parts allowed
create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1)) engine='InnoDB'
partition by key(a,b,c,d,e,f,g,h) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -202,7 +162,7 @@ t1 CREATE TABLE `t1` (
`h3` tinyint(4) NOT NULL,
`i` char(255) DEFAULT NULL,
PRIMARY KEY (`a`,`b`,`c`,`d`,`e`,`f`,`g`,`h`,`a1`,`b1`,`c1`,`d1`,`e1`,`f1`,`g1`,`h1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values
('1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113,'1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113,'1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113, '1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113, 'tbhth nrzh ztfghgfh fzh ftzhj fztjh'),
('1983-12-31', 'cdef', 'srtbvsr', 'w', 45634, 13452.56, 3452346456, 127,'1983-12-31', 'cdef', 'srtbvsr', 'w', 45634, 13452.56, 3452346456, 127, '1983-12-31', 'cdef', 'srtbvsr', 'w', 45634, 13452.56, 3452346456, 127, '1983-12-31', 'cdef', 'srtbvsr', 'w', 45634, 13452.56, 3452346456, 127, 'liuugbzvdmrlti b itiortudirtfgtibm dfi'),
diff --git a/mysql-test/suite/parts/r/partition_special_myisam.result b/mysql-test/suite/parts/r/partition_special_myisam.result
index 85e6d5445fd..f0a66ac847f 100644
--- a/mysql-test/suite/parts/r/partition_special_myisam.result
+++ b/mysql-test/suite/parts/r/partition_special_myisam.result
@@ -1,17 +1,9 @@
create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w'), primary key(a,b,c,d)) engine='MyISAM'
partition by key (a,b,c,d) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -20,7 +12,7 @@ t1 CREATE TABLE `t1` (
`c` varchar(50) NOT NULL,
`d` enum('m','w') NOT NULL DEFAULT 'm',
PRIMARY KEY (`a`,`b`,`c`,`d`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a,b,c,d) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a,b,c,d) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values
('1975-01-01', 'abcde', 'abcde','m'),
('1983-12-31', 'cdef', 'srtbvsr', 'w'),
@@ -40,18 +32,10 @@ a b c d
drop table t1;
create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h)) engine='MyISAM'
partition by key(a,b,c,d,e,f,g,h) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -65,7 +49,7 @@ t1 CREATE TABLE `t1` (
`h` tinyint(4) NOT NULL,
`i` char(255) DEFAULT NULL,
PRIMARY KEY (`a`,`b`,`c`,`d`,`e`,`f`,`g`,`h`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values
('1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113, 'tbhth nrzh ztfghgfh fzh ftzhj fztjh'),
('1983-12-31', 'cdef', 'srtbvsr', 'w', 45634, 13452.56, 3452346456, 127, 'liuugbzvdmrlti b itiortudirtfgtibm dfi'),
@@ -85,18 +69,10 @@ a b c d e f g h i
drop table t1;
create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1)) engine='MyISAM'
partition by key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -118,7 +94,7 @@ t1 CREATE TABLE `t1` (
`h1` tinyint(4) NOT NULL,
`i` char(255) DEFAULT NULL,
PRIMARY KEY (`a`,`b`,`c`,`d`,`e`,`f`,`g`,`h`,`a1`,`b1`,`c1`,`d1`,`e1`,`f1`,`g1`,`h1`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values
('1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113,'1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113, 'tbhth nrzh ztfghgfh fzh ftzhj fztjh'),
('1983-12-31', 'cdef', 'srtbvsr', 'w', 45634, 13452.56, 3452346456, 127,'1983-12-31', 'cdef', 'srtbvsr', 'w', 45634, 13452.56, 3452346456, 127, 'liuugbzvdmrlti b itiortudirtfgtibm dfi'),
@@ -138,33 +114,17 @@ a b c d e f g h a1 b1 c1 d1 e1 f1 g1 h1 i
drop table t1;
create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3)) engine='MyISAM'
partition by key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
ERROR 42000: Too many key parts specified; max 16 parts allowed
create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1)) engine='MyISAM'
partition by key(a,b,c,d,e,f,g,h) (
-partition pa1 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=20 min_rows=2,
-partition pa2 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=3,
-partition pa3 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=30 min_rows=4,
-partition pa4 DATA DIRECTORY =
-'/tmp' INDEX DIRECTORY =
-'/tmp' max_rows=40 min_rows=2);
+partition pa1 max_rows=20 min_rows=2,
+partition pa2 max_rows=30 min_rows=3,
+partition pa3 max_rows=30 min_rows=4,
+partition pa4 max_rows=40 min_rows=2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -202,7 +162,7 @@ t1 CREATE TABLE `t1` (
`h3` tinyint(4) NOT NULL,
`i` char(255) DEFAULT NULL,
PRIMARY KEY (`a`,`b`,`c`,`d`,`e`,`f`,`g`,`h`,`a1`,`b1`,`c1`,`d1`,`e1`,`f1`,`g1`,`h1`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values
('1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113,'1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113,'1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113, '1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113, 'tbhth nrzh ztfghgfh fzh ftzhj fztjh'),
('1983-12-31', 'cdef', 'srtbvsr', 'w', 45634, 13452.56, 3452346456, 127,'1983-12-31', 'cdef', 'srtbvsr', 'w', 45634, 13452.56, 3452346456, 127, '1983-12-31', 'cdef', 'srtbvsr', 'w', 45634, 13452.56, 3452346456, 127, '1983-12-31', 'cdef', 'srtbvsr', 'w', 45634, 13452.56, 3452346456, 127, 'liuugbzvdmrlti b itiortudirtfgtibm dfi'),
diff --git a/mysql-test/suite/parts/t/disabled.def b/mysql-test/suite/parts/t/disabled.def
index 97dce441cc2..408a624e707 100644
--- a/mysql-test/suite/parts/t/disabled.def
+++ b/mysql-test/suite/parts/t/disabled.def
@@ -7,19 +7,14 @@ part_supported_sql_func_ndb : cannot create t1
partition_alter1_ndb : timeout. Needs too much time.
partition_alter2_ndb : cannot create t1
partition_basic_ndb : cannot create t1
-partition_bit_myisam : BUG#34225 2008-02-02 mats test suit parts uses /tmp-dir instead of mysql-test dir, which causes failures
partition_bit_ndb : cannot create t1
-partition_char_myisam : BUG#34225 2008-02-02 mats test suit parts uses /tmp-dir instead of mysql-test dir, which causes failures
-partition_datetime_myisam : BUG#34225 2008-02-02 mats test suit parts uses /tmp-dir instead of mysql-test dir, which causes failures
-partition_decimal_myisam : BUG#34225 2008-02-02 mats test suit parts uses /tmp-dir instead of mysql-test dir, which causes failures
partition_engine_ndb : cannot create t1
-partition_float_myisam : BUG#34225 2008-02-02 mats test suit parts uses /tmp-dir instead of mysql-test dir, which causes failures
-partition_int_myisam : BUG#34225 2008-02-02 mats test suit parts uses /tmp-dir instead of mysql-test dir, which causes failures
partition_int_ndb : cannot create t1
partition_sessions : needs system_3_init.inc
-partition_special_myisam : BUG#34225 2008-02-02 mats test suit parts uses /tmp-dir instead of mysql-test dir, which causes failures
partition_syntax_ndb : cannot create t1
partition_value_innodb : Bug#30581 partition_value tests use disallowed CAST() function
partition_value_myisam : Bug#30581 partition_value tests use disallowed CAST() function
partition_value_ndb : cannot create t1
rpl_ndb_dd_partitions : cannot create t1
+partition_alter4_myisam : Bug#20129 / WL#4176
+partition_alter4_innodb : Bug#20129 / WL#4176
diff --git a/mysql-test/suite/parts/t/ndb_partition_key.test b/mysql-test/suite/parts/t/ndb_partition_key.test
index fb0581eb6f6..36a8a1863aa 100644
--- a/mysql-test/suite/parts/t/ndb_partition_key.test
+++ b/mysql-test/suite/parts/t/ndb_partition_key.test
@@ -75,6 +75,14 @@ drop table t1;
CREATE TABLE t1 (a int not null primary key);
ALTER TABLE t1
+ENGINE = NDB
+PARTITION BY KEY(a)
+(PARTITION p0 ENGINE = NDB, PARTITION p1 ENGINE = NDB);
+
+drop table t1;
+
+CREATE TABLE t1 (a int not null primary key) ENGINE = NDB;
+ALTER TABLE t1
PARTITION BY KEY(a)
(PARTITION p0 ENGINE = NDB, PARTITION p1 ENGINE = NDB);
@@ -112,7 +120,9 @@ show create table t1;
alter table t1 remove partitioning;
show create table t1;
---error ER_MIX_HANDLER_ERROR
+#--error ER_MIX_HANDLER_ERROR
+# after fixing bug#31931 this works
+# since it already have ndb on table level
alter table t1
partition by key(a)
(partition p0 engine=ndb, partition p1);
diff --git a/mysql-test/suite/parts/t/partition_basic_innodb.test b/mysql-test/suite/parts/t/partition_basic_innodb.test
index 2c3e172014c..d3d5916886b 100644
--- a/mysql-test/suite/parts/t/partition_basic_innodb.test
+++ b/mysql-test/suite/parts/t/partition_basic_innodb.test
@@ -51,8 +51,8 @@ let $more_pk_ui_tests= 0;
let $engine= 'InnoDB';
##### Execute the test of "table" files
-# InnoDB has no files per PK, UI, ...
-let $do_file_tests= 0;
+# InnoDB has no files per PK, UI, ... But only .frm file
+let $do_file_tests= 1;
##### Execute PRIMARY KEY tests #####
# AFAIK InnoDB clusters the table around PRIMARY KEYs.
diff --git a/mysql-test/suite/parts/t/partition_basic_myisam.test b/mysql-test/suite/parts/t/partition_basic_myisam.test
index c363d06b00a..8d84982335c 100644
--- a/mysql-test/suite/parts/t/partition_basic_myisam.test
+++ b/mysql-test/suite/parts/t/partition_basic_myisam.test
@@ -48,9 +48,6 @@ let $more_pk_ui_tests= 0;
##### Storage engine to be tested
let $engine= 'MyISAM';
-# The server uses in case of MyISAM symlinking (if available) and the expected
-# results fit to symlinking support.
---source include/have_symlink.inc
##### Execute the test of "table" files
# MyISAM has files per PK, UI, ...
diff --git a/mysql-test/suite/parts/t/partition_basic_symlink_innodb.test b/mysql-test/suite/parts/t/partition_basic_symlink_innodb.test
new file mode 100644
index 00000000000..51e6397c018
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_basic_symlink_innodb.test
@@ -0,0 +1,163 @@
+################################################################################
+# t/partition_basic_innodb.test #
+# #
+# Purpose: #
+# Tests around Create Partitioned table using DATA/INDEX DIR #
+# InnoDB branch #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mleich #
+# Original Date: 2006-03-05 #
+# Change Author: mattiasj #
+# Change Date: 2008-02-05 #
+# Change: copied it from partition_basic_innodb.test and kept DATA DIR #
+# Change Author: mattiasj #
+# Change Date: 2008-03-16 #
+# Change: Replaced all test with alter -> myisam, since innodb does not support#
+# DATA/INDEX DIRECTORY #
+################################################################################
+
+# NOTE: Until InnoDB supports DATA/INDEX DIR, test that a partitioned table
+# remembers the DATA/INDEX DIR and it is used if altered to MyISAM
+#
+--echo # Will not run partition_basic_symlink on InnoDB, since it is the same
+--echo # as partition_basic, since InnoDB does not support DATA/INDEX DIR
+--echo # Will only verify that the DATA/INDEX DIR is stored and used if
+--echo # ALTER to MyISAM.
+--source include/have_innodb.inc
+# The server must support partitioning.
+--source include/have_partition.inc
+# The server must support symlink for DATA/INDEX DIRECTORY.
+--source include/have_symlink.inc
+# windows does not support symlink for DATA/INDEX DIRECTORY.
+--source include/not_windows.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+--mkdir $MYSQLTEST_VARDIR/mysql-test-data-dir
+--mkdir $MYSQLTEST_VARDIR/mysql-test-idx-dir
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval CREATE TABLE t1 (c1 INT)
+ENGINE = InnoDB
+PARTITION BY HASH (c1)
+(PARTITION p0
+ DATA DIRECTORY = '$MYSQLTEST_VARDIR/mysql-test-data-dir'
+ INDEX DIRECTORY = '$MYSQLTEST_VARDIR/mysql-test-idx-dir',
+ PARTITION p1
+ DATA DIRECTORY = '$MYSQLTEST_VARDIR/mysql-test-data-dir'
+ INDEX DIRECTORY = '$MYSQLTEST_VARDIR/mysql-test-idx-dir'
+);
+--echo # Verifying .frm and .par files
+--file_exists $MYSQLTEST_VARDIR/master-data/test/t1.frm
+--file_exists $MYSQLTEST_VARDIR/master-data/test/t1.par
+--echo # Verifying that there are no MyISAM files
+--error 1
+--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+--error 1
+--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+--error 1
+--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
+--error 1
+--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
+--error 1
+--file_exists $MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p0.MYD
+--error 1
+--file_exists $MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p0.MYI
+--error 1
+--file_exists $MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p1.MYD
+--error 1
+--file_exists $MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p1.MYI
+FLUSH TABLES;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+SHOW CREATE TABLE t1;
+ALTER TABLE t1 ENGINE = MyISAM;
+--echo # Verifying .frm, .par and MyISAM files (.MYD, MYI)
+--file_exists $MYSQLTEST_VARDIR/master-data/test/t1.frm
+--file_exists $MYSQLTEST_VARDIR/master-data/test/t1.par
+--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
+--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
+--file_exists $MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p0.MYD
+--file_exists $MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p0.MYI
+--file_exists $MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p1.MYD
+--file_exists $MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p1.MYI
+FLUSH TABLES;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+SHOW CREATE TABLE t1;
+DROP TABLE t1;
+--rmdir $MYSQLTEST_VARDIR/mysql-test-data-dir
+--rmdir $MYSQLTEST_VARDIR/mysql-test-idx-dir
+--exit
+# here is the old test, which is tested by partition_basic_innodb
+
+#
+# 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.
+#
+# 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;
+let $with_partitioning= 1;
+
+##### Option, for displaying files #####
+let $ls= 1;
+
+##### Number of rows for the INSERT/UPDATE/DELETE/SELECT experiments #####
+# on partioned tables
+SET @max_row = 20;
+
+##### Execute more tests #####
+let $more_trigger_tests= 0;
+let $more_pk_ui_tests= 0;
+
+# The server must support partitioning.
+--source include/have_partition.inc
+# The server must support symlink for DATA/INDEX DIRECTORY.
+--source include/have_symlink.inc
+# windows does not support symlink for DATA/INDEX DIRECTORY.
+--source include/not_windows.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+
+##### Storage engine to be tested
+--source include/have_innodb.inc
+let $engine= 'InnoDB';
+
+##### Execute the test of "table" files
+# InnoDB has no files per PK, UI, ...
+let $do_file_tests= 0;
+
+##### Execute PRIMARY KEY tests #####
+# AFAIK InnoDB clusters the table around PRIMARY KEYs.
+let $do_pk_tests= 1;
+
+##### Assign a big number smaller than the maximum value for partitions #####
+# and smaller than the maximum value of SIGNED INTEGER
+let $MAX_VALUE= (2147483646);
+
+# Generate the prerequisites ($variables, @variables, tables) needed
+--source suite/parts/inc/partition.pre
+
+##### Workarounds for known open engine specific bugs
+# none
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_basic_symlink.inc
+
+#------------------------------------------------------------------------------#
+# Execute storage engine specific tests
+
+#------------------------------------------------------------------------------#
+# Cleanup
+--source suite/parts/inc/partition_cleanup.inc
diff --git a/mysql-test/suite/parts/t/partition_basic_symlink_myisam.test b/mysql-test/suite/parts/t/partition_basic_symlink_myisam.test
new file mode 100644
index 00000000000..8a12f8e8b39
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_basic_symlink_myisam.test
@@ -0,0 +1,86 @@
+################################################################################
+# t/partition_basic_myisam.test #
+# #
+# Purpose: #
+# Tests around Create Partitioned table using DATA/INDEX DIR #
+# MyISAM branch #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mleich #
+# Original Date: 2006-03-05 #
+# Change Author: mattiasj #
+# Change Date: 2008-02-05 #
+# Change: copied it from partition_basic_myisam.test and kept DATA DIR #
+################################################################################
+
+#
+# NOTE: PLEASE DO NOT ADD NOT MYISAM SPECIFIC TESTCASES HERE !
+# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+# THE SOURCED FILES ONLY.
+#
+# 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;
+let $with_partitioning= 1;
+
+##### Option, for displaying files #####
+let $ls= 1;
+
+##### Number of rows for the INSERT/UPDATE/DELETE/SELECT experiments #####
+# on partioned tables
+SET @max_row = 20;
+
+##### Execute more tests #####
+let $more_trigger_tests= 0;
+let $more_pk_ui_tests= 0;
+
+# The server must support partitioning.
+--source include/have_partition.inc
+# The server must support symlink for DATA/INDEX DIRECTORY.
+--source include/have_symlink.inc
+# windows does not support symlink for DATA/INDEX DIRECTORY.
+--source include/not_windows.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+
+##### Storage engine to be tested
+let $engine= 'MyISAM';
+# The server uses in case of MyISAM symlinking (if available) and the expected
+# results fit to symlinking support.
+--source include/have_symlink.inc
+
+##### Execute the test of "table" files
+# MyISAM has files per PK, UI, ...
+let $do_file_tests= 1;
+
+##### Execute PRIMARY KEY tests #####
+# AFAIK MyISAM treats PRIMARY KEYs like UNIQUE INDEXes
+let $do_pk_tests= 0;
+
+##### Assign a big number smaller than the maximum value for partitions #####
+# and smaller than the maximum value of SIGNED INTEGER
+let $MAX_VALUE= (2147483646);
+
+# Generate the prerequisites ($variables, @variables, tables) needed
+--source suite/parts/inc/partition.pre
+
+##### Workarounds for known open engine specific bugs
+# none
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_basic_symlink.inc
+
+#------------------------------------------------------------------------------#
+# Execute storage engine specific tests
+
+#------------------------------------------------------------------------------#
+# Cleanup
+--source suite/parts/inc/partition_cleanup.inc
diff --git a/mysql-test/suite/parts/t/partition_sessions.test b/mysql-test/suite/parts/t/partition_sessions.test
index ef3c5ef6a97..3d59292bee5 100644
--- a/mysql-test/suite/parts/t/partition_sessions.test
+++ b/mysql-test/suite/parts/t/partition_sessions.test
@@ -27,27 +27,6 @@ f4 datetime;
let $col_access_list = f1,f2,f3,f4 ;
let $col_new_list = new.f1,new.f2,new.f3 new.f4 ;
-#--------------------------------------------------
-# initialize directories for partitions
-#--------------------------------------------------
-
---disable_query_log
-# DATA DIRECTORY
-# Make directory for partition data
---exec mkdir $MYSQLTEST_VARDIR/master-data/tmpdata || true
-eval SET @data_dir = 'DATA DIRECTORY =
-''$MYSQLTEST_VARDIR/master-data/tmpdata''';
-let $data_directory = `select @data_dir`;
-
-#INDEX DIRECTORY
-# Make directory for partition index
---exec mkdir $MYSQLTEST_VARDIR/master-data/tmpindex || true
-eval SET @indx_dir = 'INDEX DIRECTORY =
-''$MYSQLTEST_VARDIR/master-data/tmpindex''';
-let $index_directory = `select @indx_dir`;
---enable_query_log
-
-
#---------------------------------------------------
# Setting the parameters to use during testing
#---------------------------------------------------
@@ -134,16 +113,16 @@ create table test_stat (
# tb3_eng1: key partitioning
#----------------------------------------------------------------------
-#--replace_result $data_directory <data_directory> $index_directory <index_directory> $ENG1 ENG1
+#--replace_result $ENG1 ENG1
eval create table tb3_eng1 (
i1 int NOT NULL auto_increment, primary key (i1),
$column_list
) engine=$ENG1
PARTITION BY KEY (i1) PARTITIONS 4
-(PARTITION part1 $data_directory $index_directory,
-PARTITION part2 $data_directory $index_directory,
-PARTITION part3 $data_directory $index_directory,
-PARTITION part4 $data_directory $index_directory);
+(PARTITION part1,
+PARTITION part2,
+PARTITION part3,
+PARTITION part4);
#--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
eval load data local infile '$MYSQL_TEST_DIR/suite/system_3/data/tb1.txt'
diff --git a/mysql-test/suite/rpl/r/rpl_dual_pos_advance.result b/mysql-test/suite/rpl/r/rpl_dual_pos_advance.result
index 257baa81b74..4c6323a61db 100644
--- a/mysql-test/suite/rpl/r/rpl_dual_pos_advance.result
+++ b/mysql-test/suite/rpl/r/rpl_dual_pos_advance.result
@@ -8,15 +8,53 @@ reset master;
change master to master_host="127.0.0.1",master_port=SLAVE_PORT,master_user="root";
start slave;
create table t1 (n int);
+stop slave;
+create table t2 (n int);
+show tables;
+Tables_in_test
+t1
+t2
+create table t3 (n int) engine=innodb;
+set @a=1;
+insert into t3 values(@a);
+begin;
+insert into t3 values(2);
+insert into t3 values(3);
+commit;
+insert into t3 values(4);
+start slave until master_log_file="slave-bin.000001",master_log_pos=195;
+Warnings:
+Note 1278 It is recommended to use --skip-slave-start when doing step-by-step replication with START SLAVE UNTIL; otherwise, you will get problems if you get an unexpected slave's mysqld restart
+show tables;
+Tables_in_test
+t1
+t2
+start slave until master_log_file="slave-bin.000001",master_log_pos=438;
+Warnings:
+Note 1278 It is recommended to use --skip-slave-start when doing step-by-step replication with START SLAVE UNTIL; otherwise, you will get problems if you get an unexpected slave's mysqld restart
+select * from t3;
+n
+1
+start slave until master_log_file="slave-bin.000001",master_log_pos=663;
+Warnings:
+Note 1278 It is recommended to use --skip-slave-start when doing step-by-step replication with START SLAVE UNTIL; otherwise, you will get problems if you get an unexpected slave's mysqld restart
+select * from t3;
+n
+1
+2
+3
+start slave;
create table t4 (n int);
create table t5 (n int);
create table t6 (n int);
show tables;
Tables_in_test
t1
+t2
+t3
t4
t5
t6
stop slave;
reset slave;
-drop table t1,t4,t5,t6;
+drop table t1,t2,t3,t4,t5,t6;
diff --git a/mysql-test/suite/rpl/r/rpl_row_create_table.result b/mysql-test/suite/rpl/r/rpl_row_create_table.result
index ba5a13a57bf..a8011756bbb 100644
--- a/mysql-test/suite/rpl/r/rpl_row_create_table.result
+++ b/mysql-test/suite/rpl/r/rpl_row_create_table.result
@@ -45,7 +45,7 @@ Table t2
Create Table CREATE TABLE `t2` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL
-) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=()
+) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1
SHOW CREATE TABLE t3;
Table t3
Create Table CREATE TABLE `t3` (
@@ -64,7 +64,7 @@ Table t2
Create Table CREATE TABLE `t2` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL
-) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=()
+) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1
SHOW CREATE TABLE t3;
Table t3
Create Table CREATE TABLE `t3` (
@@ -185,7 +185,7 @@ Table t8
Create Table CREATE TABLE `t8` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL
-) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 UNION=()
+) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8
SHOW CREATE TABLE t9;
Table t9
Create Table CREATE TABLE `t9` (
@@ -205,7 +205,7 @@ Table t8
Create Table CREATE TABLE `t8` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL
-) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 UNION=()
+) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8
SHOW CREATE TABLE t9;
Table t9
Create Table CREATE TABLE `t9` (
diff --git a/mysql-test/suite/rpl/t/rpl_dual_pos_advance-slave.opt b/mysql-test/suite/rpl/t/rpl_dual_pos_advance-slave.opt
new file mode 100644
index 00000000000..627becdbfb5
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_dual_pos_advance-slave.opt
@@ -0,0 +1 @@
+--innodb
diff --git a/mysql-test/suite/rpl/t/rpl_dual_pos_advance.test b/mysql-test/suite/rpl/t/rpl_dual_pos_advance.test
index 83c15d691be..7ab9064b7f6 100644
--- a/mysql-test/suite/rpl/t/rpl_dual_pos_advance.test
+++ b/mysql-test/suite/rpl/t/rpl_dual_pos_advance.test
@@ -7,10 +7,12 @@
# It also will test BUG#13861.
source include/master-slave.inc;
+source include/have_innodb.inc;
# set up "dual head"
+let $keep_connection= 1;
connection slave;
reset master;
@@ -30,45 +32,58 @@ save_master_pos;
connection master;
sync_with_master;
-# Now test BUG#13861. This will be enabled when Guilhem fixes this
-# bug.
+#
+# BUG#13861 - START SLAVE UNTIL may stop 1 evnt too late if
+# log-slave-updates and circul repl
+#
+stop slave;
-# stop slave
+create table t2 (n int); # create one ignored event
-# create table t2 (n int); # create one ignored event
+save_master_pos;
+connection slave;
+sync_with_master;
-# save_master_pos;
-# connection slave;
-# sync_with_master;
+connection slave;
-# connection slave;
+show tables;
-# show tables;
+save_master_pos;
-# save_master_pos;
+create table t3 (n int) engine=innodb;
+set @a=1;
+insert into t3 values(@a);
+begin;
+insert into t3 values(2);
+insert into t3 values(3);
+commit;
+insert into t3 values(4);
-# create table t3 (n int);
-# connection master;
+connection master;
# bug is that START SLAVE UNTIL may stop too late, we test that by
# asking it to stop before creation of t3.
-# start slave until master_log_file="slave-bin.000001",master_log_pos=195;
-
-# wait until it's started (the position below is the start of "CREATE
-# TABLE t2") (otherwise wait_for_slave_to_stop may return at once)
-
-# select master_pos_wait("slave-bin.000001",137);
-
-# --source include/wait_for_slave_to_stop.inc
+start slave until master_log_file="slave-bin.000001",master_log_pos=195;
+--source include/wait_for_slave_sql_to_stop.inc
# then BUG#13861 causes t3 to show up below (because stopped too
# late).
-# show tables;
+show tables;
-# start slave;
+# ensure that we do not break set @a=1; insert into t3 values(@a);
+start slave until master_log_file="slave-bin.000001",master_log_pos=438;
+--source include/wait_for_slave_sql_to_stop.inc
+select * from t3;
+
+# ensure that we do not break transaction
+start slave until master_log_file="slave-bin.000001",master_log_pos=663;
+--source include/wait_for_slave_sql_to_stop.inc
+select * from t3;
+
+start slave;
# BUG#13023 is that Exec_master_log_pos may stay too low "forever":
@@ -99,7 +114,7 @@ show tables;
stop slave;
reset slave;
-drop table t1,t4,t5,t6; # add t2 and t3 later
+drop table t1,t2,t3,t4,t5,t6;
save_master_pos;
connection slave;
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction.test
index 3c7c15926a4..5700e0fa422 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction.test
@@ -52,13 +52,13 @@ ROLLBACK;
BEGIN;
INSERT INTO tmyisam VALUES (5);
INSERT INTO tmyisam VALUES (6);
---warning 1196
+#--warning 1196
ROLLBACK;
BEGIN;
INSERT INTO tndb VALUES (7);
INSERT INTO tmyisam VALUES (7);
---warning 1196
+#--warning 1196
ROLLBACK;
SELECT * FROM tndb ORDER BY a;
diff --git a/mysql-test/t/csv.test b/mysql-test/t/csv.test
index 7b4f95bbf8a..dd8c940ac44 100644
--- a/mysql-test/t/csv.test
+++ b/mysql-test/t/csv.test
@@ -1773,4 +1773,15 @@ drop table t1;
CREATE TABLE t1(a INT) ENGINE=CSV;
SHOW WARNINGS;
+#
+# BUG#33067 - .
+#
+create table t1 (c1 tinyblob not null) engine=csv;
+insert into t1 values("This");
+--enable_info
+update t1 set c1="That" where c1="This";
+--disable_info
+select * from t1;
+drop table t1;
+
--echo End of 5.1 tests
diff --git a/mysql-test/t/ctype_cp1250_ch.test b/mysql-test/t/ctype_cp1250_ch.test
index 7b7018d5901..1fb656f2a01 100644
--- a/mysql-test/t/ctype_cp1250_ch.test
+++ b/mysql-test/t/ctype_cp1250_ch.test
@@ -9,6 +9,16 @@ DROP TABLE IF EXISTS t1;
SHOW COLLATION LIKE 'cp1250_czech_cs';
+SET @test_character_set= 'cp1250';
+SET @test_collation= 'cp1250_general_ci';
+-- source include/ctype_common.inc
+
+SET @test_character_set= 'cp1250';
+SET @test_collation= 'cp1250_czech_cs';
+-- source include/ctype_common.inc
+
+
+
#
# Bugs: #8840: Empty string comparison and character set 'cp1250'
#
diff --git a/mysql-test/t/ctype_ucs.test b/mysql-test/t/ctype_ucs.test
index 529c48a627b..db609777c8d 100644
--- a/mysql-test/t/ctype_ucs.test
+++ b/mysql-test/t/ctype_ucs.test
@@ -4,6 +4,10 @@
DROP TABLE IF EXISTS t1;
--enable_warnings
+SET @test_character_set= 'ucs2';
+SET @test_collation= 'ucs2_general_ci';
+-- source include/ctype_common.inc
+
SET NAMES latin1;
SET character_set_connection=ucs2;
-- source include/endspace.inc
diff --git a/mysql-test/t/ctype_ucs2_def.test b/mysql-test/t/ctype_ucs2_def.test
index c80444daddd..b146dc63626 100644
--- a/mysql-test/t/ctype_ucs2_def.test
+++ b/mysql-test/t/ctype_ucs2_def.test
@@ -39,4 +39,17 @@ INSERT INTO t1 VALUES('A', 'A'), ('B', 'B'), ('C', 'C');
INSERT INTO t1 VALUES('A ', 'A ');
DROP TABLE t1;
+#
+# Bug#32705 - myisam corruption: Key in wrong position
+# at page 1024 with ucs2_bin
+#
+CREATE TABLE t1 (
+ c1 CHAR(255) CHARACTER SET UCS2 COLLATE UCS2_BIN NOT NULL,
+ KEY(c1)
+ ) ENGINE=MyISAM;
+INSERT INTO t1 VALUES ('marshall\'s');
+INSERT INTO t1 VALUES ('marsh');
+CHECK TABLE t1 EXTENDED;
+DROP TABLE t1;
+
--echo End of 5.0 tests
diff --git a/mysql-test/t/federated.test b/mysql-test/t/federated.test
index 76cb5fd4793..79a706fdfa2 100644
--- a/mysql-test/t/federated.test
+++ b/mysql-test/t/federated.test
@@ -1794,5 +1794,27 @@ connection slave;
drop table t1;
drop view v1;
+#
+# BUG#33946 - Join on Federated tables with Unique index gives error 1430
+# from storage engine
+#
+connection slave;
+CREATE TABLE t1 (a INT, b INT, KEY(a,b));
+INSERT INTO t1 VALUES(NULL,1),(1,NULL),(NULL,NULL),(1,1),(2,2);
+
+connection master;
+--replace_result $SLAVE_MYPORT SLAVE_PORT
+eval CREATE TABLE t1 (a INT, b INT, KEY(a,b)) ENGINE=federated
+CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/test/t1';
+SELECT * FROM t1 WHERE a IS NULL;
+SELECT * FROM t1 WHERE a IS NOT NULL;
+SELECT * FROM t1 WHERE a=1 AND b=1;
+SELECT * FROM t1 WHERE a IS NULL AND b=1;
+SELECT * FROM t1 WHERE a IS NOT NULL AND b=1;
+DROP TABLE t1;
+
+connection slave;
+DROP TABLE t1;
+
--echo End of 5.1 tests
source include/federated_cleanup.inc;
diff --git a/mysql-test/t/func_misc.test b/mysql-test/t/func_misc.test
index 10a63b925d3..d33dd9b0d14 100644
--- a/mysql-test/t/func_misc.test
+++ b/mysql-test/t/func_misc.test
@@ -264,6 +264,12 @@ insert into t1 values (-1), (-2);
select min(a) from t1 group by inet_ntoa(a);
drop table t1;
+#
+# BUG#34289 - Incorrect NAME_CONST substitution in stored procedures breaks
+# replication
+#
+SELECT NAME_CONST('var', 'value') COLLATE latin1_general_cs;
+
--echo End of 5.0 tests
#
diff --git a/mysql-test/t/information_schema.test b/mysql-test/t/information_schema.test
index 2d8a2b738ee..fe1c1f769cf 100644
--- a/mysql-test/t/information_schema.test
+++ b/mysql-test/t/information_schema.test
@@ -1270,4 +1270,48 @@ show open tables where f1()=0;
drop table t1;
drop function f1;
+#
+# BUG#34656 - KILL a query = Assertion failed: m_status == DA_ERROR ||
+# m_status == DA_OK
+#
+connect (conn1, localhost, root,,);
+connection conn1;
+let $ID= `select connection_id()`;
+send select * from information_schema.tables where 1=sleep(100000);
+connection default;
+let $wait_timeout= 10;
+let $wait_condition=select count(*)=1 from information_schema.processlist
+where state='User sleep' and
+info='select * from information_schema.tables where 1=sleep(100000)';
+--source include/wait_condition.inc
+disable_query_log;
+eval kill $ID;
+enable_query_log;
+disconnect conn1;
+let $wait_timeout= 10;
+let $wait_condition=select count(*)=0 from information_schema.processlist
+where state='User sleep' and
+info='select * from information_schema.tables where 1=sleep(100000)';
+--source include/wait_condition.inc
+
+connect (conn1, localhost, root,,);
+connection conn1;
+let $ID= `select connection_id()`;
+send select * from information_schema.columns where 1=sleep(100000);
+connection default;
+let $wait_timeout= 10;
+let $wait_condition=select count(*)=1 from information_schema.processlist
+where state='User sleep' and
+info='select * from information_schema.columns where 1=sleep(100000)';
+--source include/wait_condition.inc
+disable_query_log;
+eval kill $ID;
+enable_query_log;
+disconnect conn1;
+let $wait_timeout= 10;
+let $wait_condition=select count(*)=0 from information_schema.processlist
+where state='User sleep' and
+info='select * from information_schema.columns where 1=sleep(100000)';
+--source include/wait_condition.inc
+
--echo End of 5.1 tests.
diff --git a/mysql-test/t/log_tables.test b/mysql-test/t/log_tables.test
index 0c986c6d63a..3047d16d3b6 100644
--- a/mysql-test/t/log_tables.test
+++ b/mysql-test/t/log_tables.test
@@ -131,6 +131,16 @@ SET GLOBAL GENERAL_LOG=ON;
SET GLOBAL SLOW_QUERY_LOG=ON;
#
+# Bug#23924 general_log truncates queries with character set introducers.
+#
+truncate table mysql.general_log;
+set names binary;
+select _koi8r'ÔÅÓÔ' as test;
+--replace_column 1 TIMESTAMP 2 USER_HOST 3 THREAD_ID
+select * from mysql.general_log;
+set names utf8;
+
+#
# Bug #16905 Log tables: unicode statements are logged incorrectly
#
diff --git a/mysql-test/t/merge-big.test b/mysql-test/t/merge-big.test
index eddcbb59ed4..b687973c9d1 100644
--- a/mysql-test/t/merge-big.test
+++ b/mysql-test/t/merge-big.test
@@ -3,8 +3,10 @@
#
# This test takes rather long time so let us run it only in --big-test mode
--source include/big_test.inc
-# We are using some debug-only features in this test
+# We use some debug-only features in this test
--source include/have_debug.inc
+# We use INFORMATION_SCHEMA.PROCESSLIST in this test
+--source include/not_embedded.inc
--disable_warnings
drop table if exists t1,t2,t3,t4,t5,t6;
@@ -46,6 +48,8 @@ LOCK TABLE t1 WRITE;
--echo # connection default
connection default;
--echo # Let INSERT go into thr_multi_lock().
+#--sleep 8
+#SELECT ID,STATE,INFO FROM INFORMATION_SCHEMA.PROCESSLIST;
let $wait_condition= SELECT 1 FROM INFORMATION_SCHEMA.PROCESSLIST
WHERE ID = $con1_id AND STATE = 'Locked';
--source include/wait_condition.inc
@@ -54,8 +58,10 @@ let $wait_condition= SELECT 1 FROM INFORMATION_SCHEMA.PROCESSLIST
FLUSH TABLES;
#SELECT NOW();
--echo # Let INSERT go through open_tables() where it sleeps.
+#--sleep 8
+#SELECT ID,STATE,INFO FROM INFORMATION_SCHEMA.PROCESSLIST;
let $wait_condition= SELECT 1 FROM INFORMATION_SCHEMA.PROCESSLIST
- WHERE ID = $con1_id AND STATE = 'DBUG sleep';
+ WHERE ID = $con1_id AND STATE = 'Waiting for table';
--source include/wait_condition.inc
#SELECT NOW();
--echo # Unlock and close table and wait for con1 to close too.
@@ -74,77 +80,3 @@ UNLOCK TABLES;
connection default;
DROP TABLE t1;
---echo #
---echo # Extra tests for Bug#26379 - Combination of FLUSH TABLE and
---echo # REPAIR TABLE corrupts a MERGE table
---echo #
-CREATE TABLE t1 (c1 INT);
-CREATE TABLE t2 (c1 INT);
-CREATE TABLE t3 (c1 INT);
-INSERT INTO t1 VALUES (1);
-INSERT INTO t2 VALUES (2);
-INSERT INTO t3 VALUES (3);
---echo #
---echo # CREATE ... SELECT
---echo # try to access parent from another thread.
---echo #
-#SELECT NOW();
- --echo # connection con1
- connect (con1,localhost,root,,);
- let $con1_id= `SELECT CONNECTION_ID()`;
- SET SESSION debug="+d,sleep_create_select_before_lock";
- send CREATE TABLE t4 (c1 INT) ENGINE=MRG_MYISAM UNION=(t1,t2)
- INSERT_METHOD=FIRST SELECT * FROM t3;
---echo # connection default
-connection default;
-# wait for the other query to start executing
-let $wait_condition= SELECT 1 FROM INFORMATION_SCHEMA.PROCESSLIST
- WHERE ID = $con1_id AND STATE = 'DBUG sleep';
---source include/wait_condition.inc
-#SELECT NOW();
---echo # Now try to access the parent.
---echo # If 3 is in table, SELECT had to wait.
-SELECT * FROM t4 ORDER BY c1;
-#SELECT NOW();
- --echo # connection con1
- connection con1;
- reap;
- #SELECT NOW();
- SET SESSION debug="-d,sleep_create_select_before_lock";
- disconnect con1;
---echo # connection default
-connection default;
---echo # Cleanup for next test.
-DROP TABLE t4;
-DELETE FROM t1 WHERE c1 != 1;
---echo #
---echo # CREATE ... SELECT
---echo # try to access child from another thread.
---echo #
-#SELECT NOW();
- --echo # connection con1
- connect (con1,localhost,root,,);
- let $con1_id= `SELECT CONNECTION_ID()`;
- SET SESSION debug="+d,sleep_create_select_before_lock";
- send CREATE TABLE t4 (c1 INT) ENGINE=MRG_MYISAM UNION=(t1,t2)
- INSERT_METHOD=FIRST SELECT * FROM t3;
---echo # connection default
-connection default;
-# wait for the other query to start executing
-let $wait_condition= SELECT 1 FROM INFORMATION_SCHEMA.PROCESSLIST
- WHERE ID = $con1_id AND STATE = 'DBUG sleep';
---source include/wait_condition.inc
-#SELECT NOW();
---echo # Now try to access a child.
---echo # If 3 is in table, SELECT had to wait.
-SELECT * FROM t1 ORDER BY c1;
-#SELECT NOW();
- --echo # connection con1
- connection con1;
- reap;
- #SELECT NOW();
- SET SESSION debug="-d,sleep_create_select_before_lock";
- disconnect con1;
---echo # connection default
-connection default;
-DROP TABLE t1, t2, t3, t4;
diff --git a/mysql-test/t/merge.test b/mysql-test/t/merge.test
index e49297dd06c..a4602a3b82a 100644
--- a/mysql-test/t/merge.test
+++ b/mysql-test/t/merge.test
@@ -599,6 +599,19 @@ SELECT * FROM t3;
DROP TABLE t1, t2, t3;
+#
+# BUG#28248 - mysqldump results with MERGE ... UNION=() cannot be executed
+#
+CREATE TABLE t1(a INT);
+CREATE TABLE m1(a INT) ENGINE=MERGE;
+SHOW CREATE TABLE m1;
+DROP TABLE m1;
+CREATE TABLE m1(a INT) ENGINE=MERGE UNION=();
+SHOW CREATE TABLE m1;
+ALTER TABLE m1 UNION=(t1);
+ALTER TABLE m1 UNION=();
+SHOW CREATE TABLE m1;
+DROP TABLE t1, m1;
--echo End of 5.0 tests
diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test
index fbd0a5ac4e7..21ffa0683b6 100644
--- a/mysql-test/t/myisam.test
+++ b/mysql-test/t/myisam.test
@@ -1278,5 +1278,189 @@ DELETE FROM t1 WHERE c1 >= 10;
CHECK TABLE t1;
DROP TABLE t1;
+#
+# Bug#33222 - myisam-table drops rows when column is added
+# and a char-field > 128 exists
+#
+# Test #1 - CHECK TABLE sees wrong record, REPAR TABLE deletes it.
+# Using a CHAR column that can have > 127 characters.
+# Using a VARCHAR to create a table with dynamic row format.
+CREATE TABLE t1 (
+ c1 CHAR(130),
+ c2 VARCHAR(1)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES(REPEAT("a",128), 'b');
+SELECT COUNT(*) FROM t1;
+CHECK TABLE t1;
+REPAIR TABLE t1;
+SELECT COUNT(*) FROM t1;
+CHECK TABLE t1;
+DROP TABLE t1;
+#
+# Test #2 - same as test #1, but using EXTENDED.
+# Using a CHAR column that can have > 127 characters.
+# Using a VARCHAR to create a table with dynamic row format.
+CREATE TABLE t1 (
+ c1 CHAR(130),
+ c2 VARCHAR(1)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES(REPEAT("a",128), 'b');
+SELECT COUNT(*) FROM t1;
+CHECK TABLE t1 EXTENDED;
+REPAIR TABLE t1 EXTENDED;
+SELECT COUNT(*) FROM t1;
+CHECK TABLE t1 EXTENDED;
+DROP TABLE t1;
+#
+# Test #3 - same as test #1, but using OPTIMIZE TABLE.
+# Using a CHAR column that can have > 127 characters.
+# Using a VARCHAR to create a table with dynamic row format.
+CREATE TABLE t1 (
+ c1 CHAR(130),
+ c2 VARCHAR(1)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES(REPEAT("a",128), 'b');
+# Insert more rows and delete one in the middle to force optimize.
+INSERT INTO t1 VALUES('b', 'b');
+INSERT INTO t1 VALUES('c', 'b');
+DELETE FROM t1 WHERE c1='b';
+SELECT COUNT(*) FROM t1;
+OPTIMIZE TABLE t1;
+SELECT COUNT(*) FROM t1;
+DROP TABLE t1;
+#
+# Test #4 - ALTER TABLE deletes rows.
+# Using a CHAR column that can have > 127 characters.
+# Using a VARCHAR to create a table with dynamic row format.
+# Using an index which can be disabled during bulk insert.
+CREATE TABLE t1 (
+ c1 CHAR(130),
+ c2 VARCHAR(1),
+ KEY (c1)
+) ENGINE=MyISAM;
+#
+# Insert 100 rows. This turns bulk insert on during the copy phase of
+# ALTER TABLE. Bulk insert disables keys before the insert and re-enables
+# them by repair after the insert.
+--disable_query_log
+let $count= 100;
+--echo # Insert $count rows. Query log disabled.
+while ($count)
+{
+ INSERT INTO t1 VALUES ('a', 'b');
+ dec $count;
+}
+--enable_query_log
+#
+# Change most of the rows into long character values with > 127 characters.
+UPDATE t1 SET c1=REPEAT("a",128) LIMIT 90;
+SELECT COUNT(*) FROM t1;
+ALTER TABLE t1 ENGINE=MyISAM;
+#
+# With bug present, this shows that all long rows are gone.
+SELECT COUNT(*) FROM t1;
+CHECK TABLE t1;
+CHECK TABLE t1 EXTENDED;
+DROP TABLE t1;
+#
+# Test #5 - same as test #1 but UTF-8.
+# Using a CHAR column that can have > 127 characters.
+# Using a VARCHAR to create a table with dynamic row format.
+CREATE TABLE t1 (
+ c1 CHAR(50),
+ c2 VARCHAR(1)
+) ENGINE=MyISAM DEFAULT CHARSET UTF8;
+# Using Tamil Letter A, Unicode U+0B85
+INSERT INTO t1 VALUES(REPEAT(_utf8 x'e0ae85',43), 'b');
+SELECT COUNT(*) FROM t1;
+CHECK TABLE t1;
+REPAIR TABLE t1;
+SELECT COUNT(*) FROM t1;
+CHECK TABLE t1;
+DROP TABLE t1;
+#
+# Test #6 - same as test #2, but UTF-8.
+# Using a CHAR column that can have > 127 characters.
+# Using a VARCHAR to create a table with dynamic row format.
+CREATE TABLE t1 (
+ c1 CHAR(50),
+ c2 VARCHAR(1)
+) ENGINE=MyISAM DEFAULT CHARSET UTF8;
+# Using Tamil Letter A, Unicode U+0B85
+INSERT INTO t1 VALUES(REPEAT(_utf8 x'e0ae85',43), 'b');
+SELECT COUNT(*) FROM t1;
+CHECK TABLE t1 EXTENDED;
+REPAIR TABLE t1 EXTENDED;
+SELECT COUNT(*) FROM t1;
+CHECK TABLE t1 EXTENDED;
+DROP TABLE t1;
+#
+# Test #7 - same as test #3, but UTF-8.
+# Using a CHAR column that can have > 127 characters.
+# Using a VARCHAR to create a table with dynamic row format.
+CREATE TABLE t1 (
+ c1 CHAR(50),
+ c2 VARCHAR(1)
+) ENGINE=MyISAM DEFAULT CHARSET UTF8;
+# Using Tamil Letter A, Unicode U+0B85
+INSERT INTO t1 VALUES(REPEAT(_utf8 x'e0ae85',43), 'b');
+# Insert more rows and delete one in the middle to force optimize.
+INSERT INTO t1 VALUES('b', 'b');
+INSERT INTO t1 VALUES('c', 'b');
+DELETE FROM t1 WHERE c1='b';
+SELECT COUNT(*) FROM t1;
+OPTIMIZE TABLE t1;
+SELECT COUNT(*) FROM t1;
+DROP TABLE t1;
+#
+# Test #8 - same as test #4, but UTF-8.
+# Using a CHAR column that can have > 42 UTF-8 characters.
+# Using a VARCHAR to create a table with dynamic row format.
+# Using an index which can be disabled during bulk insert.
+CREATE TABLE t1 (
+ c1 CHAR(50),
+ c2 VARCHAR(1),
+ KEY (c1)
+) ENGINE=MyISAM DEFAULT CHARSET UTF8;
+#
+# Insert 100 rows. This turns bulk insert on during the copy phase of
+# ALTER TABLE. Bulk insert disables keys before the insert and re-enables
+# them by repair after the insert.
+--disable_query_log
+let $count= 100;
+--echo # Insert $count rows. Query log disabled.
+while ($count)
+{
+ INSERT INTO t1 VALUES ('a', 'b');
+ dec $count;
+}
+--enable_query_log
+#
+# Change most of the rows into long character values with > 42 characters.
+# Using Tamil Letter A, Unicode U+0B85
+UPDATE t1 SET c1=REPEAT(_utf8 x'e0ae85',43) LIMIT 90;
+SELECT COUNT(*) FROM t1;
+ALTER TABLE t1 ENGINE=MyISAM;
+#
+# With bug present, this shows that all long rows are gone.
+SELECT COUNT(*) FROM t1;
+CHECK TABLE t1;
+CHECK TABLE t1 EXTENDED;
+DROP TABLE t1;
+
+#
+# Bug#29182 - MyISAMCHK reports wrong character set
+#
+CREATE TABLE t1 (
+ c1 VARCHAR(10) NOT NULL,
+ c2 CHAR(10) DEFAULT NULL,
+ c3 VARCHAR(10) NOT NULL,
+ KEY (c1),
+ KEY (c2)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--exec $MYISAMCHK -d $MYSQLTEST_VARDIR/master-data/test/t1
+DROP TABLE t1;
+
--echo End of 5.1 tests
diff --git a/mysql-test/t/partition.test b/mysql-test/t/partition.test
index c35626e06b7..c4e447988db 100644
--- a/mysql-test/t/partition.test
+++ b/mysql-test/t/partition.test
@@ -14,6 +14,10 @@
drop table if exists t1;
--enable_warnings
+--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
+create table t1 (a int) partition by list ((a/3)*10 div 1)
+(partition p0 values in (0), partition p1 values in (1));
+
#
# Bug #30695: An apostrophe ' in the comment of the ADD PARTITION causes the Server to crash.
#
@@ -35,7 +39,7 @@ PARTITION `p5` VALUES LESS THAN (2010)
COMMENT 'APSTART \' APEND'
);
#--exec sed 's/APSTART \\/APSTART /' var/master-data/test/t1.frm > tmpt1.frm && mv tmpt1.frm var/master-data/test/t1.frm
-#--error 1064
+#--error ER_PARSE_ERROR
SELECT * FROM t1 LIMIT 1;
DROP TABLE t1;
@@ -49,6 +53,7 @@ create table t1 (id int auto_increment, s1 int, primary key (id));
insert into t1 values (null,1);
insert into t1 values (null,6);
+-- sorted_result
select * from t1;
alter table t1 partition by range (id) (
@@ -79,24 +84,6 @@ partition by key(a)
partitions 1e+300;
#
-# Bug 21350: Data Directory problems
-#
--- error ER_WRONG_TABLE_NAME
-create table t1 (a int)
-partition by key (a)
-(partition p0 DATA DIRECTORY 'part-data' INDEX DIRECTORY 'part-data');
-
-#
-# Insert a test that manages to create the first partition and fails with
-# the second, ensure that we clean up afterwards in a proper manner.
-#
---error ER_WRONG_TABLE_NAME
-create table t1 (a int)
-partition by key (a)
-(partition p0,
- partition p1 DATA DIRECTORY 'part-data' INDEX DIRECTORY 'part-data');
-
-#
# Bug 19309 Partitions: Crash if double procedural alter
#
create table t1 (a int)
@@ -618,12 +605,14 @@ partition by key (a)
(partition p0, partition p1);
show create table t1;
---error ER_MIX_HANDLER_ERROR
+# Since alter, it already have ENGINE=HEAP from before on table level
+# -> OK
alter table t1
partition by key(a)
(partition p0, partition p1 engine=heap);
---error ER_MIX_HANDLER_ERROR
+# Since alter, it already have ENGINE=HEAP from before on table level
+# -> OK
alter table t1
partition by key(a)
(partition p0 engine=heap, partition p1);
@@ -1208,9 +1197,11 @@ SHOW TABLE STATUS;
DELETE from t1 where a = 1;
--replace_column 9 0 12 NULL 13 NULL 14 NULL
SHOW TABLE STATUS;
+# restore this after WL#4176 is completed
+-- error ER_CHECK_NOT_IMPLEMENTED
ALTER TABLE t1 OPTIMIZE PARTITION p0;
---replace_column 12 NULL 13 NULL 14 NULL
-SHOW TABLE STATUS;
+#--replace_column 12 NULL 13 NULL 14 NULL
+#SHOW TABLE STATUS;
DROP TABLE t1;
#
@@ -1224,13 +1215,15 @@ DROP TABLE t1;
#
# Bug 17455 Partitions: Wrong message and error when using Repair/Optimize
# table on partitioned table
-#
+# (added check/analyze for gcov of Bug#20129)
create table t1 (a int)
engine=MEMORY
partition by key (a);
REPAIR TABLE t1;
OPTIMIZE TABLE t1;
+CHECK TABLE t1;
+ANALYZE TABLE t1;
drop table t1;
@@ -1533,16 +1526,24 @@ select c1 from t1 group by (select c0 from t1 limit 1);
drop table t1;
# Bug #30495: optimize table t1,t2,t3 extended errors
-#
+# (added more maintenace commands for Bug#20129
CREATE TABLE t1(a int)
PARTITION BY RANGE (a) (
PARTITION p1 VALUES LESS THAN (10),
PARTITION p2 VALUES LESS THAN (20)
);
---error 1064
+--error ER_PARSE_ERROR
ALTER TABLE t1 OPTIMIZE PARTITION p1 EXTENDED;
---error 1064
+--error ER_PARSE_ERROR
ALTER TABLE t1 ANALYZE PARTITION p1 EXTENDED;
+--error ER_CHECK_NOT_IMPLEMENTED
+ALTER TABLE t1 ANALYZE PARTITION p1;
+--error ER_CHECK_NOT_IMPLEMENTED
+ALTER TABLE t1 CHECK PARTITION p1;
+--error ER_CHECK_NOT_IMPLEMENTED
+ALTER TABLE t1 REPAIR PARTITION p1;
+--error ER_CHECK_NOT_IMPLEMENTED
+ALTER TABLE t1 OPTIMIZE PARTITION p1;
DROP TABLE t1;
#
diff --git a/mysql-test/t/partition_datatype.test b/mysql-test/t/partition_datatype.test
index 61d3cb42c7b..7440a9bf3a3 100644
--- a/mysql-test/t/partition_datatype.test
+++ b/mysql-test/t/partition_datatype.test
@@ -11,11 +11,11 @@
drop table if exists t1;
--enable_warnings
-# FIXME: disabled this test because of valgrind error
-#create table t1 (a bit not null) partition by key (a);
-#insert into t1 values (b'1');
-#select * from t1 where a = b'1';
-#drop table t1;
+-- echo # test with not null
+create table t1 (a bit not null) partition by key (a);
+insert into t1 values (b'1');
+select hex(a) from t1 where a = b'1';
+drop table t1;
create table t1 (a tinyint not null) partition by key (a);
insert into t1 values (2);
select * from t1 where a = 2;
@@ -37,14 +37,14 @@ insert into t1 values (2);
select * from t1 where a = 2;
drop table t1;
create table t1 (a float not null) partition by key (a);
-insert into t1 values (2.1);
-select * from t1 where a = 2.1;
+insert into t1 values (0.5);
+select * from t1 where a = 0.5;
drop table t1;
create table t1 (a double not null) partition by key (a);
-insert into t1 values (2.1);
-select * from t1 where a = 2.1;
+insert into t1 values (0.5);
+select * from t1 where a = 0.5;
drop table t1;
-create table t1 (a decimal not null) partition by key (a);
+create table t1 (a decimal(4,2) not null) partition by key (a);
insert into t1 values (2.1);
select * from t1 where a = 2.1;
drop table t1;
@@ -100,11 +100,14 @@ create table t1 (a set('y','n') not null) partition by key (a);
insert into t1 values ('y');
select * from t1 where a = 'y';
drop table t1;
-# FIXME: disabled this test because of valgrind error
-#create table t1 (a bit) partition by key (a);
-#insert into t1 values (b'1');
-#select * from t1 where a = b'1';
-#drop table t1;
+-- echo # test with null allowed
+create table t1 (a bit) partition by key (a);
+insert into t1 values (b'1');
+insert into t1 values (NULL);
+select hex(a) from t1 where a = b'1';
+select hex(a) from t1 where a is NULL;
+select hex(a) from t1 order by a;
+drop table t1;
create table t1 (a tinyint) partition by key (a);
insert into t1 values (2);
select * from t1 where a = 2;
@@ -126,14 +129,14 @@ insert into t1 values (2);
select * from t1 where a = 2;
drop table t1;
create table t1 (a float) partition by key (a);
-insert into t1 values (2.1);
-select * from t1 where a = 2.1;
+insert into t1 values (0.5);
+select * from t1 where a = 0.5;
drop table t1;
create table t1 (a double) partition by key (a);
-insert into t1 values (2.1);
-select * from t1 where a = 2.1;
+insert into t1 values (0.5);
+select * from t1 where a = 0.5;
drop table t1;
-create table t1 (a decimal) partition by key (a);
+create table t1 (a decimal(4,2)) partition by key (a);
insert into t1 values (2.1);
select * from t1 where a = 2.1;
drop table t1;
@@ -192,18 +195,23 @@ drop table t1;
create table t1 (a varchar(65531)) partition by key (a);
insert into t1 values ('bbbb');
insert into t1 values ('aaaa');
-select * from t1 where a = 'aaa%';
+select * from t1 where a = 'aaaa';
select * from t1 where a like 'aaa%';
+select * from t1 where a = 'bbbb';
drop table t1;
create table t1 (a varchar(65532)) partition by key (a);
insert into t1 values ('bbbb');
insert into t1 values ('aaaa');
-select * from t1 where a = 'aaa%';
+select * from t1 where a = 'aaaa';
select * from t1 where a like 'aaa%';
+select * from t1 where a = 'bbbb';
drop table t1;
create table t1 (a varchar(65533) not null) partition by key (a);
+insert into t1 values ('bbbb');
insert into t1 values ('aaaa');
-select * from t1 where a = 'aaa%';
+select * from t1 where a = 'aaaa';
+select * from t1 where a like 'aaa%';
+select * from t1 where a = 'bbbb';
drop table t1;
-- error ER_TOO_BIG_ROWSIZE
create table t1 (a varchar(65533)) partition by key (a);
@@ -211,3 +219,14 @@ create table t1 (a varchar(65533)) partition by key (a);
create table t1 (a varchar(65534) not null) partition by key (a);
-- error ER_TOO_BIG_ROWSIZE
create table t1 (a varchar(65535)) partition by key (a);
+
+#
+# Bug#34358: error in key_restore for bitfields with uneven bits
+#
+create table t1 (a bit(27), primary key (a)) engine=myisam
+partition by hash (a)
+(partition p0, partition p1, partition p2);
+show create table t1;
+insert into t1 values (1),(4),(7),(10),(13),(16),(19),(22),(25),(28),(31),(34);
+select hex(a) from t1 where a = 7;
+drop table t1;
diff --git a/mysql-test/t/partition_error.test b/mysql-test/t/partition_error.test
index c9b95fc1664..d470fb67b49 100644
--- a/mysql-test/t/partition_error.test
+++ b/mysql-test/t/partition_error.test
@@ -9,6 +9,24 @@ drop table if exists t1;
--enable_warnings
#
+# Bug#31931: Mix of handlers error message
+#
+--error ER_MIX_HANDLER_ERROR
+CREATE TABLE t1 (a INT)
+PARTITION BY HASH (a)
+( PARTITION p0 ENGINE=MyISAM,
+ PARTITION p1);
+--error ER_MIX_HANDLER_ERROR
+CREATE TABLE t1 (a INT)
+PARTITION BY LIST (a)
+SUBPARTITION BY HASH (a)
+( PARTITION p0 VALUES IN (0)
+( SUBPARTITION s0, SUBPARTITION s1 ENGINE=MyISAM, SUBPARTITION s2),
+ PARTITION p1 VALUES IN (1)
+( SUBPARTITION s3 ENGINE=MyISAM, SUBPARTITION s4, SUBPARTITION s5 ENGINE=MyISAM));
+
+
+#
# Bug 29368:
# Incorrect error, 1467, for syntax error when creating partition
--error ER_PARTITION_REQUIRES_VALUES_ERROR
diff --git a/mysql-test/t/partition_innodb.test b/mysql-test/t/partition_innodb.test
index 76a54b36942..932855cc877 100644
--- a/mysql-test/t/partition_innodb.test
+++ b/mysql-test/t/partition_innodb.test
@@ -104,6 +104,7 @@ engine = innodb
partition by list (a)
(partition p0 values in (0));
+-- error ER_MIX_HANDLER_ERROR
alter table t1 engine = x;
show create table t1;
drop table t1;
@@ -182,8 +183,10 @@ DROP TABLE t1;
create table t1 (int_column int, char_column char(5))
PARTITION BY RANGE (int_column) subpartition by key (char_column) subpartitions 2
(PARTITION p1 VALUES LESS THAN (5) ENGINE = InnoDB);
-alter table t1 PARTITION BY RANGE (int_column)
+alter table t1
+ENGINE = MyISAM
+PARTITION BY RANGE (int_column)
subpartition by key (char_column) subpartitions 2
- (PARTITION p1 VALUES LESS THAN (5) ENGINE = myisam);
+ (PARTITION p1 VALUES LESS THAN (5));
show create table t1;
drop table t1;
diff --git a/mysql-test/t/partition_not_windows.test b/mysql-test/t/partition_not_windows.test
index 103fb05029e..d7108d5af98 100644
--- a/mysql-test/t/partition_not_windows.test
+++ b/mysql-test/t/partition_not_windows.test
@@ -11,13 +11,9 @@
# Bug 20770 Partitions: DATA DIRECTORY clause change in reorganize
# doesn't remove old directory
---disable_query_log
-eval SET @data_dir = 'DATA DIRECTORY = ''$MYSQLTEST_VARDIR/tmp''';
-let $data_directory = `select @data_dir`;
+let $data_directory = DATA DIRECTORY = '$MYSQLTEST_VARDIR/tmp';
-eval SET @inx_dir = 'INDEX DIRECTORY = ''$MYSQLTEST_VARDIR/tmp''';
-let $inx_directory = `select @inx_dir`;
---enable_query_log
+let $inx_directory = INDEX DIRECTORY = '$MYSQLTEST_VARDIR/tmp';
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval create table t1 (a int) engine myisam
@@ -26,7 +22,7 @@ subpartition by hash (a)
(partition p0 VALUES LESS THAN (1) $data_directory $inx_directory
(SUBPARTITION subpart00, SUBPARTITION subpart01));
---echo Checking if file exists before alter
+--echo # Checking if file exists before alter
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1.frm
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1.par
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p0#SP#subpart00.MYD
@@ -45,7 +41,7 @@ eval ALTER TABLE t1 REORGANIZE PARTITION p0 INTO
partition p2 VALUES LESS THAN (2) $data_directory $inx_directory
(SUBPARTITION subpart20, SUBPARTITION subpart21));
---echo Checking if file exists after alter
+--echo # Checking if file exists after alter
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1.frm
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1.par
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p1#SP#subpart10.MYD
@@ -98,18 +94,18 @@ set @@sql_mode=@org_mode;
# Bug#32167: another privilege bypass with DATA/INDEX DIRECTORY
#
--replace_result $MYSQLTEST_VARDIR TEST_DIR
---error 1210
+--error ER_WRONG_ARGUMENTS
eval CREATE TABLE t1(a INT)
PARTITION BY KEY (a)
(PARTITION p0 DATA DIRECTORY '$MYSQLTEST_VARDIR/master-data/test');
--replace_result $MYSQLTEST_VARDIR TEST_DIR
---error 1210
+--error ER_WRONG_ARGUMENTS
eval CREATE TABLE t1(a INT)
PARTITION BY KEY (a)
(PARTITION p0 INDEX DIRECTORY '$MYSQLTEST_VARDIR/master-data/test');
--replace_result $MYSQLTEST_VARDIR TEST_DIR
---error 1210
+--error ER_WRONG_ARGUMENTS
eval CREATE TABLE ts (id INT, purchased DATE)
PARTITION BY RANGE(YEAR(purchased))
SUBPARTITION BY HASH(TO_DAYS(purchased)) (
@@ -121,7 +117,7 @@ SUBPARTITION s0b
));
--replace_result $MYSQLTEST_VARDIR TEST_DIR
---error 1210
+--error ER_WRONG_ARGUMENTS
eval CREATE TABLE ts (id INT, purchased DATE)
PARTITION BY RANGE(YEAR(purchased))
SUBPARTITION BY HASH(TO_DAYS(purchased)) (
@@ -144,7 +140,59 @@ SUBPARTITION s0b
DROP TABLE IF EXISTS `example`;
--enable_warnings
---disable_abort_on_error
+--mkdir $MYSQLTEST_VARDIR/p0Data
+--mkdir $MYSQLTEST_VARDIR/p1Data
+--mkdir $MYSQLTEST_VARDIR/p2Data
+--mkdir $MYSQLTEST_VARDIR/p3Data
+--mkdir $MYSQLTEST_VARDIR/p0Index
+--mkdir $MYSQLTEST_VARDIR/p1Index
+--mkdir $MYSQLTEST_VARDIR/p2Index
+--mkdir $MYSQLTEST_VARDIR/p3Index
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval CREATE TABLE `example` (
+ `ID_EXAMPLE` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `DESCRIPTION` varchar(30) NOT NULL,
+ `LEVEL` smallint(5) unsigned DEFAULT NULL,
+ PRIMARY KEY (`ID_EXAMPLE`)
+) ENGINE = MYISAM
+PARTITION BY HASH(ID_EXAMPLE)(
+PARTITION p0 DATA DIRECTORY = '$MYSQLTEST_VARDIR/p0Data'
+INDEX DIRECTORY = '$MYSQLTEST_VARDIR/p0Index',
+PARTITION p1 DATA DIRECTORY = '$MYSQLTEST_VARDIR/p1Data'
+INDEX DIRECTORY = '$MYSQLTEST_VARDIR/p1Index',
+PARTITION p2 DATA DIRECTORY = '$MYSQLTEST_VARDIR/p2Data'
+INDEX DIRECTORY = '$MYSQLTEST_VARDIR/p2Index',
+PARTITION p3 DATA DIRECTORY = '$MYSQLTEST_VARDIR/p3Data'
+INDEX DIRECTORY = '$MYSQLTEST_VARDIR/p3Index'
+);
+--echo # Checking that MyISAM .MYD and .MYI are in test db and data/idx dir
+--file_exists $MYSQLTEST_VARDIR/master-data/test/example#P#p0.MYI
+--file_exists $MYSQLTEST_VARDIR/master-data/test/example#P#p0.MYD
+--file_exists $MYSQLTEST_VARDIR/p0Data/example#P#p0.MYD
+--file_exists $MYSQLTEST_VARDIR/p0Index/example#P#p0.MYI
+--file_exists $MYSQLTEST_VARDIR/master-data/test/example#P#p1.MYI
+--file_exists $MYSQLTEST_VARDIR/master-data/test/example#P#p1.MYD
+--file_exists $MYSQLTEST_VARDIR/p1Data/example#P#p1.MYD
+--file_exists $MYSQLTEST_VARDIR/p1Index/example#P#p1.MYI
+--file_exists $MYSQLTEST_VARDIR/master-data/test/example#P#p2.MYI
+--file_exists $MYSQLTEST_VARDIR/master-data/test/example#P#p2.MYD
+--file_exists $MYSQLTEST_VARDIR/p2Data/example#P#p2.MYD
+--file_exists $MYSQLTEST_VARDIR/p2Index/example#P#p2.MYI
+--file_exists $MYSQLTEST_VARDIR/master-data/test/example#P#p3.MYI
+--file_exists $MYSQLTEST_VARDIR/master-data/test/example#P#p3.MYD
+--file_exists $MYSQLTEST_VARDIR/p3Data/example#P#p3.MYD
+--file_exists $MYSQLTEST_VARDIR/p3Index/example#P#p3.MYI
+DROP TABLE example;
+--rmdir $MYSQLTEST_VARDIR/p0Data
+--rmdir $MYSQLTEST_VARDIR/p1Data
+--rmdir $MYSQLTEST_VARDIR/p2Data
+--rmdir $MYSQLTEST_VARDIR/p3Data
+--rmdir $MYSQLTEST_VARDIR/p0Index
+--rmdir $MYSQLTEST_VARDIR/p1Index
+--rmdir $MYSQLTEST_VARDIR/p2Index
+--rmdir $MYSQLTEST_VARDIR/p3Index
+
+--error ER_CANT_CREATE_TABLE,1
CREATE TABLE `example` (
`ID_EXAMPLE` int(10) unsigned NOT NULL AUTO_INCREMENT,
`DESCRIPTION` varchar(30) NOT NULL,
@@ -152,10 +200,8 @@ CREATE TABLE `example` (
PRIMARY KEY (`ID_EXAMPLE`)
) ENGINE = MYISAM
PARTITION BY HASH(ID_EXAMPLE)(
-PARTITION p0 DATA DIRECTORY = '/build/5.1/data/partitiontest/p0Data',
-PARTITION p1 DATA DIRECTORY = '/build/5.1/data/partitiontest/p1Data',
-PARTITION p2 DATA DIRECTORY = '/build/5.1/data/partitiontest/p2Data',
-PARTITION p3 DATA DIRECTORY = '/build/5.1/data/partitiontest/p3Data'
+PARTITION p0 DATA DIRECTORY = '/not/existent/p0Data',
+PARTITION p1 DATA DIRECTORY = '/not/existent/p1Data',
+PARTITION p2 DATA DIRECTORY = '/not/existent/p2Data',
+PARTITION p3 DATA DIRECTORY = '/not/existent/p3Data'
);
---enable_abort_on_error
-
diff --git a/mysql-test/t/partition_range.test b/mysql-test/t/partition_range.test
index 6ed3abab46a..bc4231d1d71 100644
--- a/mysql-test/t/partition_range.test
+++ b/mysql-test/t/partition_range.test
@@ -10,6 +10,51 @@ drop table if exists t1, t2;
--enable_warnings
#
+# BUG 33429: Succeeds in adding partition when maxvalue on last partition
+#
+create table t1 (a int)
+partition by range (a)
+( partition p0 values less than (maxvalue));
+--error ER_PARTITION_MAXVALUE_ERROR
+alter table t1 add partition (partition p1 values less than (100000));
+show create table t1;
+drop table t1;
+
+# BUG 32943:
+# Locking problems in relation to partitioning and triggers
+# Also fixes and test cases of generic lock issues with
+# partition change code.
+#
+create table t1 (a integer)
+partition by range (a)
+( partition p0 values less than (4),
+ partition p1 values less than (100));
+
+delimiter |;
+create trigger tr1 before insert on t1
+for each row begin
+ set @a = 1;
+end|
+
+delimiter ;|
+alter table t1 drop partition p0;
+
+drop table t1;
+
+create table t1 (a integer)
+partition by range (a)
+( partition p0 values less than (4),
+ partition p1 values less than (100));
+LOCK TABLES t1 WRITE;
+alter table t1 drop partition p0;
+alter table t1 reorganize partition p1 into
+( partition p0 values less than (4),
+ partition p1 values less than (100));
+alter table t1 add partition ( partition p2 values less than (200));
+UNLOCK TABLES;
+drop table t1;
+
+#
# BUG 18198: Various tests for partition functions
#
#create table t1 (a varchar(10) charset latin1 collate latin1_bin, b int)
diff --git a/mysql-test/t/partition_symlink.test b/mysql-test/t/partition_symlink.test
index 4c6acec64eb..e36e335c0dd 100644
--- a/mysql-test/t/partition_symlink.test
+++ b/mysql-test/t/partition_symlink.test
@@ -2,7 +2,9 @@
# (DATA/INDEX DIR requires symlinks)
-- source include/have_partition.inc
-- source include/have_symlink.inc
-# remove the not_windows line after fixing bug#30459
+# remove the not_windows line after fixing bug#33687
+# symlinks must also work for files, not only directories
+# as in --skip-symbolic-links
-- source include/not_windows.inc
-- disable_warnings
DROP TABLE IF EXISTS t1;
@@ -25,9 +27,6 @@ DROP DATABASE IF EXISTS mysqltest2;
# directory or file that the mysqld-process can use, via DATA/INDEX DIR)
# this is the security flaw that was used in bug#32091 and bug#32111
-#--exec mkdir $MYSQLTEST_VARDIR/tmp/test || true
-#--exec mkdir $MYSQLTEST_VARDIR/tmp/mysqltest2 || true
-
-- echo # Creating two non colliding tables mysqltest2.t1 and test.t1
-- echo # test.t1 have partitions in mysqltest2-directory!
-- echo # user root:
@@ -123,5 +122,49 @@ connection default;
DROP USER mysqltest_1@localhost;
disconnect con1;
-#--exec rmdir $MYSQLTEST_VARDIR/tmp/test || true
-#--exec rmdir $MYSQLTEST_VARDIR/tmp/mysqltest2 || true
+#
+# Bug #24633 SQL MODE "NO_DIR_IN_CREATE" does not work with partitioned tables
+#
+
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval create table t2 (i int )
+partition by range (i)
+(
+ partition p01 values less than (1000)
+ data directory="$MYSQLTEST_VARDIR/tmp"
+ index directory="$MYSQLTEST_VARDIR/tmp"
+);
+
+set @org_mode=@@sql_mode;
+set @@sql_mode='NO_DIR_IN_CREATE';
+select @@sql_mode;
+create table t1 (i int )
+partition by range (i)
+(
+ partition p01 values less than (1000)
+ data directory='/not/existing'
+ index directory='/not/existing'
+);
+
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+show create table t2;
+DROP TABLE t1, t2;
+set @@sql_mode=@org_mode;
+
+#
+# Bug 21350: Data Directory problems
+#
+-- error ER_WRONG_TABLE_NAME
+create table t1 (a int)
+partition by key (a)
+(partition p0 DATA DIRECTORY 'part-data' INDEX DIRECTORY 'part-data');
+
+#
+# Insert a test that manages to create the first partition and fails with
+# the second, ensure that we clean up afterwards in a proper manner.
+#
+--error ER_WRONG_TABLE_NAME
+create table t1 (a int)
+partition by key (a)
+(partition p0,
+ partition p1 DATA DIRECTORY 'part-data' INDEX DIRECTORY 'part-data');
diff --git a/mysql-test/t/partition_windows.test b/mysql-test/t/partition_windows.test
index a0723feac44..d42a7383c99 100644
--- a/mysql-test/t/partition_windows.test
+++ b/mysql-test/t/partition_windows.test
@@ -7,23 +7,34 @@
#
# Bug 25141: Crash Server on Partitioning command
#
+# Bug#30459: Partitioning across disks failing on Windows
+# updated this test, since symlinked files are not supported on Windows
+# (not the same as symlinked directories that have a special hack
+# on windows). This test is not dependent on have_symlink.
--disable_warnings
-DROP TABLE IF EXISTS `example`;
+DROP TABLE IF EXISTS t1;
--enable_warnings
---disable_abort_on_error
-CREATE TABLE `example` (
- `ID_EXAMPLE` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `DESCRIPTION` varchar(30) NOT NULL,
- `LEVEL` smallint(5) unsigned DEFAULT NULL,
- PRIMARY KEY (`ID_EXAMPLE`)
+CREATE TABLE t1 (
+ c1 int(10) unsigned NOT NULL AUTO_INCREMENT,
+ c2 varchar(30) NOT NULL,
+ c3 smallint(5) unsigned DEFAULT NULL,
+ PRIMARY KEY (c1)
) ENGINE = MYISAM
-PARTITION BY HASH(ID_EXAMPLE)(
-PARTITION p0 DATA DIRECTORY = 'C:/build/5.1/data/partitiontest/p0Data',
-PARTITION p1 DATA DIRECTORY = 'C:/build/5.1/data/partitiontest/p1Data',
-PARTITION p2 DATA DIRECTORY = 'C:/build/5.1/data/partitiontest/p2Data',
-PARTITION p3 DATA DIRECTORY = 'C:/build/5.1/data/partitiontest/p3Data'
+PARTITION BY HASH(c1)(
+ PARTITION p0
+ DATA DIRECTORY = 'C:/mysqltest/p0Data'
+ INDEX DIRECTORY = 'D:/mysqltest/p0Index',
+ PARTITION p1,
+ PARTITION p2
+ DATA DIRECTORY = 'E:/mysqltest/p2Data'
+ INDEX DIRECTORY = 'F:/mysqltest/p2Index'
);
---enable_abort_on_error
+INSERT INTO t1 VALUES (NULL, "first", 1);
+INSERT INTO t1 VALUES (NULL, "second", 2);
+INSERT INTO t1 VALUES (NULL, "third", 3);
+ALTER TABLE t1 ADD PARTITION (PARTITION p3 DATA DIRECTORY = 'G:/mysqltest/p3Data' INDEX DIRECTORY = 'H:/mysqltest/p3Index');
+INSERT INTO t1 VALUES (NULL, "last", 4);
+DROP TABLE t1;
diff --git a/mysql-test/t/plugin_load-master.opt b/mysql-test/t/plugin_load-master.opt
new file mode 100644
index 00000000000..66637841f16
--- /dev/null
+++ b/mysql-test/t/plugin_load-master.opt
@@ -0,0 +1,3 @@
+$EXAMPLE_PLUGIN_OPT
+"--plugin-load=;EXAMPLE=ha_example.so;"
+--loose-plugin-example-enum-var=e2
diff --git a/mysql-test/t/plugin_load.test b/mysql-test/t/plugin_load.test
new file mode 100644
index 00000000000..8555247dd71
--- /dev/null
+++ b/mysql-test/t/plugin_load.test
@@ -0,0 +1,3 @@
+--source include/have_example_plugin.inc
+
+SELECT @@global.example_enum_var = 'e2';
diff --git a/mysql-test/t/query_cache.test b/mysql-test/t/query_cache.test
index 771a32e8cd7..0e899da59da 100644
--- a/mysql-test/t/query_cache.test
+++ b/mysql-test/t/query_cache.test
@@ -1298,6 +1298,25 @@ set GLOBAL query_cache_limit=default;
set GLOBAL query_cache_min_res_unit=default;
set GLOBAL query_cache_size=default;
+#
+# Bug#33756 - query cache with concurrent_insert=0 appears broken
+#
+FLUSH STATUS;
+SET GLOBAL query_cache_size=10*1024*1024;
+SET @save_concurrent_insert= @@concurrent_insert;
+SET GLOBAL concurrent_insert= 0;
+CREATE TABLE t1 (c1 INT NOT NULL) ENGINE=MyISAM;
+INSERT INTO t1 (c1) VALUES (1), (2);
+#
+SHOW GLOBAL VARIABLES LIKE 'concurrent_insert';
+SHOW STATUS LIKE 'Qcache_hits';
+SELECT * FROM t1;
+SELECT * FROM t1;
+SHOW STATUS LIKE 'Qcache_hits';
+DROP TABLE t1;
+SET GLOBAL concurrent_insert= @save_concurrent_insert;
+SET GLOBAL query_cache_size= default;
+
--echo End of 5.0 tests
#
diff --git a/mysql-test/t/symlink.test b/mysql-test/t/symlink.test
index 69535b7d9d1..7de9f6c6de0 100644
--- a/mysql-test/t/symlink.test
+++ b/mysql-test/t/symlink.test
@@ -38,9 +38,8 @@ drop table t2;
# We use t9 here to not crash with tables generated by the backup test
#
-disable_query_log;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval create table t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="$MYSQLTEST_VARDIR/tmp" index directory="$MYSQLTEST_VARDIR/run";
-enable_query_log;
insert into t9 select * from t1;
check table t9;
@@ -66,7 +65,6 @@ drop table t1;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
SHOW CREATE TABLE t9;
-disable_query_log;
--error 1103,1103
create table t1 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="tmp";
@@ -81,13 +79,14 @@ create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, p
create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam index directory="not-hard-path";
# Should fail becasue the file t9.MYI already exist in 'run'
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--error 1,1,1105
eval create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam index directory="$MYSQLTEST_VARDIR/run";
# Should fail becasue the file t9.MYD already exist in 'tmp'
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--error 1,1
eval create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="$MYSQLTEST_VARDIR/tmp";
-enable_query_log;
# Check moving table t9 from default database to mysqltest;
# In this case the symlinks should be removed.
@@ -103,20 +102,17 @@ drop database mysqltest;
#
create table t1 (a int not null) engine=myisam;
-disable_query_log;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval alter table t1 data directory="$MYSQLTEST_VARDIR/tmp";
-enable_query_log;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
show create table t1;
alter table t1 add b int;
-disable_query_log;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval alter table t1 data directory="$MYSQLTEST_VARDIR/log";
-enable_query_log;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
show create table t1;
-disable_query_log;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval alter table t1 index directory="$MYSQLTEST_VARDIR/log";
-enable_query_log;
show create table t1;
drop table t1;
@@ -125,8 +121,9 @@ drop table t1;
#
--write_file $MYSQLTEST_VARDIR/tmp/t1.MYI
EOF
---replace_result $MYSQLTEST_VARDIR TEST_DIR
---error 1
+
+--replace_result $MYSQLTEST_VARDIR TEST_DIR $MYSQLTEST_VARDIR TEST_DIR
+--error 1,1
eval CREATE TABLE t1(a INT)
DATA DIRECTORY='$MYSQLTEST_VARDIR/tmp'
INDEX DIRECTORY='$MYSQLTEST_VARDIR/tmp';
@@ -147,18 +144,16 @@ connect (session1,localhost,root,,);
connect (session2,localhost,root,,);
connection session1;
-disable_query_log;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval create temporary table t1 (a int) engine=myisam data directory="$MYSQLTEST_VARDIR/log" select 9 a;
-enable_query_log;
# If running test suite with a non standard tmp dir, the "show create table"
# will print "DATA_DIRECTORY=". Use replace_result to mask it out
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
show create table t1;
connection session2;
-disable_query_log;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval create temporary table t1 (a int) engine=myisam data directory="$MYSQLTEST_VARDIR/log" select 99 a;
-enable_query_log;
# If running test suite with a non standard tmp dir, the "show create table"
# will print "DATA_DIRECTORY=". Use replace_result to mask it out
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
@@ -209,14 +204,24 @@ INDEX DIRECTORY='$MYSQLTEST_VARDIR/master-data/mysql';
eval CREATE TABLE t1(a INT)
DATA DIRECTORY='$MYSQLTEST_VARDIR/master-data/test';
--replace_result $MYSQLTEST_VARDIR TEST_DIR
+--error 1210
eval CREATE TABLE t1(a INT)
DATA DIRECTORY='$MYSQLTEST_VARDIR/master-data/';
-DROP TABLE t1;
--replace_result $MYSQLTEST_VARDIR TEST_DIR
+--error 1210
eval CREATE TABLE t1(a INT)
INDEX DIRECTORY='$MYSQLTEST_VARDIR/master-data';
-DROP TABLE t1;
--replace_result $MYSQLTEST_VARDIR TEST_DIR
--error 1
eval CREATE TABLE t1(a INT)
INDEX DIRECTORY='$MYSQLTEST_VARDIR/master-data_var';
+# BUG#25677 - With --skip-symbolic-links option on, DATA DIRECTORY clause is
+# silently ignored
+#
+SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE='NO_DIR_IN_CREATE';
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval CREATE TABLE t1(a INT) DATA DIRECTORY='$MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY='$MYSQLTEST_VARDIR/tmp';
+DROP TABLE t1;
+SET @@SQL_MODE=@OLD_SQL_MODE;
+
+--echo End of 5.1 tests
diff --git a/mysql-test/t/type_set.test b/mysql-test/t/type_set.test
index c7f8c59de28..e98555e137b 100644
--- a/mysql-test/t/type_set.test
+++ b/mysql-test/t/type_set.test
@@ -75,4 +75,4 @@ INSERT INTO t1 VALUES(9223372036854775808);
SELECT * FROM t1;
DROP TABLE t1;
---# echo End of 5.0 tests
+--echo End of 5.0 tests
diff --git a/mysql-test/valgrind.supp b/mysql-test/valgrind.supp
index a4fb488a3d6..cb1b07c83b0 100644
--- a/mysql-test/valgrind.supp
+++ b/mysql-test/valgrind.supp
@@ -495,3 +495,16 @@
fun:_db_enter_
fun:kill_server
}
+
+#
+# Warning caused by small memory leak in threaded dlopen
+#
+
+{
+ dlopen threaded memory leak
+ Memcheck:Leak
+ fun:calloc
+ obj:*/libdl-*.so
+ fun:dlopen*
+}
+
diff --git a/mysys/base64.c b/mysys/base64.c
index dbe8927290d..6157dcaa5af 100644
--- a/mysys/base64.c
+++ b/mysys/base64.c
@@ -256,6 +256,7 @@ main(void)
char * str;
char * dst;
+ require(src);
for (j= 0; j<src_len; j++)
{
char c= rand();
@@ -265,6 +266,7 @@ main(void)
/* Encode */
needed_length= base64_needed_encoded_length(src_len);
str= (char *) malloc(needed_length);
+ require(str);
for (k= 0; k < needed_length; k++)
str[k]= 0xff; /* Fill memory to check correct NUL termination */
require(base64_encode(src, src_len, str) == 0);
@@ -272,7 +274,8 @@ main(void)
/* Decode */
dst= (char *) malloc(base64_needed_decoded_length(strlen(str)));
- dst_len= base64_decode(str, strlen(str), dst);
+ require(dst);
+ dst_len= base64_decode(str, strlen(str), dst, NULL);
require(dst_len == src_len);
if (memcmp(src, dst, src_len) != 0)
diff --git a/sql/field.cc b/sql/field.cc
index 4b07da2c1c1..32bf5855d8b 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -7636,6 +7636,17 @@ int Field_blob::store(const char *from,uint length,CHARSET_INFO *cs)
if (value.alloc(new_length))
goto oom_error;
+
+ if (f_is_hex_escape(flags))
+ {
+ copy_length= my_copy_with_hex_escaping(field_charset,
+ (char*) value.ptr(), new_length,
+ from, length);
+ Field_blob::store_length(copy_length);
+ tmp= value.ptr();
+ bmove(ptr + packlength, (uchar*) &tmp, sizeof(char*));
+ return 0;
+ }
/*
"length" is OK as "nchars" argument to well_formed_copy_nchars as this
is never used to limit the length of the data. The cut of long data
@@ -8779,6 +8790,23 @@ Field_bit::Field_bit(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg,
}
+void Field_bit::hash(ulong *nr, ulong *nr2)
+{
+ if (is_null())
+ {
+ *nr^= (*nr << 1) | 1;
+ }
+ else
+ {
+ CHARSET_INFO *cs= &my_charset_bin;
+ longlong value= Field_bit::val_int();
+ uchar tmp[8];
+ mi_int8store(tmp,value);
+ cs->coll->hash_sort(cs, tmp, 8, nr, nr2);
+ }
+}
+
+
size_t
Field_bit::do_last_null_byte() const
{
diff --git a/sql/field.h b/sql/field.h
index 9855ec563d5..5457b7284e9 100644
--- a/sql/field.h
+++ b/sql/field.h
@@ -1906,6 +1906,7 @@ public:
Field::move_field_offset(ptr_diff);
bit_ptr= ADD_TO_PTR(bit_ptr, ptr_diff, uchar*);
}
+ void hash(ulong *nr, ulong *nr2);
private:
virtual size_t do_last_null_byte() const;
@@ -2070,6 +2071,7 @@ int set_field_to_null_with_conversions(Field *field, bool no_conversions);
#define FIELDFLAG_NO_DEFAULT 16384 /* sql */
#define FIELDFLAG_SUM ((uint) 32768)// predit: +#fieldflag
#define FIELDFLAG_MAYBE_NULL ((uint) 32768)// sql
+#define FIELDFLAG_HEX_ESCAPE ((uint) 0x10000)
#define FIELDFLAG_PACK_SHIFT 3
#define FIELDFLAG_DEC_SHIFT 8
#define FIELDFLAG_MAX_DEC 31
@@ -2095,3 +2097,4 @@ int set_field_to_null_with_conversions(Field *field, bool no_conversions);
#define f_maybe_null(x) (x & FIELDFLAG_MAYBE_NULL)
#define f_no_default(x) (x & FIELDFLAG_NO_DEFAULT)
#define f_bit_as_char(x) ((x) & FIELDFLAG_TREAT_BIT_AS_CHAR)
+#define f_is_hex_escape(x) ((x) & FIELDFLAG_HEX_ESCAPE)
diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc
index 51070a525c5..ae7e2215517 100644
--- a/sql/ha_partition.cc
+++ b/sql/ha_partition.cc
@@ -1028,6 +1028,7 @@ int ha_partition::repair_partitions(THD *thd)
0 Success
*/
+#ifdef WL4176_IS_DONE
static int handle_opt_part(THD *thd, HA_CHECK_OPT *check_opt,
handler *file, uint flag)
{
@@ -1035,6 +1036,12 @@ static int handle_opt_part(THD *thd, HA_CHECK_OPT *check_opt,
DBUG_ENTER("handle_opt_part");
DBUG_PRINT("enter", ("flag = %u", flag));
+ /*
+ TODO:
+ Rewrite the code for ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION WL4176
+ */
+ DBUG_RETURN(HA_ADMIN_NOT_IMPLEMENTED);
+
if (flag == OPTIMIZE_PARTS)
error= file->ha_optimize(thd, check_opt);
else if (flag == ANALYZE_PARTS)
@@ -1052,6 +1059,7 @@ static int handle_opt_part(THD *thd, HA_CHECK_OPT *check_opt,
error= 0;
DBUG_RETURN(error);
}
+#endif
/*
@@ -1072,14 +1080,22 @@ static int handle_opt_part(THD *thd, HA_CHECK_OPT *check_opt,
int ha_partition::handle_opt_partitions(THD *thd, HA_CHECK_OPT *check_opt,
uint flag, bool all_parts)
{
+#ifdef WL4176_IS_DONE
List_iterator<partition_element> part_it(m_part_info->partitions);
uint no_parts= m_part_info->no_parts;
uint no_subparts= m_part_info->no_subparts;
uint i= 0;
int error;
+#endif
DBUG_ENTER("ha_partition::handle_opt_partitions");
DBUG_PRINT("enter", ("all_parts %u, flag= %u", all_parts, flag));
+ /*
+ TODO:
+ Rewrite the code for ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION WL4176
+ */
+ DBUG_RETURN(HA_ADMIN_NOT_IMPLEMENTED);
+#ifdef WL4176_IS_DONE
do
{
partition_element *part_elem= part_it++;
@@ -1110,6 +1126,7 @@ int ha_partition::handle_opt_partitions(THD *thd, HA_CHECK_OPT *check_opt,
}
} while (++i < no_parts);
DBUG_RETURN(FALSE);
+#endif
}
/*
@@ -1629,6 +1646,15 @@ void ha_partition::change_table_ptr(TABLE *table_arg, TABLE_SHARE *share)
{
(*file_array)->change_table_ptr(table_arg, share);
} while (*(++file_array));
+ if (m_added_file && m_added_file[0])
+ {
+ /* if in middle of a drop/rename etc */
+ file_array= m_added_file;
+ do
+ {
+ (*file_array)->change_table_ptr(table_arg, share);
+ } while (*(++file_array));
+ }
}
/*
diff --git a/sql/item.cc b/sql/item.cc
index cfb8f336a91..0a1db55761f 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -1296,6 +1296,7 @@ bool Item_name_const::fix_fields(THD *thd, Item **ref)
return TRUE;
}
set_name(item_name->ptr(), (uint) item_name->length(), system_charset_info);
+ collation.set(value_item->collation.collation, DERIVATION_IMPLICIT);
max_length= value_item->max_length;
decimals= value_item->decimals;
fixed= 1;
diff --git a/sql/item_create.cc b/sql/item_create.cc
index 40578bef5f8..49cc33b95a7 100644
--- a/sql/item_create.cc
+++ b/sql/item_create.cc
@@ -4354,12 +4354,12 @@ Create_func_space::create(THD *thd, Item *arg1)
if (cs->mbminlen > 1)
{
uint dummy_errors;
- sp= new (thd->mem_root) Item_string("", 0, cs);
+ sp= new (thd->mem_root) Item_string("", 0, cs, DERIVATION_COERCIBLE, MY_REPERTOIRE_ASCII);
sp->str_value.copy(" ", 1, &my_charset_latin1, cs, &dummy_errors);
}
else
{
- sp= new (thd->mem_root) Item_string(" ", 1, cs);
+ sp= new (thd->mem_root) Item_string(" ", 1, cs, DERIVATION_COERCIBLE, MY_REPERTOIRE_ASCII);
}
return new (thd->mem_root) Item_func_repeat(sp, arg1);
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 02b15461c22..c938bf5ebe1 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -3715,11 +3715,24 @@ longlong Item_func_sleep::val_int()
DBUG_ASSERT(fixed == 1);
double time= args[0]->val_real();
+ /*
+ On 64-bit OSX pthread_cond_timedwait() waits forever
+ if passed abstime time has already been exceeded by
+ the system time.
+ When given a very short timeout (< 10 mcs) just return
+ immediately.
+ We assume that the lines between this test and the call
+ to pthread_cond_timedwait() will be executed in less than 0.00001 sec.
+ */
+ if (time < 0.00001)
+ return 0;
+
set_timespec_nsec(abstime, (ulonglong)(time * ULL(1000000000)));
pthread_cond_init(&cond, NULL);
pthread_mutex_lock(&LOCK_user_locks);
+ thd_proc_info(thd, "User sleep");
thd->mysys_var->current_mutex= &LOCK_user_locks;
thd->mysys_var->current_cond= &cond;
@@ -3731,6 +3744,7 @@ longlong Item_func_sleep::val_int()
break;
error= 0;
}
+ thd_proc_info(thd, 0);
pthread_mutex_unlock(&LOCK_user_locks);
pthread_mutex_lock(&thd->mysys_var->mutex);
thd->mysys_var->current_mutex= 0;
diff --git a/sql/item_func.h b/sql/item_func.h
index b6ee0a3de5e..02631d7643d 100644
--- a/sql/item_func.h
+++ b/sql/item_func.h
@@ -309,7 +309,6 @@ class Item_num_op :public Item_func_numhybrid
void find_num_type();
String *str_op(String *str) { DBUG_ASSERT(0); return 0; }
- bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
};
@@ -395,6 +394,7 @@ class Item_func_additive_op :public Item_num_op
public:
Item_func_additive_op(Item *a,Item *b) :Item_num_op(a,b) {}
void result_precision();
+ bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
};
@@ -429,6 +429,7 @@ public:
double real_op();
my_decimal *decimal_op(my_decimal *);
void result_precision();
+ bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
};
@@ -474,6 +475,7 @@ public:
const char *func_name() const { return "%"; }
void result_precision();
void fix_length_and_dec();
+ bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
};
diff --git a/sql/key.cc b/sql/key.cc
index 7f075674ab6..47e5c5ebdd7 100644
--- a/sql/key.cc
+++ b/sql/key.cc
@@ -168,6 +168,7 @@ void key_restore(uchar *to_record, uchar *from_key, KEY *key_info,
}
for (key_part= key_info->key_part ; (int) key_length > 0 ; key_part++)
{
+ uchar used_uneven_bits= 0;
if (key_part->null_bit)
{
if (*from_key++)
@@ -186,6 +187,8 @@ void key_restore(uchar *to_record, uchar *from_key, KEY *key_info,
set_rec_bits(bits, to_record + key_part->null_offset +
(key_part->null_bit == 128),
field->bit_ofs, field->bit_len);
+ /* we have now used the byte with 'uneven' bits */
+ used_uneven_bits= 1;
}
}
if (key_part->key_part_flag & HA_BLOB_PART)
@@ -222,7 +225,9 @@ void key_restore(uchar *to_record, uchar *from_key, KEY *key_info,
else
{
length= min(key_length, key_part->length);
- memcpy(to_record + key_part->offset, from_key, (size_t) length);
+ /* skip the byte with 'uneven' bits, if used */
+ memcpy(to_record + key_part->offset, from_key + used_uneven_bits
+ , (size_t) length - used_uneven_bits);
}
from_key+= length;
key_length-= length;
diff --git a/sql/log.cc b/sql/log.cc
index 103a7ccdf41..2591e326156 100644
--- a/sql/log.cc
+++ b/sql/log.cc
@@ -418,6 +418,7 @@ bool Log_to_csv_event_handler::
A positive return value in store() means truncation.
Still logging a message in the log in this case.
*/
+ table->field[5]->flags|= FIELDFLAG_HEX_ESCAPE;
if (table->field[5]->store(sql_text, sql_text_len, client_cs) < 0)
goto err;
diff --git a/sql/log_event.cc b/sql/log_event.cc
index 15f1a957149..1f5351c1b3f 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -609,6 +609,7 @@ Log_event::Log_event(const char* buf,
#endif
when = uint4korr(buf);
server_id = uint4korr(buf + SERVER_ID_OFFSET);
+ data_written= uint4korr(buf + EVENT_LEN_OFFSET);
if (description_event->binlog_version==1)
{
log_pos= 0;
@@ -641,7 +642,7 @@ Log_event::Log_event(const char* buf,
binlog, so which will cause problems if the user uses this value
in CHANGE MASTER).
*/
- log_pos+= uint4korr(buf + EVENT_LEN_OFFSET);
+ log_pos+= data_written; /* purecov: inspected */
}
DBUG_PRINT("info", ("log_pos: %lu", (ulong) log_pos));
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index 9bdf6e2a1d5..0a51ae529ef 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -1652,6 +1652,7 @@ extern pthread_mutex_t LOCK_gdl;
#define WFRM_WRITE_SHADOW 1
#define WFRM_INSTALL_SHADOW 2
#define WFRM_PACK_FRM 4
+#define WFRM_KEEP_SHARE 8
bool mysql_write_frm(ALTER_PARTITION_PARAM_TYPE *lpt, uint flags);
int abort_and_upgrade_lock(ALTER_PARTITION_PARAM_TYPE *lpt);
void close_open_tables_and_downgrade(ALTER_PARTITION_PARAM_TYPE *lpt);
diff --git a/sql/partition_info.cc b/sql/partition_info.cc
index 3130f84bd73..8feac884c77 100644
--- a/sql/partition_info.cc
+++ b/sql/partition_info.cc
@@ -419,41 +419,167 @@ char *partition_info::has_unique_names()
/*
- Check that all partitions use the same storage engine.
- This is currently a limitation in this version.
+ Check that the partition/subpartition is setup to use the correct
+ storage engine
+ SYNOPSIS
+ check_engine_condition()
+ p_elem Partition element
+ table_engine_set Have user specified engine on table level
+ inout::engine_type Current engine used
+ inout::first Is it first partition
+ RETURN VALUE
+ TRUE Failed check
+ FALSE Ok
+ DESCRIPTION
+ Specified engine for table and partitions p0 and pn
+ Must be correct both on CREATE and ALTER commands
+ table p0 pn res (0 - OK, 1 - FAIL)
+ - - - 0
+ - - x 1
+ - x - 1
+ - x x 0
+ x - - 0
+ x - x 0
+ x x - 0
+ x x x 0
+ i.e:
+ - All subpartitions must use the same engine
+ AND it must be the same as the partition.
+ - All partitions must use the same engine
+ AND it must be the same as the table.
+ - if one does NOT specify an engine on the table level
+ then one must either NOT specify any engine on any
+ partition/subpartition OR for ALL partitions/subpartitions
+ Note:
+ When ALTER a table, the engines are already set for all levels
+ (table, all partitions and subpartitions). So if one want to
+ change the storage engine, one must specify it on the table level
+*/
+
+static bool check_engine_condition(partition_element *p_elem,
+ bool table_engine_set,
+ handlerton **engine_type,
+ bool *first)
+{
+ DBUG_ENTER("check_engine_condition");
+
+ DBUG_PRINT("enter", ("p_eng %s t_eng %s t_eng_set %u first %u state %u",
+ ha_resolve_storage_engine_name(p_elem->engine_type),
+ ha_resolve_storage_engine_name(*engine_type),
+ table_engine_set, *first, p_elem->part_state));
+ if (*first && !table_engine_set)
+ {
+ *engine_type= p_elem->engine_type;
+ DBUG_PRINT("info", ("setting table_engine = %s",
+ ha_resolve_storage_engine_name(*engine_type)));
+ }
+ *first= FALSE;
+ if ((table_engine_set &&
+ (p_elem->engine_type != (*engine_type) &&
+ p_elem->engine_type)) ||
+ (!table_engine_set &&
+ p_elem->engine_type != (*engine_type)))
+ {
+ DBUG_RETURN(TRUE);
+ }
+ else
+ {
+ DBUG_RETURN(FALSE);
+ }
+}
+
+
+/*
+ Check engine mix that it is correct
+ Current limitation is that all partitions and subpartitions
+ must use the same storage engine.
SYNOPSIS
check_engine_mix()
- engine_array An array of engine identifiers
- no_parts Total number of partitions
-
+ inout::engine_type Current engine used
+ table_engine_set Have user specified engine on table level
RETURN VALUE
- TRUE Error, mixed engines
- FALSE Ok, no mixed engines
+ TRUE Error, mixed engines
+ FALSE Ok, no mixed engines
DESCRIPTION
Current check verifies only that all handlers are the same.
Later this check will be more sophisticated.
+ (specified partition handler ) specified table handler
+ (NDB, NDB) NDB OK
+ (MYISAM, MYISAM) - OK
+ (MYISAM, -) - NOT OK
+ (MYISAM, -) MYISAM OK
+ (- , MYISAM) - NOT OK
+ (- , -) MYISAM OK
+ (-,-) - OK
+ (NDB, MYISAM) * NOT OK
*/
-bool partition_info::check_engine_mix(handlerton **engine_array, uint no_parts)
+bool partition_info::check_engine_mix(handlerton *engine_type,
+ bool table_engine_set)
{
- uint i= 0;
+ handlerton *old_engine_type= engine_type;
+ bool first= TRUE;
+ uint no_parts= partitions.elements;
DBUG_ENTER("partition_info::check_engine_mix");
-
- do
+ DBUG_PRINT("info", ("in: engine_type = %s, table_engine_set = %u",
+ ha_resolve_storage_engine_name(engine_type),
+ table_engine_set));
+ if (no_parts)
{
- if (engine_array[i] != engine_array[0])
+ List_iterator<partition_element> part_it(partitions);
+ uint i= 0;
+ do
{
- my_error(ER_MIX_HANDLER_ERROR, MYF(0));
- DBUG_RETURN(TRUE);
- }
- } while (++i < no_parts);
- if (engine_array[0]->flags & HTON_NO_PARTITION)
+ partition_element *part_elem= part_it++;
+ DBUG_PRINT("info", ("part = %d engine = %s table_engine_set %u",
+ i, ha_resolve_storage_engine_name(part_elem->engine_type),
+ table_engine_set));
+ if (is_sub_partitioned() &&
+ part_elem->subpartitions.elements)
+ {
+ uint no_subparts= part_elem->subpartitions.elements;
+ uint j= 0;
+ List_iterator<partition_element> sub_it(part_elem->subpartitions);
+ do
+ {
+ partition_element *sub_elem= sub_it++;
+ DBUG_PRINT("info", ("sub = %d engine = %s table_engie_set %u",
+ j, ha_resolve_storage_engine_name(sub_elem->engine_type),
+ table_engine_set));
+ if (check_engine_condition(sub_elem, table_engine_set,
+ &engine_type, &first))
+ goto error;
+ } while (++j < no_subparts);
+ /* ensure that the partition also has correct engine */
+ if (check_engine_condition(part_elem, table_engine_set,
+ &engine_type, &first))
+ goto error;
+ }
+ else if (check_engine_condition(part_elem, table_engine_set,
+ &engine_type, &first))
+ goto error;
+ } while (++i < no_parts);
+ }
+ DBUG_PRINT("info", ("engine_type = %s",
+ ha_resolve_storage_engine_name(engine_type)));
+ if (!engine_type)
+ engine_type= old_engine_type;
+ if (engine_type->flags & HTON_NO_PARTITION)
{
my_error(ER_PARTITION_MERGE_ERROR, MYF(0));
DBUG_RETURN(TRUE);
}
+ DBUG_PRINT("info", ("out: engine_type = %s",
+ ha_resolve_storage_engine_name(engine_type)));
+ DBUG_ASSERT(engine_type != partition_hton);
DBUG_RETURN(FALSE);
+error:
+ /*
+ Mixed engines not yet supported but when supported it will need
+ the partition handler
+ */
+ DBUG_RETURN(TRUE);
}
@@ -726,13 +852,15 @@ bool partition_info::check_partition_info(THD *thd, handlerton **eng_type,
handler *file, HA_CREATE_INFO *info,
bool check_partition_function)
{
- handlerton **engine_array= NULL;
- uint part_count= 0;
+ handlerton *table_engine= default_engine_type;
uint i, tot_partitions;
- bool result= TRUE;
+ bool result= TRUE, table_engine_set;
char *same_name;
DBUG_ENTER("partition_info::check_partition_info");
+ DBUG_ASSERT(default_engine_type != partition_hton);
+ DBUG_PRINT("info", ("default table_engine = %s",
+ ha_resolve_storage_engine_name(table_engine)));
if (check_partition_function)
{
int err= 0;
@@ -777,44 +905,89 @@ bool partition_info::check_partition_info(THD *thd, handlerton **eng_type,
my_error(ER_TOO_MANY_PARTITIONS_ERROR, MYF(0));
goto end;
}
+ /*
+ if NOT specified ENGINE = <engine>:
+ If Create, always use create_info->db_type
+ else, use previous tables db_type
+ either ALL or NONE partition should be set to
+ default_engine_type when not table_engine_set
+ Note: after a table is created its storage engines for
+ the table and all partitions/subpartitions are set.
+ So when ALTER it is already set on table level
+ */
+ if (info && info->used_fields & HA_CREATE_USED_ENGINE)
+ {
+ table_engine_set= TRUE;
+ table_engine= info->db_type;
+ /* if partition_hton, use thd->lex->create_info */
+ if (table_engine == partition_hton)
+ table_engine= thd->lex->create_info.db_type;
+ DBUG_ASSERT(table_engine != partition_hton);
+ DBUG_PRINT("info", ("Using table_engine = %s",
+ ha_resolve_storage_engine_name(table_engine)));
+ }
+ else
+ {
+ table_engine_set= FALSE;
+ if (thd->lex->sql_command != SQLCOM_CREATE_TABLE)
+ {
+ table_engine_set= TRUE;
+ DBUG_PRINT("info", ("No create, table_engine = %s",
+ ha_resolve_storage_engine_name(table_engine)));
+ DBUG_ASSERT(table_engine && table_engine != partition_hton);
+ }
+ }
+
if ((same_name= has_unique_names()))
{
my_error(ER_SAME_NAME_PARTITION, MYF(0), same_name);
goto end;
}
- engine_array= (handlerton**)my_malloc(tot_partitions * sizeof(handlerton *),
- MYF(MY_WME));
- if (unlikely(!engine_array))
- goto end;
i= 0;
{
List_iterator<partition_element> part_it(partitions);
+ uint no_parts_not_set= 0;
+ uint prev_no_subparts_not_set= no_subparts + 1;
do
{
partition_element *part_elem= part_it++;
- if (part_elem->engine_type == NULL)
- part_elem->engine_type= default_engine_type;
- if (thd->variables.sql_mode & MODE_NO_DIR_IN_CREATE)
- part_elem->data_file_name= part_elem->index_file_name= 0;
+#ifdef HAVE_READLINK
+ if (!my_use_symdir || (thd->variables.sql_mode & MODE_NO_DIR_IN_CREATE))
+#endif
+ {
+ if (part_elem->data_file_name)
+ push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, 0,
+ "DATA DIRECTORY option ignored");
+ if (part_elem->index_file_name)
+ push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, 0,
+ "INDEX DIRECTORY option ignored");
+ part_elem->data_file_name= part_elem->index_file_name= NULL;
+ }
if (!is_sub_partitioned())
{
+ if (part_elem->engine_type == NULL)
+ {
+ no_parts_not_set++;
+ part_elem->engine_type= default_engine_type;
+ }
if (check_table_name(part_elem->partition_name,
strlen(part_elem->partition_name)))
{
my_error(ER_WRONG_PARTITION_NAME, MYF(0));
goto end;
}
- DBUG_PRINT("info", ("engine = %d",
- ha_legacy_type(part_elem->engine_type)));
- engine_array[part_count++]= part_elem->engine_type;
+ DBUG_PRINT("info", ("part = %d engine = %s",
+ i, ha_resolve_storage_engine_name(part_elem->engine_type)));
}
else
{
uint j= 0;
+ uint no_subparts_not_set= 0;
List_iterator<partition_element> sub_it(part_elem->subpartitions);
+ partition_element *sub_elem;
do
{
- partition_element *sub_elem= sub_it++;
+ sub_elem= sub_it++;
if (check_table_name(sub_elem->partition_name,
strlen(sub_elem->partition_name)))
{
@@ -822,19 +995,65 @@ bool partition_info::check_partition_info(THD *thd, handlerton **eng_type,
goto end;
}
if (sub_elem->engine_type == NULL)
- sub_elem->engine_type= default_engine_type;
- DBUG_PRINT("info", ("engine = %u",
- ha_legacy_type(sub_elem->engine_type)));
- engine_array[part_count++]= sub_elem->engine_type;
+ {
+ if (part_elem->engine_type != NULL)
+ sub_elem->engine_type= part_elem->engine_type;
+ else
+ {
+ sub_elem->engine_type= default_engine_type;
+ no_subparts_not_set++;
+ }
+ }
+ DBUG_PRINT("info", ("part = %d sub = %d engine = %s", i, j,
+ ha_resolve_storage_engine_name(sub_elem->engine_type)));
} while (++j < no_subparts);
+
+ if (prev_no_subparts_not_set == (no_subparts + 1) &&
+ (no_subparts_not_set == 0 || no_subparts_not_set == no_subparts))
+ prev_no_subparts_not_set= no_subparts_not_set;
+
+ if (!table_engine_set &&
+ prev_no_subparts_not_set != no_subparts_not_set)
+ {
+ DBUG_PRINT("info", ("no_subparts_not_set = %u no_subparts = %u",
+ no_subparts_not_set, no_subparts));
+ my_error(ER_MIX_HANDLER_ERROR, MYF(0));
+ goto end;
+ }
+
+ if (part_elem->engine_type == NULL)
+ {
+ if (no_subparts_not_set == 0)
+ part_elem->engine_type= sub_elem->engine_type;
+ else
+ {
+ no_parts_not_set++;
+ part_elem->engine_type= default_engine_type;
+ }
+ }
}
} while (++i < no_parts);
+ if (!table_engine_set &&
+ no_parts_not_set != 0 &&
+ no_parts_not_set != no_parts)
+ {
+ DBUG_PRINT("info", ("no_parts_not_set = %u no_parts = %u",
+ no_parts_not_set, no_subparts));
+ my_error(ER_MIX_HANDLER_ERROR, MYF(0));
+ goto end;
+ }
}
- if (unlikely(partition_info::check_engine_mix(engine_array, part_count)))
+ if (unlikely(check_engine_mix(table_engine, table_engine_set)))
+ {
+ my_error(ER_MIX_HANDLER_ERROR, MYF(0));
goto end;
+ }
+ DBUG_ASSERT(table_engine != partition_hton &&
+ default_engine_type == table_engine);
if (eng_type)
- *eng_type= (handlerton*)engine_array[0];
+ *eng_type= table_engine;
+
/*
We need to check all constant expressions that they are of the correct
@@ -850,7 +1069,6 @@ bool partition_info::check_partition_info(THD *thd, handlerton **eng_type,
}
result= FALSE;
end:
- my_free((char*)engine_array,MYF(MY_ALLOW_ZERO_PTR));
DBUG_RETURN(result);
}
@@ -1094,11 +1312,11 @@ bool check_partition_dirs(partition_info *part_info)
return 0;
dd_err:
- my_error(ER_WRONG_ARGUMENTS,MYF(0),"DATA DIRECORY");
+ my_error(ER_WRONG_ARGUMENTS,MYF(0),"DATA DIRECTORY");
return 1;
id_err:
- my_error(ER_WRONG_ARGUMENTS,MYF(0),"INDEX DIRECORY");
+ my_error(ER_WRONG_ARGUMENTS,MYF(0),"INDEX DIRECTORY");
return 1;
}
diff --git a/sql/partition_info.h b/sql/partition_info.h
index 2859aaec3be..2af7fa1717c 100644
--- a/sql/partition_info.h
+++ b/sql/partition_info.h
@@ -269,7 +269,7 @@ public:
bool set_up_defaults_for_partitioning(handler *file, HA_CREATE_INFO *info,
uint start_no);
char *has_unique_names();
- static bool check_engine_mix(handlerton **engine_array, uint no_parts);
+ bool check_engine_mix(handlerton *engine_type, bool default_engine);
bool check_range_constants();
bool check_list_constants();
bool check_partition_info(THD *thd, handlerton **eng_type,
diff --git a/sql/repl_failsafe.cc b/sql/repl_failsafe.cc
index a8953217ce1..d7e783f534f 100644
--- a/sql/repl_failsafe.cc
+++ b/sql/repl_failsafe.cc
@@ -118,11 +118,14 @@ void change_rpl_status(RPL_STATUS from_status, RPL_STATUS to_status)
}
-#define get_object(p, obj) \
+#define get_object(p, obj, msg) \
{\
uint len = (uint)*p++; \
if (p + len > p_end || len >= sizeof(obj)) \
+ {\
+ errmsg= msg;\
goto err; \
+ }\
strmake(obj,(char*) p,len); \
p+= len; \
}\
@@ -168,6 +171,7 @@ int register_slave(THD* thd, uchar* packet, uint packet_length)
int res;
SLAVE_INFO *si;
uchar *p= packet, *p_end= packet + packet_length;
+ const char *errmsg= "Wrong parameters to function register_slave";
if (check_access(thd, REPL_SLAVE_ACL, any_db,0,0,0,0))
return 1;
@@ -176,9 +180,9 @@ int register_slave(THD* thd, uchar* packet, uint packet_length)
thd->server_id= si->server_id= uint4korr(p);
p+= 4;
- get_object(p,si->host);
- get_object(p,si->user);
- get_object(p,si->password);
+ get_object(p,si->host, "Failed to register slave: too long 'report-host'");
+ get_object(p,si->user, "Failed to register slave: too long 'report-user'");
+ get_object(p,si->password, "Failed to register slave; too long 'report-password'");
if (p+10 > p_end)
goto err;
si->port= uint2korr(p);
@@ -197,8 +201,7 @@ int register_slave(THD* thd, uchar* packet, uint packet_length)
err:
my_free(si, MYF(MY_WME));
- my_message(ER_UNKNOWN_ERROR, "Wrong parameters to function register_slave",
- MYF(0));
+ my_message(ER_UNKNOWN_ERROR, errmsg, MYF(0)); /* purecov: inspected */
err2:
return 1;
}
diff --git a/sql/rpl_rli.cc b/sql/rpl_rli.cc
index 6f30031d948..b6dfd1a1dc8 100644
--- a/sql/rpl_rli.cc
+++ b/sql/rpl_rli.cc
@@ -955,6 +955,11 @@ err:
Check if condition stated in UNTIL clause of START SLAVE is reached.
SYNOPSYS
Relay_log_info::is_until_satisfied()
+ master_beg_pos position of the beginning of to be executed event
+ (not log_pos member of the event that points to the
+ beginning of the following event)
+
+
DESCRIPTION
Checks if UNTIL condition is reached. Uses caching result of last
comparison of current log file name and target log file name. So cached
@@ -979,7 +984,7 @@ err:
false - condition not met
*/
-bool Relay_log_info::is_until_satisfied()
+bool Relay_log_info::is_until_satisfied(my_off_t master_beg_pos)
{
const char *log_name;
ulonglong log_pos;
@@ -990,7 +995,7 @@ bool Relay_log_info::is_until_satisfied()
if (until_condition == UNTIL_MASTER_POS)
{
log_name= group_master_log_name;
- log_pos= group_master_log_pos;
+ log_pos= master_beg_pos;
}
else
{ /* until_condition == UNTIL_RELAY_POS */
diff --git a/sql/rpl_rli.h b/sql/rpl_rli.h
index 36daffae1af..e13ea93842c 100644
--- a/sql/rpl_rli.h
+++ b/sql/rpl_rli.h
@@ -296,7 +296,7 @@ public:
void close_temporary_tables();
/* Check if UNTIL condition is satisfied. See slave.cc for more. */
- bool is_until_satisfied();
+ bool is_until_satisfied(my_off_t master_beg_pos);
inline ulonglong until_pos()
{
return ((until_condition == UNTIL_MASTER_POS) ? group_master_log_pos :
diff --git a/sql/slave.cc b/sql/slave.cc
index cce139a9238..837ae89294b 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -2019,28 +2019,6 @@ static int exec_relay_log_event(THD* thd, Relay_log_info* rli)
wait for something for example inside of next_event().
*/
pthread_mutex_lock(&rli->data_lock);
- /*
- This tests if the position of the end of the last previous executed event
- hits the UNTIL barrier.
- We would prefer to test if the position of the start (or possibly) end of
- the to-be-read event hits the UNTIL barrier, this is different if there
- was an event ignored by the I/O thread just before (BUG#13861 to be
- fixed).
- */
- if (rli->until_condition!=Relay_log_info::UNTIL_NONE &&
- rli->is_until_satisfied())
- {
- char buf[22];
- sql_print_information("Slave SQL thread stopped because it reached its"
- " UNTIL position %s", llstr(rli->until_pos(), buf));
- /*
- Setting abort_slave flag because we do not want additional message about
- error in query execution to be printed.
- */
- rli->abort_slave= 1;
- pthread_mutex_unlock(&rli->data_lock);
- DBUG_RETURN(1);
- }
Log_event * ev = next_event(rli);
@@ -2054,7 +2032,30 @@ static int exec_relay_log_event(THD* thd, Relay_log_info* rli)
}
if (ev)
{
- int exec_res= apply_event_and_update_pos(ev, thd, rli, TRUE);
+ int exec_res;
+
+ /*
+ This tests if the position of the beginning of the current event
+ hits the UNTIL barrier.
+ */
+ if (rli->until_condition != Relay_log_info::UNTIL_NONE &&
+ rli->is_until_satisfied((rli->is_in_group() || !ev->log_pos) ?
+ rli->group_master_log_pos :
+ ev->log_pos - ev->data_written))
+ {
+ char buf[22];
+ sql_print_information("Slave SQL thread stopped because it reached its"
+ " UNTIL position %s", llstr(rli->until_pos(), buf));
+ /*
+ Setting abort_slave flag because we do not want additional message about
+ error in query execution to be printed.
+ */
+ rli->abort_slave= 1;
+ pthread_mutex_unlock(&rli->data_lock);
+ delete ev;
+ DBUG_RETURN(1);
+ }
+ exec_res= apply_event_and_update_pos(ev, thd, rli, TRUE);
/*
Format_description_log_event should not be deleted because it will be
@@ -2690,6 +2691,22 @@ Slave SQL thread aborted. Can't execute init_slave query");
}
}
+ /*
+ First check until condition - probably there is nothing to execute. We
+ do not want to wait for next event in this case.
+ */
+ pthread_mutex_lock(&rli->data_lock);
+ if (rli->until_condition != Relay_log_info::UNTIL_NONE &&
+ rli->is_until_satisfied(rli->group_master_log_pos))
+ {
+ char buf[22];
+ sql_print_information("Slave SQL thread stopped because it reached its"
+ " UNTIL position %s", llstr(rli->until_pos(), buf));
+ pthread_mutex_unlock(&rli->data_lock);
+ goto err;
+ }
+ pthread_mutex_unlock(&rli->data_lock);
+
/* Read queries from the IO/THREAD until this thread is killed */
while (!sql_slave_killed(thd,rli))
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index 01e0009ad0d..ba4f695dcb8 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -747,6 +747,7 @@ void close_handle_and_leave_table_as_lock(TABLE *table)
table->db_stat= 0; // Mark file closed
release_table_share(table->s, RELEASE_NORMAL);
table->s= share;
+ table->file->change_table_ptr(table, table->s);
DBUG_VOID_RETURN;
}
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 1125127c852..2f6994c1244 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -2351,37 +2351,7 @@ mysql_execute_command(THD *thd)
/* Might have been updated in create_table_precheck */
create_info.alias= create_table->alias;
-#ifndef HAVE_READLINK
- if (create_info.data_file_name)
- push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, 0,
- "DATA DIRECTORY option ignored");
- if (create_info.index_file_name)
- push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, 0,
- "INDEX DIRECTORY option ignored");
- create_info.data_file_name= create_info.index_file_name= NULL;
-#else
-
- if (test_if_data_home_dir(lex->create_info.data_file_name))
- {
- my_error(ER_WRONG_ARGUMENTS,MYF(0),"DATA DIRECORY");
- res= -1;
- break;
- }
- if (test_if_data_home_dir(lex->create_info.index_file_name))
- {
- my_error(ER_WRONG_ARGUMENTS,MYF(0),"INDEX DIRECORY");
- res= -1;
- break;
- }
-
-#ifdef WITH_PARTITION_STORAGE_ENGINE
- if (check_partition_dirs(thd->lex->part_info))
- {
- res= -1;
- break;
- }
-#endif
-
+#ifdef HAVE_READLINK
/* Fix names if symlinked tables */
if (append_file_to_dir(thd, &create_info.data_file_name,
create_table->table_name) ||
diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc
index 45a82782de0..037da87be7f 100644
--- a/sql/sql_partition.cc
+++ b/sql/sql_partition.cc
@@ -3819,9 +3819,9 @@ bool mysql_unpack_partition(THD *thd,
DBUG_PRINT("info", ("Successful parse"));
part_info= lex.part_info;
- DBUG_PRINT("info", ("default engine = %d, default_db_type = %d",
- ha_legacy_type(part_info->default_engine_type),
- ha_legacy_type(default_db_type)));
+ DBUG_PRINT("info", ("default engine = %s, default_db_type = %s",
+ ha_resolve_storage_engine_name(part_info->default_engine_type),
+ ha_resolve_storage_engine_name(default_db_type)));
if (is_create_table_ind && old_lex->sql_command == SQLCOM_CREATE_TABLE)
{
if (old_lex->create_info.options & HA_LEX_CREATE_TABLE_LIKE)
@@ -3863,6 +3863,8 @@ bool mysql_unpack_partition(THD *thd,
if (!part_info->default_engine_type)
part_info->default_engine_type= default_db_type;
DBUG_ASSERT(part_info->default_engine_type == default_db_type);
+ DBUG_ASSERT(part_info->default_engine_type->db_type != DB_TYPE_UNKNOWN);
+ DBUG_ASSERT(part_info->default_engine_type != partition_hton);
{
/*
@@ -4001,56 +4003,6 @@ static int fast_end_partition(THD *thd, ulonglong copied,
/*
- Check engine mix that it is correct
- SYNOPSIS
- check_engine_condition()
- p_elem Partition element
- default_engine Have user specified engine on table level
- inout::engine_type Current engine used
- inout::first Is it first partition
- RETURN VALUE
- TRUE Failed check
- FALSE Ok
- DESCRIPTION
- (specified partition handler ) specified table handler
- (NDB, NDB) NDB OK
- (MYISAM, MYISAM) - OK
- (MYISAM, -) - NOT OK
- (MYISAM, -) MYISAM OK
- (- , MYISAM) - NOT OK
- (- , -) MYISAM OK
- (-,-) - OK
- (NDB, MYISAM) * NOT OK
-*/
-
-static bool check_engine_condition(partition_element *p_elem,
- bool default_engine,
- handlerton **engine_type,
- bool *first)
-{
- DBUG_ENTER("check_engine_condition");
-
- DBUG_PRINT("enter", ("def_eng = %u, first = %u", default_engine, *first));
- if (*first && default_engine)
- {
- *engine_type= p_elem->engine_type;
- }
- *first= FALSE;
- if ((!default_engine &&
- (p_elem->engine_type != (*engine_type) &&
- p_elem->engine_type)) ||
- (default_engine &&
- p_elem->engine_type != (*engine_type)))
- {
- DBUG_RETURN(TRUE);
- }
- else
- {
- DBUG_RETURN(FALSE);
- }
-}
-
-/*
We need to check if engine used by all partitions can handle
partitioning natively.
@@ -4074,52 +4026,30 @@ static bool check_engine_condition(partition_element *p_elem,
static bool check_native_partitioned(HA_CREATE_INFO *create_info,bool *ret_val,
partition_info *part_info, THD *thd)
{
- List_iterator<partition_element> part_it(part_info->partitions);
- bool first= TRUE;
- bool default_engine;
- handlerton *engine_type= create_info->db_type;
+ bool table_engine_set;
+ handlerton *engine_type= part_info->default_engine_type;
handlerton *old_engine_type= engine_type;
- uint i= 0;
- uint no_parts= part_info->partitions.elements;
DBUG_ENTER("check_native_partitioned");
- default_engine= (create_info->used_fields & HA_CREATE_USED_ENGINE) ?
- FALSE : TRUE;
- DBUG_PRINT("info", ("engine_type = %u, default = %u",
- ha_legacy_type(engine_type),
- default_engine));
- if (no_parts)
+ if (create_info->used_fields & HA_CREATE_USED_ENGINE)
{
- do
+ table_engine_set= TRUE;
+ engine_type= create_info->db_type;
+ }
+ else
+ {
+ table_engine_set= FALSE;
+ if (thd->lex->sql_command != SQLCOM_CREATE_TABLE)
{
- partition_element *part_elem= part_it++;
- if (part_info->is_sub_partitioned() &&
- part_elem->subpartitions.elements)
- {
- uint no_subparts= part_elem->subpartitions.elements;
- uint j= 0;
- List_iterator<partition_element> sub_it(part_elem->subpartitions);
- do
- {
- partition_element *sub_elem= sub_it++;
- if (check_engine_condition(sub_elem, default_engine,
- &engine_type, &first))
- goto error;
- } while (++j < no_subparts);
- /*
- In case of subpartitioning and defaults we allow that only
- subparts have specified engines, as long as the parts haven't
- specified the wrong engine it's ok.
- */
- if (check_engine_condition(part_elem, FALSE,
- &engine_type, &first))
- goto error;
- }
- else if (check_engine_condition(part_elem, default_engine,
- &engine_type, &first))
- goto error;
- } while (++i < no_parts);
+ table_engine_set= TRUE;
+ DBUG_ASSERT(engine_type && engine_type != partition_hton);
+ }
}
+ DBUG_PRINT("info", ("engine_type = %s, table_engine_set = %u",
+ ha_resolve_storage_engine_name(engine_type),
+ table_engine_set));
+ if (part_info->check_engine_mix(engine_type, table_engine_set))
+ goto error;
/*
All engines are of the same type. Check if this engine supports
@@ -4216,7 +4146,7 @@ uint prep_alter_part_table(THD *thd, TABLE *table, Alter_info *alter_info,
my_error(ER_PARTITION_MGMT_ON_NONPARTITIONED, MYF(0));
DBUG_RETURN(TRUE);
}
- if (alter_info->flags == ALTER_TABLE_REORG)
+ if (alter_info->flags & ALTER_TABLE_REORG)
{
uint new_part_no, curr_part_no;
if (tab_part_info->part_type != HASH_PARTITION ||
@@ -4317,7 +4247,12 @@ uint prep_alter_part_table(THD *thd, TABLE *table, Alter_info *alter_info,
{
my_error(ER_NO_BINLOG_ERROR, MYF(0));
DBUG_RETURN(TRUE);
- }
+ }
+ if (tab_part_info->defined_max_value)
+ {
+ my_error(ER_PARTITION_MAXVALUE_ERROR, MYF(0));
+ DBUG_RETURN(TRUE);
+ }
if (no_new_partitions == 0)
{
my_error(ER_ADD_PARTITION_NO_NEW_PARTITION, MYF(0));
@@ -4542,7 +4477,7 @@ that are reorganised.
tab_part_info->is_auto_partitioned= FALSE;
}
}
- else if (alter_info->flags == ALTER_DROP_PARTITION)
+ else if (alter_info->flags & ALTER_DROP_PARTITION)
{
/*
Drop a partition from a range partition and list partitioning is
@@ -4746,7 +4681,7 @@ state of p1.
tab_part_info->is_auto_partitioned= FALSE;
}
}
- else if (alter_info->flags == ALTER_REORGANIZE_PARTITION)
+ else if (alter_info->flags & ALTER_REORGANIZE_PARTITION)
{
/*
Reorganise partitions takes a number of partitions that are next
@@ -4927,8 +4862,8 @@ the generated partition syntax in a correct manner.
}
*partition_changed= TRUE;
thd->work_part_info= tab_part_info;
- if (alter_info->flags == ALTER_ADD_PARTITION ||
- alter_info->flags == ALTER_REORGANIZE_PARTITION)
+ if (alter_info->flags & ALTER_ADD_PARTITION ||
+ alter_info->flags & ALTER_REORGANIZE_PARTITION)
{
if (tab_part_info->use_default_subpartitions &&
!alt_part_info->use_default_subpartitions)
@@ -5055,13 +4990,21 @@ the generated partition syntax in a correct manner.
DBUG_PRINT("info", ("partition changed"));
*partition_changed= TRUE;
}
- if (create_info->db_type == partition_hton)
+ /*
+ Set up partition default_engine_type either from the create_info
+ or from the previus table
+ */
+ if (create_info->used_fields & HA_CREATE_USED_ENGINE)
+ part_info->default_engine_type= create_info->db_type;
+ else
{
- if (!part_info->default_engine_type)
+ if (table->part_info)
part_info->default_engine_type= table->part_info->default_engine_type;
+ else
+ part_info->default_engine_type= create_info->db_type;
}
- else
- part_info->default_engine_type= create_info->db_type;
+ DBUG_ASSERT(part_info->default_engine_type &&
+ part_info->default_engine_type != partition_hton);
if (check_native_partitioned(create_info, &is_native_partitioned,
part_info, thd))
{
@@ -5842,32 +5785,42 @@ static void release_log_entries(partition_info *part_info)
/*
- Get a lock on table name to avoid that anyone can open the table in
- a critical part of the ALTER TABLE.
- SYNOPSIS
- get_name_lock()
+ Final part of partition changes to handle things when under
+ LOCK TABLES.
+ SYNPOSIS
+ alter_partition_lock_handling()
lpt Struct carrying parameters
RETURN VALUES
- FALSE Success
- TRUE Failure
+ NONE
*/
-
-static int get_name_lock(ALTER_PARTITION_PARAM_TYPE *lpt)
+static void alter_partition_lock_handling(ALTER_PARTITION_PARAM_TYPE *lpt)
{
- int error= 0;
- DBUG_ENTER("get_name_lock");
-
- bzero(&lpt->table_list, sizeof(lpt->table_list));
- lpt->table_list.db= (char*)lpt->db;
- lpt->table_list.table= lpt->table;
- lpt->table_list.table_name= (char*)lpt->table_name;
- pthread_mutex_lock(&LOCK_open);
- error= lock_table_name(lpt->thd, &lpt->table_list, FALSE);
- pthread_mutex_unlock(&LOCK_open);
- DBUG_RETURN(error);
+ int err;
+ if (lpt->thd->locked_tables)
+ {
+ /*
+ When we have the table locked, it is necessary to reopen the table
+ since all table objects were closed and removed as part of the
+ ALTER TABLE of partitioning structure.
+ */
+ pthread_mutex_lock(&LOCK_open);
+ lpt->thd->in_lock_tables= 1;
+ err= reopen_tables(lpt->thd, 1, 1);
+ lpt->thd->in_lock_tables= 0;
+ if (err)
+ {
+ /*
+ Issue a warning since we weren't able to regain the lock again.
+ We also need to unlink table from thread's open list and from
+ table_cache
+ */
+ unlink_open_table(lpt->thd, lpt->table, FALSE);
+ sql_print_warning("We failed to reacquire LOCKs in ALTER TABLE");
+ }
+ pthread_mutex_unlock(&LOCK_open);
+ }
}
-
/*
Unlock and close table before renaming and dropping partitions
SYNOPSIS
@@ -5880,35 +5833,16 @@ static int get_name_lock(ALTER_PARTITION_PARAM_TYPE *lpt)
static int alter_close_tables(ALTER_PARTITION_PARAM_TYPE *lpt)
{
THD *thd= lpt->thd;
- TABLE *table= lpt->table;
+ const char *db= lpt->db;
+ const char *table_name= lpt->table_name;
DBUG_ENTER("alter_close_tables");
/*
We need to also unlock tables and close all handlers.
We set lock to zero to ensure we don't do this twice
and we set db_stat to zero to ensure we don't close twice.
*/
- mysql_unlock_tables(thd, thd->lock);
- thd->lock= 0;
- table->file->close();
- table->db_stat= 0;
- DBUG_RETURN(0);
-}
-
-
-/*
- Release a lock name
- SYNOPSIS
- release_name_lock()
- lpt
- RETURN VALUES
- 0
-*/
-
-static int release_name_lock(ALTER_PARTITION_PARAM_TYPE *lpt)
-{
- DBUG_ENTER("release_name_lock");
pthread_mutex_lock(&LOCK_open);
- unlock_table_name(lpt->thd, &lpt->table_list);
+ close_data_files_and_morph_locks(thd, db, table_name);
pthread_mutex_unlock(&LOCK_open);
DBUG_RETURN(0);
}
@@ -6117,7 +6051,19 @@ uint fast_alter_partition_table(THD *thd, TABLE *table,
((alter_info->flags & ALTER_REPAIR_PARTITION) &&
(error= table->file->ha_repair_partitions(thd))))
{
- table->file->print_error(error, MYF(0));
+ if (error == HA_ADMIN_NOT_IMPLEMENTED) {
+ if (alter_info->flags & ALTER_OPTIMIZE_PARTITION)
+ my_error(ER_CHECK_NOT_IMPLEMENTED, MYF(0), "optimize partition");
+ else if (alter_info->flags & ALTER_ANALYZE_PARTITION)
+ my_error(ER_CHECK_NOT_IMPLEMENTED, MYF(0), "analyze partition");
+ else if (alter_info->flags & ALTER_CHECK_PARTITION)
+ my_error(ER_CHECK_NOT_IMPLEMENTED, MYF(0), "check partition");
+ else if (alter_info->flags & ALTER_REPAIR_PARTITION)
+ my_error(ER_CHECK_NOT_IMPLEMENTED, MYF(0), "repair partition");
+ else
+ table->file->print_error(error, MYF(0));
+ } else
+ table->file->print_error(error, MYF(0));
goto err;
}
}
@@ -6168,7 +6114,7 @@ uint fast_alter_partition_table(THD *thd, TABLE *table,
goto err;
}
}
- else if (alter_info->flags == ALTER_DROP_PARTITION)
+ else if (alter_info->flags & ALTER_DROP_PARTITION)
{
/*
Now after all checks and setting state on dropped partitions we can
@@ -6206,7 +6152,7 @@ uint fast_alter_partition_table(THD *thd, TABLE *table,
name lock.
5) Close all tables that have already been opened but didn't stumble on
the abort locked previously. This is done as part of the
- get_name_lock call.
+ close_data_files_and_morph_locks call.
6) We are now ready to release all locks we got in this thread.
7) Write the bin log
Unfortunately the writing of the binlog is not synchronised with
@@ -6223,8 +6169,7 @@ uint fast_alter_partition_table(THD *thd, TABLE *table,
9) Prepare handlers for drop of partitions
10) Drop the partitions
11) Remove entries from ddl log
- 12) Release name lock so that all other threads can access the table
- again.
+ 12) Reopen table if under lock tables
13) Complete query
We insert Error injections at all places where it could be interesting
@@ -6239,23 +6184,21 @@ uint fast_alter_partition_table(THD *thd, TABLE *table,
(not_completed= FALSE) ||
abort_and_upgrade_lock(lpt) || /* Always returns 0 */
ERROR_INJECT_CRASH("crash_drop_partition_4") ||
- get_name_lock(lpt) ||
- ERROR_INJECT_CRASH("crash_drop_partition_5") ||
alter_close_tables(lpt) ||
- ERROR_INJECT_CRASH("crash_drop_partition_6") ||
+ ERROR_INJECT_CRASH("crash_drop_partition_5") ||
((!thd->lex->no_write_to_binlog) &&
(write_bin_log(thd, FALSE,
thd->query, thd->query_length), FALSE)) ||
- ERROR_INJECT_CRASH("crash_drop_partition_7") ||
+ ERROR_INJECT_CRASH("crash_drop_partition_6") ||
((frm_install= TRUE), FALSE) ||
mysql_write_frm(lpt, WFRM_INSTALL_SHADOW) ||
((frm_install= FALSE), FALSE) ||
- ERROR_INJECT_CRASH("crash_drop_partition_8") ||
+ ERROR_INJECT_CRASH("crash_drop_partition_7") ||
mysql_drop_partitions(lpt) ||
- ERROR_INJECT_CRASH("crash_drop_partition_9") ||
+ ERROR_INJECT_CRASH("crash_drop_partition_8") ||
(write_log_completed(lpt, FALSE), FALSE) ||
- ERROR_INJECT_CRASH("crash_drop_partition_10") ||
- (release_name_lock(lpt), FALSE))
+ ERROR_INJECT_CRASH("crash_drop_partition_9") ||
+ (alter_partition_lock_handling(lpt), FALSE))
{
handle_alter_part_error(lpt, not_completed, TRUE, frm_install);
goto err;
@@ -6287,7 +6230,7 @@ uint fast_alter_partition_table(THD *thd, TABLE *table,
name lock.
5) Close all tables that have already been opened but didn't stumble on
the abort locked previously. This is done as part of the
- get_name_lock call.
+ close_data_files_and_morph_locks call.
6) Close all table handlers and unlock all handlers but retain name lock
7) Write binlog
8) Now the change is completed except for the installation of the
@@ -6297,7 +6240,7 @@ uint fast_alter_partition_table(THD *thd, TABLE *table,
added to the table.
10)Wait until all accesses using the old frm file has completed
11)Remove entries from ddl log
- 12)Release name lock
+ 12)Reopen tables if under lock tables
13)Complete query
*/
if (write_log_add_change_partition(lpt) ||
@@ -6307,8 +6250,6 @@ uint fast_alter_partition_table(THD *thd, TABLE *table,
mysql_change_partitions(lpt) ||
ERROR_INJECT_CRASH("crash_add_partition_3") ||
abort_and_upgrade_lock(lpt) || /* Always returns 0 */
- ERROR_INJECT_CRASH("crash_add_partition_3") ||
- get_name_lock(lpt) ||
ERROR_INJECT_CRASH("crash_add_partition_4") ||
alter_close_tables(lpt) ||
ERROR_INJECT_CRASH("crash_add_partition_5") ||
@@ -6324,7 +6265,7 @@ uint fast_alter_partition_table(THD *thd, TABLE *table,
ERROR_INJECT_CRASH("crash_add_partition_8") ||
(write_log_completed(lpt, FALSE), FALSE) ||
ERROR_INJECT_CRASH("crash_add_partition_9") ||
- (release_name_lock(lpt), FALSE))
+ (alter_partition_lock_handling(lpt), FALSE))
{
handle_alter_part_error(lpt, not_completed, FALSE, frm_install);
goto err;
@@ -6378,15 +6319,15 @@ uint fast_alter_partition_table(THD *thd, TABLE *table,
7) Close all tables opened but not yet locked, after this call we are
certain that no other thread is in the lock wait queue or has
opened the table. The name lock will ensure that they are blocked
- on the open call. This is achieved also by get_name_lock call.
+ on the open call.
+ This is achieved also by close_data_files_and_morph_locks call.
8) Close all partitions opened by this thread, but retain name lock.
9) Write bin log
10) Prepare handlers for rename and delete of partitions
11) Rename and drop the reorged partitions such that they are no
longer used and rename those added to their real new names.
12) Install the shadow frm file
- 13) Release the name lock to enable other threads to start using the
- table again.
+ 13) Reopen the table if under lock tables
14) Complete query
*/
if (write_log_add_change_partition(lpt) ||
@@ -6400,24 +6341,22 @@ uint fast_alter_partition_table(THD *thd, TABLE *table,
(not_completed= FALSE) ||
abort_and_upgrade_lock(lpt) || /* Always returns 0 */
ERROR_INJECT_CRASH("crash_change_partition_5") ||
- get_name_lock(lpt) ||
- ERROR_INJECT_CRASH("crash_change_partition_6") ||
alter_close_tables(lpt) ||
- ERROR_INJECT_CRASH("crash_change_partition_7") ||
+ ERROR_INJECT_CRASH("crash_change_partition_6") ||
((!thd->lex->no_write_to_binlog) &&
(write_bin_log(thd, FALSE,
thd->query, thd->query_length), FALSE)) ||
- ERROR_INJECT_CRASH("crash_change_partition_8") ||
+ ERROR_INJECT_CRASH("crash_change_partition_7") ||
mysql_write_frm(lpt, WFRM_INSTALL_SHADOW) ||
- ERROR_INJECT_CRASH("crash_change_partition_9") ||
+ ERROR_INJECT_CRASH("crash_change_partition_8") ||
mysql_drop_partitions(lpt) ||
- ERROR_INJECT_CRASH("crash_change_partition_10") ||
+ ERROR_INJECT_CRASH("crash_change_partition_9") ||
mysql_rename_partitions(lpt) ||
((frm_install= TRUE), FALSE) ||
- ERROR_INJECT_CRASH("crash_change_partition_11") ||
+ ERROR_INJECT_CRASH("crash_change_partition_10") ||
(write_log_completed(lpt, FALSE), FALSE) ||
- ERROR_INJECT_CRASH("crash_change_partition_12") ||
- (release_name_lock(lpt), FALSE))
+ ERROR_INJECT_CRASH("crash_change_partition_11") ||
+ (alter_partition_lock_handling(lpt), FALSE))
{
handle_alter_part_error(lpt, not_completed, FALSE, frm_install);
goto err;
diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc
index 4da4f1373e2..e2449613458 100644
--- a/sql/sql_plugin.cc
+++ b/sql/sql_plugin.cc
@@ -1183,9 +1183,8 @@ int plugin_init(int *argc, char **argv, int flags)
/* Register all dynamic plugins */
if (!(flags & PLUGIN_INIT_SKIP_DYNAMIC_LOADING))
{
- if (opt_plugin_load &&
- plugin_load_list(&tmp_root, argc, argv, opt_plugin_load))
- goto err;
+ if (opt_plugin_load)
+ plugin_load_list(&tmp_root, argc, argv, opt_plugin_load);
if (!(flags & PLUGIN_INIT_SKIP_PLUGIN_TABLE))
plugin_load(&tmp_root, argc, argv);
}
@@ -1414,7 +1413,11 @@ static bool plugin_load_list(MEM_ROOT *tmp_root, int *argc, char **argv,
while (list)
{
if (p == buffer + sizeof(buffer) - 1)
- break;
+ {
+ sql_print_error("plugin-load parameter too long");
+ DBUG_RETURN(TRUE);
+ }
+
switch ((*(p++)= *(list++))) {
case '\0':
list= NULL; /* terminate the loop */
@@ -1423,10 +1426,17 @@ static bool plugin_load_list(MEM_ROOT *tmp_root, int *argc, char **argv,
case ':': /* can't use this as delimiter as it may be drive letter */
#endif
case ';':
- name.str[name.length]= '\0';
- if (str != &dl) // load all plugins in named module
+ str->str[str->length]= '\0';
+ if (str == &name) // load all plugins in named module
{
+ if (!name.length)
+ {
+ p--; /* reset pointer */
+ continue;
+ }
+
dl= name;
+ pthread_mutex_lock(&LOCK_plugin);
if ((plugin_dl= plugin_dl_add(&dl, REPORT_TO_LOG)))
{
for (plugin= plugin_dl->plugins; plugin->info; plugin++)
@@ -1436,7 +1446,10 @@ static bool plugin_load_list(MEM_ROOT *tmp_root, int *argc, char **argv,
free_root(tmp_root, MYF(MY_MARK_BLOCKS_FREE));
if (plugin_add(tmp_root, &name, &dl, argc, argv, REPORT_TO_LOG))
+ {
+ pthread_mutex_unlock(&LOCK_plugin);
goto error;
+ }
}
plugin_dl_del(&dl); // reduce ref count
}
@@ -1444,9 +1457,14 @@ static bool plugin_load_list(MEM_ROOT *tmp_root, int *argc, char **argv,
else
{
free_root(tmp_root, MYF(MY_MARK_BLOCKS_FREE));
+ pthread_mutex_lock(&LOCK_plugin);
if (plugin_add(tmp_root, &name, &dl, argc, argv, REPORT_TO_LOG))
+ {
+ pthread_mutex_unlock(&LOCK_plugin);
goto error;
+ }
}
+ pthread_mutex_unlock(&LOCK_plugin);
name.length= dl.length= 0;
dl.str= NULL; name.str= p= buffer;
str= &name;
@@ -1455,6 +1473,7 @@ static bool plugin_load_list(MEM_ROOT *tmp_root, int *argc, char **argv,
case '#':
if (str == &name)
{
+ name.str[name.length]= '\0';
str= &dl;
str->str= p;
continue;
@@ -2046,35 +2065,35 @@ err:
static void update_func_bool(THD *thd, struct st_mysql_sys_var *var,
- void *tgt, void *save)
+ void *tgt, const void *save)
{
*(my_bool *) tgt= *(int *) save ? 1 : 0;
}
static void update_func_int(THD *thd, struct st_mysql_sys_var *var,
- void *tgt, void *save)
+ void *tgt, const void *save)
{
*(int *)tgt= *(int *) save;
}
static void update_func_long(THD *thd, struct st_mysql_sys_var *var,
- void *tgt, void *save)
+ void *tgt, const void *save)
{
*(long *)tgt= *(long *) save;
}
static void update_func_longlong(THD *thd, struct st_mysql_sys_var *var,
- void *tgt, void *save)
+ void *tgt, const void *save)
{
*(longlong *)tgt= *(ulonglong *) save;
}
static void update_func_str(THD *thd, struct st_mysql_sys_var *var,
- void *tgt, void *save)
+ void *tgt, const void *save)
{
char *old= *(char **) tgt;
*(char **)tgt= *(char **) save;
@@ -2631,7 +2650,8 @@ bool sys_var_pluginvar::check(THD *thd, set_var *var)
void sys_var_pluginvar::set_default(THD *thd, enum_var_type type)
{
- void *tgt, *src;
+ const void *src;
+ void *tgt;
DBUG_ASSERT(is_readonly() || plugin_var->update);
@@ -2644,9 +2664,34 @@ void sys_var_pluginvar::set_default(THD *thd, enum_var_type type)
if (plugin_var->flags & PLUGIN_VAR_THDLOCAL)
{
- src= ((int*) (plugin_var + 1) + 1);
if (type != OPT_GLOBAL)
src= real_value_ptr(thd, OPT_GLOBAL);
+ else
+ switch (plugin_var->flags & PLUGIN_VAR_TYPEMASK) {
+ case PLUGIN_VAR_INT:
+ src= &((thdvar_uint_t*) plugin_var)->def_val;
+ break;
+ case PLUGIN_VAR_LONG:
+ src= &((thdvar_ulong_t*) plugin_var)->def_val;
+ break;
+ case PLUGIN_VAR_LONGLONG:
+ src= &((thdvar_ulonglong_t*) plugin_var)->def_val;
+ break;
+ case PLUGIN_VAR_ENUM:
+ src= &((thdvar_enum_t*) plugin_var)->def_val;
+ break;
+ case PLUGIN_VAR_SET:
+ src= &((thdvar_set_t*) plugin_var)->def_val;
+ break;
+ case PLUGIN_VAR_BOOL:
+ src= &((thdvar_bool_t*) plugin_var)->def_val;
+ break;
+ case PLUGIN_VAR_STR:
+ src= &((thdvar_str_t*) plugin_var)->def_val;
+ break;
+ default:
+ DBUG_ASSERT(0);
+ }
}
/* thd must equal current_thd if PLUGIN_VAR_THDLOCAL flag is set */
@@ -2734,25 +2779,25 @@ static void plugin_opt_set_limits(struct my_option *options,
case PLUGIN_VAR_ENUM:
options->var_type= GET_ENUM;
options->typelib= ((sysvar_enum_t*) opt)->typelib;
- options->def_value= *(ulong*) ((int*) (opt + 1) + 1);
+ options->def_value= ((sysvar_enum_t*) opt)->def_val;
options->min_value= options->block_size= 0;
options->max_value= options->typelib->count - 1;
break;
case PLUGIN_VAR_SET:
options->var_type= GET_SET;
options->typelib= ((sysvar_set_t*) opt)->typelib;
- options->def_value= *(ulonglong*) ((int*) (opt + 1) + 1);
+ options->def_value= ((sysvar_set_t*) opt)->def_val;
options->min_value= options->block_size= 0;
options->max_value= (ULL(1) << options->typelib->count) - 1;
break;
case PLUGIN_VAR_BOOL:
options->var_type= GET_BOOL;
- options->def_value= *(my_bool*) ((void**)(opt + 1) + 1);
+ options->def_value= ((sysvar_bool_t*) opt)->def_val;
break;
case PLUGIN_VAR_STR:
options->var_type= ((opt->flags & PLUGIN_VAR_MEMALLOC) ?
GET_STR_ALLOC : GET_STR);
- options->def_value= (ulonglong)(intptr) *((char**) ((void**) (opt + 1) + 1));
+ options->def_value= (intptr) ((sysvar_str_t*) opt)->def_val;
break;
/* threadlocal variables */
case PLUGIN_VAR_INT | PLUGIN_VAR_THDLOCAL:
@@ -2776,25 +2821,25 @@ static void plugin_opt_set_limits(struct my_option *options,
case PLUGIN_VAR_ENUM | PLUGIN_VAR_THDLOCAL:
options->var_type= GET_ENUM;
options->typelib= ((thdvar_enum_t*) opt)->typelib;
- options->def_value= *(ulong*) ((int*) (opt + 1) + 1);
+ options->def_value= ((thdvar_enum_t*) opt)->def_val;
options->min_value= options->block_size= 0;
options->max_value= options->typelib->count - 1;
break;
case PLUGIN_VAR_SET | PLUGIN_VAR_THDLOCAL:
options->var_type= GET_SET;
options->typelib= ((thdvar_set_t*) opt)->typelib;
- options->def_value= *(ulonglong*) ((int*) (opt + 1) + 1);
+ options->def_value= ((thdvar_set_t*) opt)->def_val;
options->min_value= options->block_size= 0;
options->max_value= (ULL(1) << options->typelib->count) - 1;
break;
case PLUGIN_VAR_BOOL | PLUGIN_VAR_THDLOCAL:
options->var_type= GET_BOOL;
- options->def_value= *(my_bool*) ((int*) (opt + 1) + 1);
+ options->def_value= ((thdvar_bool_t*) opt)->def_val;
break;
case PLUGIN_VAR_STR | PLUGIN_VAR_THDLOCAL:
options->var_type= ((opt->flags & PLUGIN_VAR_MEMALLOC) ?
GET_STR_ALLOC : GET_STR);
- options->def_value= (intptr) *((char**) ((void**) (opt + 1) + 1));
+ options->def_value= (intptr) ((thdvar_str_t*) opt)->def_val;
break;
default:
DBUG_ASSERT(0);
@@ -2976,7 +3021,8 @@ static int construct_options(MEM_ROOT *mem_root, struct st_plugin_int *tmp,
DBUG_RETURN(-1);
}
- if (opt->flags & PLUGIN_VAR_NOCMDOPT)
+ if ((opt->flags & (PLUGIN_VAR_NOCMDOPT | PLUGIN_VAR_THDLOCAL))
+ == PLUGIN_VAR_NOCMDOPT)
continue;
if (!opt->name)
@@ -2986,7 +3032,7 @@ static int construct_options(MEM_ROOT *mem_root, struct st_plugin_int *tmp,
DBUG_RETURN(-1);
}
- if (!(v= find_bookmark(name, opt->name, opt->flags)))
+ if (!(opt->flags & PLUGIN_VAR_THDLOCAL))
{
optnamelen= strlen(opt->name);
optname= (char*) alloc_root(mem_root, namelen + optnamelen + 2);
@@ -2994,7 +3040,23 @@ static int construct_options(MEM_ROOT *mem_root, struct st_plugin_int *tmp,
optnamelen= namelen + optnamelen + 1;
}
else
- optname= (char*) memdup_root(mem_root, v->key + 1, (optnamelen= v->name_len) + 1);
+ {
+ /* this should not fail because register_var should create entry */
+ if (!(v= find_bookmark(name, opt->name, opt->flags)))
+ {
+ sql_print_error("Thread local variable '%s' not allocated "
+ "in plugin '%s'.", opt->name, plugin_name);
+ DBUG_RETURN(-1);
+ }
+
+ *(int*)(opt + 1)= offset= v->offset;
+
+ if (opt->flags & PLUGIN_VAR_NOCMDOPT)
+ continue;
+
+ optname= (char*) memdup_root(mem_root, v->key + 1,
+ (optnamelen= v->name_len) + 1);
+ }
/* convert '_' to '-' */
for (p= optname; *p; p++)
@@ -3006,20 +3068,13 @@ static int construct_options(MEM_ROOT *mem_root, struct st_plugin_int *tmp,
options->app_type= opt;
options->id= (options-1)->id + 1;
- if (opt->flags & PLUGIN_VAR_THDLOCAL)
- *(int*)(opt + 1)= offset= v->offset;
-
plugin_opt_set_limits(options, opt);
- if ((opt->flags & PLUGIN_VAR_TYPEMASK) != PLUGIN_VAR_ENUM &&
- (opt->flags & PLUGIN_VAR_TYPEMASK) != PLUGIN_VAR_SET)
- {
- if (opt->flags & PLUGIN_VAR_THDLOCAL)
- options->value= options->u_max_value= (uchar**)
- (global_system_variables.dynamic_variables_ptr + offset);
- else
- options->value= options->u_max_value= *(uchar***) (opt + 1);
- }
+ if (opt->flags & PLUGIN_VAR_THDLOCAL)
+ options->value= options->u_max_value= (uchar**)
+ (global_system_variables.dynamic_variables_ptr + offset);
+ else
+ options->value= options->u_max_value= *(uchar***) (opt + 1);
options[1]= options[0];
options[1].name= p= (char*) alloc_root(mem_root, optnamelen + 8);
diff --git a/sql/sql_show.cc b/sql/sql_show.cc
index 6e61ee6da5f..aaababc330a 100644
--- a/sql/sql_show.cc
+++ b/sql/sql_show.cc
@@ -3430,7 +3430,7 @@ static int get_schema_tables_record(THD *thd, TABLE_LIST *tables,
/*
there was errors during opening tables
*/
- const char *error= thd->main_da.message();
+ const char *error= thd->is_error() ? thd->main_da.message() : "";
if (tables->view)
table->field[3]->store(STRING_WITH_LEN("VIEW"), cs);
else if (tables->schema_table)
@@ -3631,8 +3631,9 @@ static int get_schema_column_record(THD *thd, TABLE_LIST *tables,
I.e. we are in SELECT FROM INFORMATION_SCHEMA.COLUMS
rather than in SHOW COLUMNS
*/
- push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
- thd->main_da.sql_errno(), thd->main_da.message());
+ if (thd->is_error())
+ push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
+ thd->main_da.sql_errno(), thd->main_da.message());
thd->clear_error();
res= 0;
}
diff --git a/sql/sql_string.cc b/sql/sql_string.cc
index 7fa3786c382..34b310931d6 100644
--- a/sql/sql_string.cc
+++ b/sql/sql_string.cc
@@ -840,6 +840,68 @@ outp:
}
+/**
+ Copy string with HEX-encoding of "bad" characters.
+
+ @details This functions copies the string pointed by "src"
+ to the string pointed by "dst". Not more than "srclen" bytes
+ are read from "src". Any sequences of bytes representing
+ a not-well-formed substring (according to cs) are hex-encoded,
+ and all well-formed substrings (according to cs) are copied as is.
+ Not more than "dstlen" bytes are written to "dst". The number
+ of bytes written to "dst" is returned.
+
+ @param cs character set pointer of the destination string
+ @param[out] dst destination string
+ @param dstlen size of dst
+ @param src source string
+ @param srclen length of src
+
+ @retval result length
+*/
+
+size_t
+my_copy_with_hex_escaping(CHARSET_INFO *cs,
+ char *dst, size_t dstlen,
+ const char *src, size_t srclen)
+{
+ const char *srcend= src + srclen;
+ char *dst0= dst;
+
+ for ( ; src < srcend ; )
+ {
+ size_t chlen;
+ if ((chlen= my_ismbchar(cs, src, srcend)))
+ {
+ if (dstlen < chlen)
+ break; /* purecov: inspected */
+ memcpy(dst, src, chlen);
+ src+= chlen;
+ dst+= chlen;
+ dstlen-= chlen;
+ }
+ else if (*src & 0x80)
+ {
+ if (dstlen < 4)
+ break; /* purecov: inspected */
+ *dst++= '\\';
+ *dst++= 'x';
+ *dst++= _dig_vec_upper[((unsigned char) *src) >> 4];
+ *dst++= _dig_vec_upper[((unsigned char) *src) & 15];
+ src++;
+ dstlen-= 4;
+ }
+ else
+ {
+ if (dstlen < 1)
+ break; /* purecov: inspected */
+ *dst++= *src++;
+ dstlen--;
+ }
+ }
+ return dst - dst0;
+}
+
/*
copy a string,
with optional character set conversion,
diff --git a/sql/sql_string.h b/sql/sql_string.h
index 128ed749b5f..b4d76a1779a 100644
--- a/sql/sql_string.h
+++ b/sql/sql_string.h
@@ -37,6 +37,9 @@ uint32 well_formed_copy_nchars(CHARSET_INFO *to_cs,
const char **well_formed_error_pos,
const char **cannot_convert_error_pos,
const char **from_end_pos);
+size_t my_copy_with_hex_escaping(CHARSET_INFO *cs,
+ char *dst, size_t dstlen,
+ const char *src, size_t srclen);
class String
{
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index c62d0545fda..b42045446d3 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -1226,8 +1226,12 @@ uint build_table_shadow_filename(char *buff, size_t bufflen,
flags Flags as defined below
WFRM_INITIAL_WRITE If set we need to prepare table before
creating the frm file
- WFRM_CREATE_HANDLER_FILES If set we need to create the handler file as
- part of the creation of the frm file
+ WFRM_INSTALL_SHADOW If set we should install the new frm
+ WFRM_KEEP_SHARE If set we know that the share is to be
+ retained and thus we should ensure share
+ object is correct, if not set we don't
+ set the new partition syntax string since
+ we know the share object is destroyed.
WFRM_PACK_FRM If set we should pack the frm file and delete
the frm file
@@ -1370,7 +1374,7 @@ bool mysql_write_frm(ALTER_PARTITION_PARAM_TYPE *lpt, uint flags)
goto err;
}
#ifdef WITH_PARTITION_STORAGE_ENGINE
- if (part_info)
+ if (part_info && (flags & WFRM_KEEP_SHARE))
{
TABLE_SHARE *share= lpt->table->s;
char *tmp_part_syntax_str;
@@ -3322,8 +3326,9 @@ bool mysql_create_table_no_lock(THD *thd,
}
}
}
- DBUG_PRINT("info", ("db_type = %d",
- ha_legacy_type(part_info->default_engine_type)));
+ DBUG_PRINT("info", ("db_type = %s create_info->db_type = %s",
+ ha_resolve_storage_engine_name(part_info->default_engine_type),
+ ha_resolve_storage_engine_name(create_info->db_type)));
if (part_info->check_partition_info(thd, &engine_type, file,
create_info, TRUE))
goto err;
@@ -3347,8 +3352,8 @@ bool mysql_create_table_no_lock(THD *thd,
The handler assigned to the table cannot handle partitioning.
Assign the partition handler as the handler of the table.
*/
- DBUG_PRINT("info", ("db_type: %d",
- ha_legacy_type(create_info->db_type)));
+ DBUG_PRINT("info", ("db_type: %s",
+ ha_resolve_storage_engine_name(create_info->db_type)));
delete file;
create_info->db_type= partition_hton;
if (!(file= get_ha_partition(part_info)))
@@ -3511,8 +3516,36 @@ bool mysql_create_table_no_lock(THD *thd,
thd_proc_info(thd, "creating table");
create_info->table_existed= 0; // Mark that table is created
- if (thd->variables.sql_mode & MODE_NO_DIR_IN_CREATE)
+#ifdef HAVE_READLINK
+ if (test_if_data_home_dir(create_info->data_file_name))
+ {
+ my_error(ER_WRONG_ARGUMENTS, MYF(0), "DATA DIRECTORY");
+ goto unlock_and_end;
+ }
+ if (test_if_data_home_dir(create_info->index_file_name))
+ {
+ my_error(ER_WRONG_ARGUMENTS, MYF(0), "INDEX DIRECTORY");
+ goto unlock_and_end;
+ }
+
+#ifdef WITH_PARTITION_STORAGE_ENGINE
+ if (check_partition_dirs(thd->lex->part_info))
+ {
+ goto unlock_and_end;
+ }
+#endif /* WITH_PARTITION_STORAGE_ENGINE */
+
+ if (!my_use_symdir || (thd->variables.sql_mode & MODE_NO_DIR_IN_CREATE))
+#endif /* HAVE_READLINK */
+ {
+ if (create_info->data_file_name)
+ push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, 0,
+ "DATA DIRECTORY option ignored");
+ if (create_info->index_file_name)
+ push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, 0,
+ "INDEX DIRECTORY option ignored");
create_info->data_file_name= create_info->index_file_name= 0;
+ }
create_info->table_options=db_options;
path[path_length - reg_ext_length]= '\0'; // Remove .frm extension
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 46a0f502aeb..5e28bdb45e8 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -4357,7 +4357,7 @@ create_table_option:
Lex->create_info.row_type= $3;
Lex->create_info.used_fields|= HA_CREATE_USED_ROW_FORMAT;
}
- | UNION_SYM opt_equal '(' table_list ')'
+ | UNION_SYM opt_equal '(' opt_table_list ')'
{
/* Move the union list to the merge_list */
LEX *lex=Lex;
diff --git a/sql/table.cc b/sql/table.cc
index cacb3a94582..100821f28d5 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -892,26 +892,31 @@ static int open_binary_frm(THD *thd, TABLE_SHARE *share, uchar *head,
ha_legacy_type(share->db_type())));
}
#ifdef WITH_PARTITION_STORAGE_ENGINE
- else
+ else if (str_db_type_length == 9 &&
+ !strncmp((char *) next_chunk + 2, "partition", 9))
{
- LEX_STRING pname= { C_STRING_WITH_LEN( "partition" ) };
- if (str_db_type_length == pname.length &&
- !strncmp((char *) next_chunk + 2, pname.str, pname.length))
- {
- /*
- Use partition handler
- tmp_plugin is locked with a local lock.
- we unlock the old value of share->db_plugin before
- replacing it with a globally locked version of tmp_plugin
- */
- plugin_unlock(NULL, share->db_plugin);
- share->db_plugin= ha_lock_engine(NULL, partition_hton);
- DBUG_PRINT("info", ("setting dbtype to '%.*s' (%d)",
- str_db_type_length, next_chunk + 2,
- ha_legacy_type(share->db_type())));
- }
+ /*
+ Use partition handler
+ tmp_plugin is locked with a local lock.
+ we unlock the old value of share->db_plugin before
+ replacing it with a globally locked version of tmp_plugin
+ */
+ plugin_unlock(NULL, share->db_plugin);
+ share->db_plugin= ha_lock_engine(NULL, partition_hton);
+ DBUG_PRINT("info", ("setting dbtype to '%.*s' (%d)",
+ str_db_type_length, next_chunk + 2,
+ ha_legacy_type(share->db_type())));
}
#endif
+ else if (!tmp_plugin)
+ {
+ /* purecov: begin inspected */
+ error= 8;
+ my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), name.str);
+ my_free(buff, MYF(0));
+ goto err;
+ /* purecov: end */
+ }
next_chunk+= str_db_type_length + 2;
}
if (next_chunk + 5 < buff_end)
@@ -2200,6 +2205,8 @@ void open_table_error(TABLE_SHARE *share, int error, int db_errno, int errarg)
"of MySQL and cannot be read",
MYF(0), buff);
break;
+ case 8:
+ break;
default: /* Better wrong error than none */
case 4:
strxmov(buff, share->normalized_path.str, reg_ext, NullS);
diff --git a/storage/archive/azio.c b/storage/archive/azio.c
index cada6c57918..59fbe2182ee 100644
--- a/storage/archive/azio.c
+++ b/storage/archive/azio.c
@@ -225,11 +225,17 @@ int get_byte(s)
if (s->stream.avail_in == 0)
{
errno = 0;
- s->stream.avail_in = my_read(s->file, (uchar *)s->inbuf, AZ_BUFSIZE_READ, MYF(0));
+ s->stream.avail_in= (uInt) my_read(s->file, (uchar *)s->inbuf,
+ AZ_BUFSIZE_READ, MYF(0));
if (s->stream.avail_in == 0)
{
s->z_eof = 1;
- /* if (ferror(s->file)) s->z_err = Z_ERRNO; */
+ return EOF;
+ }
+ else if (s->stream.avail_in == (uInt) -1)
+ {
+ s->z_eof= 1;
+ s->z_err= Z_ERRNO;
return EOF;
}
s->stream.next_in = s->inbuf;
diff --git a/storage/csv/ha_tina.cc b/storage/csv/ha_tina.cc
index c9fab79a4c5..f8dd778045f 100644
--- a/storage/csv/ha_tina.cc
+++ b/storage/csv/ha_tina.cc
@@ -56,6 +56,7 @@ TODO:
#define META_BUFFER_SIZE sizeof(uchar) + sizeof(uchar) + sizeof(ulonglong) \
+ sizeof(ulonglong) + sizeof(ulonglong) + sizeof(ulonglong) + sizeof(uchar)
#define TINA_CHECK_HEADER 254 // The number we use to determine corruption
+#define BLOB_MEMROOT_ALLOC_SIZE 8192
/* The file extension */
#define CSV_EXT ".CSV" // The data file
@@ -597,6 +598,8 @@ int ha_tina::find_current_row(uchar *buf)
bool read_all;
DBUG_ENTER("ha_tina::find_current_row");
+ free_root(&blobroot, MYF(MY_MARK_BLOCKS_FREE));
+
/*
We do not read further then local_saved_data_file_length in order
not to conflict with undergoing concurrent insert.
@@ -684,6 +687,22 @@ int ha_tina::find_current_row(uchar *buf)
if ((*field)->store(buffer.ptr(), buffer.length(), buffer.charset(),
CHECK_FIELD_WARN))
goto err;
+ if ((*field)->flags & BLOB_FLAG)
+ {
+ Field_blob *blob= *(Field_blob**) field;
+ uchar *src, *tgt;
+ uint length, packlength;
+
+ packlength= blob->pack_length_no_ptr();
+ length= blob->get_length(blob->ptr);
+ memcpy_fixed(&src, blob->ptr + packlength, sizeof(char*));
+ if (src)
+ {
+ tgt= (uchar*) alloc_root(&blobroot, length);
+ bmove(tgt, src, length);
+ memcpy_fixed(blob->ptr + packlength, &tgt, sizeof(char*));
+ }
+ }
}
}
next_position= end_offset + eoln_len;
@@ -914,9 +933,10 @@ int ha_tina::open_update_temp_file_if_needed()
int ha_tina::update_row(const uchar * old_data, uchar * new_data)
{
int size;
+ int rc= -1;
DBUG_ENTER("ha_tina::update_row");
- ha_statistic_increment(&SSV::ha_read_rnd_next_count);
+ ha_statistic_increment(&SSV::ha_update_count);
if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_UPDATE)
table->timestamp_field->set_time();
@@ -931,20 +951,23 @@ int ha_tina::update_row(const uchar * old_data, uchar * new_data)
The temp_file_length is used to calculate new data file length.
*/
if (chain_append())
- DBUG_RETURN(-1);
+ goto err;
if (open_update_temp_file_if_needed())
- DBUG_RETURN(-1);
+ goto err;
if (my_write(update_temp_file, (uchar*)buffer.ptr(), size,
MYF(MY_WME | MY_NABP)))
- DBUG_RETURN(-1);
+ goto err;
temp_file_length+= size;
+ rc= 0;
/* UPDATE should never happen on the log tables */
DBUG_ASSERT(!share->is_log_table);
- DBUG_RETURN(0);
+err:
+ DBUG_PRINT("info",("rc = %d", rc));
+ DBUG_RETURN(rc);
}
@@ -1050,6 +1073,8 @@ int ha_tina::rnd_init(bool scan)
records_is_known= 0;
chain_ptr= chain;
+ init_alloc_root(&blobroot, BLOB_MEMROOT_ALLOC_SIZE, 0);
+
DBUG_RETURN(0);
}
@@ -1115,7 +1140,7 @@ void ha_tina::position(const uchar *record)
int ha_tina::rnd_pos(uchar * buf, uchar *pos)
{
DBUG_ENTER("ha_tina::rnd_pos");
- ha_statistic_increment(&SSV::ha_read_rnd_next_count);
+ ha_statistic_increment(&SSV::ha_read_rnd_count);
current_position= (off_t)my_get_ptr(pos,ref_length);
DBUG_RETURN(find_current_row(buf));
}
@@ -1179,6 +1204,7 @@ int ha_tina::rnd_end()
off_t file_buffer_start= 0;
DBUG_ENTER("ha_tina::rnd_end");
+ free_root(&blobroot, MYF(0));
records_is_known= 1;
if ((chain_ptr - chain) > 0)
@@ -1350,6 +1376,8 @@ int ha_tina::repair(THD* thd, HA_CHECK_OPT* check_opt)
/* set current position to the beginning of the file */
current_position= next_position= 0;
+ init_alloc_root(&blobroot, BLOB_MEMROOT_ALLOC_SIZE, 0);
+
/* Read the file row-by-row. If everything is ok, repair is not needed. */
while (!(rc= find_current_row(buf)))
{
@@ -1358,6 +1386,8 @@ int ha_tina::repair(THD* thd, HA_CHECK_OPT* check_opt)
current_position= next_position;
}
+ free_root(&blobroot, MYF(0));
+
my_free((char*)buf, MYF(0));
if (rc == HA_ERR_END_OF_FILE)
@@ -1535,6 +1565,9 @@ int ha_tina::check(THD* thd, HA_CHECK_OPT* check_opt)
local_saved_data_file_length= share->saved_data_file_length;
/* set current position to the beginning of the file */
current_position= next_position= 0;
+
+ init_alloc_root(&blobroot, BLOB_MEMROOT_ALLOC_SIZE, 0);
+
/* Read the file row-by-row. If everything is ok, repair is not needed. */
while (!(rc= find_current_row(buf)))
{
@@ -1542,6 +1575,8 @@ int ha_tina::check(THD* thd, HA_CHECK_OPT* check_opt)
count--;
current_position= next_position;
}
+
+ free_root(&blobroot, MYF(0));
my_free((char*)buf, MYF(0));
thd_proc_info(thd, old_proc_info);
diff --git a/storage/csv/ha_tina.h b/storage/csv/ha_tina.h
index 5ce09783b9b..5b4381396fc 100644
--- a/storage/csv/ha_tina.h
+++ b/storage/csv/ha_tina.h
@@ -82,6 +82,7 @@ class ha_tina: public handler
uint32 chain_size;
uint local_data_file_version; /* Saved version of the data file used */
bool records_is_known;
+ MEM_ROOT blobroot;
private:
bool get_write_pos(off_t *end_pos, tina_set *closest_hole);
diff --git a/storage/federated/ha_federated.cc b/storage/federated/ha_federated.cc
index 091a26f6f36..d7040c44fe8 100644
--- a/storage/federated/ha_federated.cc
+++ b/storage/federated/ha_federated.cc
@@ -1292,10 +1292,21 @@ bool ha_federated::create_where_from_key(String *to,
{
if (*ptr++)
{
+ /*
+ We got "IS [NOT] NULL" condition against nullable column. We
+ distinguish between "IS NOT NULL" and "IS NULL" by flag. For
+ "IS NULL", flag is set to HA_READ_KEY_EXACT.
+ */
if (emit_key_part_name(&tmp, key_part) ||
- tmp.append(STRING_WITH_LEN(" IS NULL ")))
+ (ranges[i]->flag == HA_READ_KEY_EXACT ?
+ tmp.append(STRING_WITH_LEN(" IS NULL ")) :
+ tmp.append(STRING_WITH_LEN(" IS NOT NULL "))))
goto err;
- continue;
+ /*
+ We need to adjust pointer and length to be prepared for next
+ key part. As well as check if this was last key part.
+ */
+ goto prepare_for_next_key_part;
}
}
@@ -1403,12 +1414,18 @@ bool ha_federated::create_where_from_key(String *to,
if (tmp.append(STRING_WITH_LEN(") ")))
goto err;
+prepare_for_next_key_part:
if (store_length >= length)
break;
DBUG_PRINT("info", ("remainder %d", remainder));
DBUG_ASSERT(remainder > 1);
length-= store_length;
- ptr+= store_length;
+ /*
+ For nullable columns, null-byte is already skipped before, that is
+ ptr was incremented by 1. Since store_length still counts null-byte,
+ we need to subtract 1 from store_length.
+ */
+ ptr+= store_length - test(key_part->null_bit);
if (tmp.append(STRING_WITH_LEN(" AND ")))
goto err;
diff --git a/storage/myisam/ft_static.c b/storage/myisam/ft_static.c
index 610c20eede6..1b6c7458fd7 100644
--- a/storage/myisam/ft_static.c
+++ b/storage/myisam/ft_static.c
@@ -608,7 +608,6 @@ const char *ft_precompiled_stopwords[] = {
"won't",
"wonder",
"would",
- "would",
"wouldn't",
"yes",
"yet",
diff --git a/storage/myisam/ha_myisam.cc b/storage/myisam/ha_myisam.cc
index e74464a1834..c7584f801de 100644
--- a/storage/myisam/ha_myisam.cc
+++ b/storage/myisam/ha_myisam.cc
@@ -397,7 +397,26 @@ int check_definition(MI_KEYDEF *t1_keyinfo, MI_COLUMNDEF *t1_recinfo,
}
for (j= t1_keyinfo[i].keysegs; j--;)
{
- if (t1_keysegs[j].type != t2_keysegs[j].type ||
+ uint8 t1_keysegs_j__type= t1_keysegs[j].type;
+
+ /*
+ Table migration from 4.1 to 5.1. In 5.1 a *TEXT key part is
+ always HA_KEYTYPE_VARTEXT2. In 4.1 we had only the equivalent of
+ HA_KEYTYPE_VARTEXT1. Since we treat both the same on MyISAM
+ level, we can ignore a mismatch between these types.
+ */
+ if ((t1_keysegs[j].flag & HA_BLOB_PART) &&
+ (t2_keysegs[j].flag & HA_BLOB_PART))
+ {
+ if ((t1_keysegs_j__type == HA_KEYTYPE_VARTEXT2) &&
+ (t2_keysegs[j].type == HA_KEYTYPE_VARTEXT1))
+ t1_keysegs_j__type= HA_KEYTYPE_VARTEXT1; /* purecov: tested */
+ else if ((t1_keysegs_j__type == HA_KEYTYPE_VARBINARY2) &&
+ (t2_keysegs[j].type == HA_KEYTYPE_VARBINARY1))
+ t1_keysegs_j__type= HA_KEYTYPE_VARBINARY1; /* purecov: inspected */
+ }
+
+ if (t1_keysegs_j__type != t2_keysegs[j].type ||
t1_keysegs[j].language != t2_keysegs[j].language ||
t1_keysegs[j].null_bit != t2_keysegs[j].null_bit ||
t1_keysegs[j].length != t2_keysegs[j].length)
@@ -1859,6 +1878,7 @@ int ha_myisam::create(const char *name, register TABLE *table_arg,
share->avg_row_length);
create_info.data_file_name= ha_create_info->data_file_name;
create_info.index_file_name= ha_create_info->index_file_name;
+ create_info.language= share->table_charset->number;
if (ha_create_info->options & HA_LEX_CREATE_TMP_TABLE)
create_flags|= HA_CREATE_TMP_TABLE;
@@ -2078,6 +2098,7 @@ my_bool ha_myisam::register_query_cache_table(THD *thd, char *table_name,
*engine_callback,
ulonglong *engine_data)
{
+ DBUG_ENTER("ha_myisam::register_query_cache_table");
/*
No call back function is needed to determine if a cached statement
is valid or not.
@@ -2089,39 +2110,48 @@ my_bool ha_myisam::register_query_cache_table(THD *thd, char *table_name,
*/
*engine_data= 0;
- /*
- If a concurrent INSERT has happened just before the currently processed
- SELECT statement, the total size of the table is unknown.
+ if (file->s->concurrent_insert)
+ {
+ /*
+ If a concurrent INSERT has happened just before the currently
+ processed SELECT statement, the total size of the table is
+ unknown.
- To determine if the table size is known, the current thread's snap shot of
- the table size with the actual table size are compared.
+ To determine if the table size is known, the current thread's snap
+ shot of the table size with the actual table size are compared.
- If the table size is unknown the SELECT statement can't be cached.
- */
- ulonglong actual_data_file_length;
- ulonglong current_data_file_length;
+ If the table size is unknown the SELECT statement can't be cached.
- /*
- POSIX visibility rules specify that "2. Whatever memory values a
- thread can see when it unlocks a mutex <...> can also be seen by any
- thread that later locks the same mutex". In this particular case,
- concurrent insert thread had modified the data_file_length in
- MYISAM_SHARE before it has unlocked (or even locked)
- structure_guard_mutex. So, here we're guaranteed to see at least that
- value after we've locked the same mutex. We can see a later value
- (modified by some other thread) though, but it's ok, as we only want
- to know if the variable was changed, the actual new value doesn't matter
- */
- actual_data_file_length= file->s->state.state.data_file_length;
- current_data_file_length= file->save_state.data_file_length;
+ When concurrent inserts are disabled at table open, mi_open()
+ does not assign a get_status() function. In this case the local
+ ("current") status is never updated. We would wrongly think that
+ we cannot cache the statement.
+ */
+ ulonglong actual_data_file_length;
+ ulonglong current_data_file_length;
- if (current_data_file_length != actual_data_file_length)
- {
- /* Don't cache current statement. */
- return FALSE;
+ /*
+ POSIX visibility rules specify that "2. Whatever memory values a
+ thread can see when it unlocks a mutex <...> can also be seen by any
+ thread that later locks the same mutex". In this particular case,
+ concurrent insert thread had modified the data_file_length in
+ MYISAM_SHARE before it has unlocked (or even locked)
+ structure_guard_mutex. So, here we're guaranteed to see at least that
+ value after we've locked the same mutex. We can see a later value
+ (modified by some other thread) though, but it's ok, as we only want
+ to know if the variable was changed, the actual new value doesn't matter
+ */
+ actual_data_file_length= file->s->state.state.data_file_length;
+ current_data_file_length= file->save_state.data_file_length;
+
+ if (current_data_file_length != actual_data_file_length)
+ {
+ /* Don't cache current statement. */
+ DBUG_RETURN(FALSE);
+ }
}
/* It is ok to try to cache current statement. */
- return TRUE;
+ DBUG_RETURN(TRUE);
}
#endif
diff --git a/storage/myisam/mi_dynrec.c b/storage/myisam/mi_dynrec.c
index 7e5f710c02c..8b9fa445a96 100644
--- a/storage/myisam/mi_dynrec.c
+++ b/storage/myisam/mi_dynrec.c
@@ -1006,12 +1006,12 @@ uint _mi_rec_pack(MI_INFO *info, register uchar *to,
{
if (rec->length > 255 && new_length > 127)
{
- to[0]=(char) ((new_length & 127)+128);
- to[1]=(char) (new_length >> 7);
- to+=2;
- }
- else
- *to++= (char) new_length;
+ to[0]= (uchar) ((new_length & 127) + 128);
+ to[1]= (uchar) (new_length >> 7);
+ to+=2;
+ }
+ else
+ *to++= (uchar) new_length;
memcpy((uchar*) to,pos,(size_t) new_length); to+=new_length;
flag|=bit;
}
@@ -1045,7 +1045,7 @@ uint _mi_rec_pack(MI_INFO *info, register uchar *to,
}
if ((bit= bit << 1) >= 256)
{
- *packpos++ = (char) (uchar) flag;
+ *packpos++= (uchar) flag;
bit=1; flag=0;
}
}
@@ -1055,9 +1055,9 @@ uint _mi_rec_pack(MI_INFO *info, register uchar *to,
}
}
if (bit != 1)
- *packpos= (char) (uchar) flag;
+ *packpos= (uchar) flag;
if (info->s->calc_checksum)
- *to++=(char) info->checksum;
+ *to++= (uchar) info->checksum;
DBUG_PRINT("exit",("packed length: %d",(int) (to-startpos)));
DBUG_RETURN((uint) (to-startpos));
} /* _mi_rec_pack */
@@ -1128,12 +1128,14 @@ my_bool _mi_rec_check(MI_INFO *info,const uchar *record, uchar *rec_buff,
goto err;
if (rec->length > 255 && new_length > 127)
{
- if (to[0] != (char) ((new_length & 127)+128) ||
- to[1] != (char) (new_length >> 7))
- goto err;
- to+=2;
- }
- else if (*to++ != (char) new_length)
+ /* purecov: begin inspected */
+ if (to[0] != (uchar) ((new_length & 127) + 128) ||
+ to[1] != (uchar) (new_length >> 7))
+ goto err;
+ to+=2;
+ /* purecov: end */
+ }
+ else if (*to++ != (uchar) new_length)
goto err;
to+=new_length;
}
diff --git a/storage/myisam/mi_open.c b/storage/myisam/mi_open.c
index a4f6e1291db..d4e513a1c5d 100644
--- a/storage/myisam/mi_open.c
+++ b/storage/myisam/mi_open.c
@@ -281,6 +281,9 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags)
if (share->options & HA_OPTION_COMPRESS_RECORD)
share->base.max_key_length+=2; /* For safety */
+ /* Add space for node pointer */
+ share->base.max_key_length+= share->base.key_reflength;
+
if (!my_multi_malloc(MY_WME,
&share,sizeof(*share),
&share->state.rec_per_key_part,sizeof(long)*key_parts,
@@ -815,8 +818,17 @@ static void setup_key_functions(register MI_KEYDEF *keyinfo)
keyinfo->get_key= _mi_get_pack_key;
if (keyinfo->seg[0].flag & HA_PACK_KEY)
{ /* Prefix compression */
+ /*
+ _mi_prefix_search() compares end-space against ASCII blank (' ').
+ It cannot be used for character sets, that do not encode the
+ blank character like ASCII does. UCS2 is an example. All
+ character sets with a fixed width > 1 or a mimimum width > 1
+ cannot represent blank like ASCII does. In these cases we have
+ to use _mi_seq_search() for the search.
+ */
if (!keyinfo->seg->charset || use_strnxfrm(keyinfo->seg->charset) ||
- (keyinfo->seg->flag & HA_NULL_PART))
+ (keyinfo->seg->flag & HA_NULL_PART) ||
+ (keyinfo->seg->charset->mbminlen > 1))
keyinfo->bin_search=_mi_seq_search;
else
keyinfo->bin_search=_mi_prefix_search;
diff --git a/storage/myisammrg/ha_myisammrg.cc b/storage/myisammrg/ha_myisammrg.cc
index 3fccb91e9b5..7f305061b41 100644
--- a/storage/myisammrg/ha_myisammrg.cc
+++ b/storage/myisammrg/ha_myisammrg.cc
@@ -1102,6 +1102,12 @@ void ha_myisammrg::append_create_info(String *packet)
packet->append(STRING_WITH_LEN(" INSERT_METHOD="));
packet->append(get_type(&merge_insert_method,file->merge_insert_method-1));
}
+ /*
+ There is no sence adding UNION clause in case there is no underlying
+ tables specified.
+ */
+ if (file->open_tables == file->end_table)
+ return;
packet->append(STRING_WITH_LEN(" UNION=("));
current_db= table->s->db.str;
diff --git a/strings/strmake.c b/strings/strmake.c
index df8d78e8476..2d5fa5e36aa 100644
--- a/strings/strmake.c
+++ b/strings/strmake.c
@@ -41,9 +41,9 @@ char *strmake(register char *dst, register const char *src, size_t length)
write a character rather than '\0' as this makes spotting these
problems in the results easier.
*/
- uint n= strlen(src) + 1;
- if (n <= length)
- memset(dst + n, (int) 'Z', length - n + 1);
+ uint n= 0;
+ while (n < length && src[n++]);
+ memset(dst + n, (int) 'Z', length - n + 1);
#endif
while (length--)